看完《机器学习实战》并且完成代码实现。
机器学习可大致分为监督学习和无监督学习,其中监督学习包括分类问题和回归问题,无监督学习包括聚类问题、关联分析问题。每个问题下对应多个算法,因此我们需要知道每个算法的适用场景及优缺点。
机器学习的典型步骤:收集数据、准备数据、分析数据、训练算法、测试算法、使用算法。
先从理论上剖析算法原理,再动手编写代码实现算法,确保算法可以处理简单的数据,并用真实的数据集去测试算法,最后总结并检验算法。
算法 | 优点 | 缺点 | 适用数据范围 |
---|---|---|---|
K-近邻 | 精度高、对异常值不敏感、无数据输入假定。 | 计算复杂度高、空间复杂度高。 | 数值型和标称型。 |
决策树 | 计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。 | 可能会产生过度匹配问题。 | 数值型和标称型。 |
朴素贝叶斯 | 在数据较少的情况下仍然有效,可以处理多类别问题。 | 对于输入数据的准备方式较为敏感。 | 标称型数据。 |
逻辑斯蒂回归 | 计算代价不高,易于理解和实现。 | 容易欠拟合,分类精度可能不高。 | 数值型和标称型数据。 |
支持向量机 | 泛化错误率低,计算开销不大,结果易解释。 | 对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二类问题。 | 数值型和标称型数据。 |
AdaBoost | 泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整。 | 对离群点敏感。 | 数值型和标称型数据。 |
线性回归 | 结果易于理解,计算上不复杂。 | 对非线性的数据拟合不好。 | 数值型和标称型数据。 |
树回归 | 可以对复杂和非线性的数据建模。 | 结果不易理解。 | 数值型和标称型数据。 |
算法 | 优点 | 缺点 | 适用数据范围 |
---|---|---|---|
K-均值 | 容易实现。 | 可能收敛到局部最小值,在大规模数据集上收敛较慢。 | 数值型数据。 |
Apriori | 易编码实现。 | 在大数据集上可能较慢。 | 数值型或者标称型数据。 |
FP-growth | 一般要快于Apriori | 实现比较困难,在某些数据集上性能会下降。 | 标称型数据。 |