一、机器学习的介绍
刚刚百度了下,机器学习,百度百科给这个词汇的解释是:研究计算器怎么模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。我个人的理解是,研究计算机,怎么让它学习人的行为,完成人指定给他的任务。现在很多日常生活都有机器学习相关的应用,比如:人脸识别,垃圾邮件过滤,购物车隔壁的产品推荐等等。
二、机器学习的任务及各类算法
机器学习主要分两大类:监督学习和无监督学习。
监督学习这类算法是要知道我们将要预测什么,目标变量的信息。这类算法又分两部分,一是解决分类任务,比如:k-近邻算法、朴素贝叶斯算法、决策树、Logistic回归、SVM、AdaBoost元算法等;二是解决回归任务的,它主要预测数值型数据,比如:线性回归,当然也有和分类相结合的:树回归。
而无监督学习是不对数据做标签,也没有类别信息,也不会给定目标值。比如对一群人分类问题,如果我们有一批训练集,同时有标签,分为A,B,C类人群,这时来了一个未知类别的人,计算机对他归属到哪一类,这是监督学习;而如果我们这一批训练集是没有标签的,我们根本不知道这群人应该分出多少类人群,那就需要计算机自己去判断,哪些数据比较像,就归为一类人。同样无监督学习也主要分两类算法:一是只对数据划分为离散组的聚类算法:k-means等;二是除了分组还需估计各组的相似程度等问题的密度估计算法:FP-growth等。
三、开发机器学习程序的步骤
通常遵循以下步骤(个别情况或算法可忽略个别步骤):
- 收集数据
- 准备输入数据
- 分析输入数据
- 训练算法
- 测试算法
- 使用数据(部署到实际环境中使用)