本文介绍机器学习的基础知识。
定义
机器学习:把无序的数据抓换成有用的信息。
除却一些无关紧要的情况,人们很难直接从原始数据本身获得所需的信息,例如检测垃圾邮件,单个单词没有作用,但是几个特定单词同时出现时,就可以用于判断为垃圾邮件。
上图是一些典型的应用场景,人脸识别,手写数字识别,垃圾邮件过滤和亚马逊的产品推荐。
任务
主要任务:监督学习和无监督学习
监督学习
监督学习:算法知道要目标变量的分类信息,分为分类和回归。
分类:将实力数据划分到合适的分类中,下面以识别鸟类的物种为例:
- 特征(属性):测量数据中的重要部分,分为数值型、二值型、枚举型;
- 数据集:分为训练数据和测试数据;
- 算法精准度:训练数据的输出与实际样本的差距;
- 知识表达:通过规则集或者概率分布的形式,来展示算法的结果,例如图标。
回归:用于预测数值型数据,例如数据拟合曲线。
无监督学习
无监督学习:数据没有类别信息,也不会给出目标值,分为聚类和密度估计。
聚类:将数据集合分为类似的对象组成的多个类的过程。
密度估计:寻找描述数据统计值的过程。
算法
选择算法的流程如下:
考虑目的
目的 | 类型 | 算法 |
---|---|---|
预测目标值 | 目标变量为离散型 | 分类算法 |
预测目标值 | 目标变量为连续型 | 回归算法 |
非预测目标值 | 划分数据为离散组 | 聚类算法 |
非预测目标值 | 估算数据与分组的相似程度 | 密度估计算法 |
考虑数据
了解数据的特征值是离散还是连续,特征值是否存在缺失值,何种愿意造成缺失,特征值的频率,数据是否存在异常值等。
改进性能
一般并不存在最好的算法,需要同时尝试不同算法的执行效果,对于所选的每种算法,可以用其他技术来改进其性能。
步骤
机器学习的步骤如下:
- 收集数据:利用爬虫,RSS反馈,API信息,设备的实测数据,公开的数据源等;
- 准备输入数据:确保数据格式符合要求,方便融合算法;
- 分析输入数据:主要是人工分析数据,一般情况下是看是否存在空值、明显异常值,通过图形展示数据等;
- 训练算法:将格式化的数据输入到算法中,从中提取知识或信息;
- 测试算法:测试算法工作的效果;
- 使用算法:将算法转换成应用程序,执行实际任务。