什么是机器学习
通过机器学习就可以简化代码,并且提升执行的表现,可以找到好的解决方案,可以适应新的数据,在复杂和海量数据中获得特征
机器学习系统的种类
*监督式学习
我们教会计算机学习
我们给算法一个数据集其中包含了正确答案(目标值),再给未标记的训练集进行测试
- 目的:给出更多的正确答案
回归任务:线性 预测一个具体的数值输出
- 线性回归,岭回归
分类任务:逻辑 预测离散值的输出
- k-邻近算法,贝叶斯分类,决策树,随机森林,逻辑回归
*无监督式学习
让计算机自己学习
给算法未标记的训练集,系统在没有老师的情况下进行学习
- 目的:希望算法自己去寻找这种关联,无需帮助
聚类算法:k-means
降维:将二维转成一维,目的是在不丢失太多信息的前提下简化数据,方法将多个相关特征合并为一个
半监督式学习
有大量的未标记数据和少量的标记数据
- 大多数半监督式学习算法是无监督式和监督式算法的结合
强化学习
学习系统能够观察环境,做出选择,执行操作,并获得回报或者负面回报
批量学习
批量学习一般都是离线完成的
离线学习是先续联系统然后投入生产环境,这时学习过程停止,将其所学到的应用出来
在线学习(增量学习)
循序渐进的给系统提供训练数据,逐步累积学习成果。提供数据可以是单独的,也可以是小批量的小组数据进行训练
学习率:适应不断变化的数据速度
异常检测
超大数据集
数据集 = 特征值+目标值
对于超大数据集,算法每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,直到完成所有数据训练
基于实例与基于模型的学习
泛化能力:指机器学习算法对新鲜样本的适应能力,简而言之是在原有的数据集上添加新的数据集,通过训练输出一个合理的结果。学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。
基于实例:系统记住学习实例,然后通过某种相似程度度量方式将其泛化到新的实例(分类)
基于模型:建模成一个线性函数,选择模型,调整参数(回归)
机器学习流程
- 学习数据
- 选择模型
- 使用训练数据进行训练
- 应用模型对新的示例进行预测
学习流程-改
- 获取数据
- 数据处理
- 特征工程
- 机器学习算法训练 - 模型
- 模型评估
- 应用
拟合
拟合就是把平面上一系列的点,用一条光滑的曲线连接起来,在机器学习中拟合通常是训练完成以后的进行预测的那条线,如果这条线通过越多的标记点表示预测结果成功率高,反之
过度拟合
模型在训练数据上表现良好,但是泛化(实际测试)时不如人意
解决方法
- 简化模型,选择参数较少的模型,减少训练中属性的数量,或者约束模型
- 收集更多的训练数据
- 减少训练数据中的噪声
- 正则化
拟合度不足
模型太过简单,数据产生不准确
解决方法
- 选择一个更强大的模型
- 给学习算法提供更好的特征集
- 减少模型中的约束
测试和验证
将数据分为两个部分
- 训练集:训练模型
- 测试集:测试模型
- 通常使用80%的数据进行训练,20%来做测试
评估模型:训练两个模型,对比测试数据的泛化能力
验证
交叉验证:将训练集分为若干个互补子集,然后每个模型都通过这些子集的不同组合来进行训练,最后用剩余的子集进行验证