Machine Learning
机器学习是一门多领域交叉学科,涉及概率论、统计论、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎么模拟或实现人类的学习行为,以获取新知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
模型: 分类、回归、聚类
策略: 损失函数选择、模型选择
算法: 确定参数,梯度下降、最小二乘
机器学习面临的难题与挑战
◆数据稀疏性:训练一个模型,需要大量(标注)数据,但是数据往往比较稀疏。
◆高数量和高质量标注数据需求:获取标定数据需要耗费大量人力和财力。而且,人会出错,有主观性。
◆冷启动问题:对于一个新产品,在初期,要面临数据不足的冷启动问题。
◆泛化能力问题:训练数据不能全面、均衡的代表真实数据。
◆模型抽象困难:总结归纳实际问题中的数据表示非常困难。
◆模型评估困难:在很多实际问题中,很难形式化的、定量的评估一个模型结果的好坏。
◆寻找最优解困难:要解决的实际问题非常复杂,将其形式化后的目标函数也非常复杂,在目前往往还不存在一个有效的算法能找到目标函数的最优值。
◆Scalability是互联网的核心问题之一。搜索引擎索引的重要网页超过100亿:如果1台机器每秒处理1000网页,需要至少100天。
◆速度是互联网核心的用户体验。线下模型训练可以花费很长时间:比如,Google某个模型更新一次需要几千台机器,大约训练半年时间。但是,线上使用模型的时候要求一定要“快,实时(real-time)”
◆online learning:互联网每时每刻都在产生大量新数据,要求模型随之不停更新,所以online learning 是机器学习的一个重要研究方向。
机器学习准备
数据预处理: 数据清理、数据集成、数据采样
-
数据清理: 对原始脏数据进行响应的处理,得到标准、干净、连续的数据,提供数据统计、数据挖掘等使用。
-
数据采样:数据不平衡,指数据集的类别分布不均
解决方法:过采样、欠采样 -
数据集拆分:
◆机器学习中将数据划分为3份 -
训练数据集: 用来构建机器学习模型
-
验证数据集: 辅助构建模型,用于在构建过程中评估模型,提供无偏估计,进而调整模型参数
-
测试数据集:用来评估
◆常用拆分方法:
留出法(Hold-Out):直接将数据集划分为互斥的集合,如通常选择70% 数据作为训练集,30%作为测试集。需要注意的是保持划分后集合数据分布的一致性,避免划分过程中引入额外的偏差而对最终结果产生影响。
K-折交叉验证法:将数据集划分为k 个大小相似的互斥子集,并且尽量保证每个子集数据分布的一致性。这样,就可以获取k 组训练-测试集,从而进行k 次训练和测试,k通常取值为5或10。
特征工程:特征编码、特征选择、特征降维、规范化
机器学习方法分类
分类问题:逻辑回归、贝叶斯、支持向量机、集成学习
回归问题:线性回归、广义线性回归、岭回归、Lasso回归
聚类问题:K-means、高斯混合聚类、密度聚类、层次聚类
网友评论