. 这是我参与「第四届青训营 」笔记创作活动的的第11天
为什么要机器学习?
-
人工智能时代已经到来(个性化推荐、机器翻译、人脸识别......)
-
大数据成为热议的内容(数据多,产生快,形式杂,组织乱)
-
解决实际的业务决策问题(业务需要从大数据中挖掘数据背后隐藏的价值)
什么是机器学习?
以垃圾邮件过滤为例:
-
传统编程 需要开发者自己总结规律,
-
开发一个能自己从数据中学习隐藏规则的系统。开发者不再编写具体的规则,只要更新数据就能使系统主动识别出数据所蕴含的规则变化,主动调整自身策略,无需开发者介入规则的调整。
简而言之,机器学习是搭建一个能够自主从数据(或经验)中学习潜在规则的系统。在合适的情景下,尤其是解决复杂问题时,它能有效简化系统和代码,并大大降低后期策略迭代与维护的成本。
机器学习就是把无序的数据转换为有用的信息 从数据中自动分析获得模型,并利用模型对未知数据进行预测
机器学习算法有哪些?
分类 监督/非监督学习 批量/在线学习 基于实例/模型学习
机器学习的挑战有哪些?
-
在机器学习中,面临的挑战主要来自两大模块:糟糕的算法和糟糕的数据。
-
算法的问题主要有以下两种:
-
过拟合(Overfitting):意味着算法可能过于复杂,不止学到了该学的规则,还将噪音、异常学到心里,使得无法很好预测新样本。
-
欠拟合(Underfitting):意味着算法可能过于简单,没学到精髓。
-
数据的问题具体表现为:
-
-
训练数据太少
- 数据对机器学习系统的影响程度可能比你想象中算法对系统的影响要多。
- 2001年一个关于自然语言歧义消除的研究 Scaling to very very large corpora for natural language disambiguation 中发现,在数据足够多的情况下(比如10亿),即使是非常简单的模型(右图中 Memory-Based 红线),也能在这种复杂问题中表现良好。
- 这意味着,如果数据足够多且廉价,那么是可以减少在算法优化上的投入。
-
-
注意:前提是「数据足够多」,现实中获取巨量数据的成本往往很高,一般是中小型的数据集,所以还是不要轻易放弃算法优化。
-
-
-
训练数据不具备代表性
- 在数据量小的情况下,数据的增减容易引起模型不断变动。
- 在数据量大的情况下,如果样本不具备代表性,那么训练结果也会引入偏差
-
-
比如对线上所有用户做个推荐算法,而训练数据来自市中心区的全体业主。又比如某专家对两亿灵活就业人群提高收入提出诚挚建议:“出租闲置房屋、开私家车拉活”。
-
-
数据本身质量很差
- 噪音、缺漏、异常等会使得系统更难发现内在的规律和模式,需要数据清洗。
-
比如人体扫描仪识别一个人的身材维度,在识别算法较差的情况下,胖子的识别结果可能会很离谱——机器也许认为这个人没有腰,或者把凸出来的腰当成臀部。
-
选取的特征没有相关性
- “Garbage in, garbage out”,训练数据要有足够多的相关特征、尽量减少无关特征,才能让机器学习的系统更好地更快地学习到隐含的规则。
- 需要运用特征工程(Feature Engineering)来获取相关度高的特征集。
-
- 在 大数据 场景下,对资源的要求非常高,比如存储和算力。
特征工程
创造新的特征是一件十分困难的事情,需要丰富的专业知识和大量的时间。机器学习应用的本质基本上就是特征工程。 ——Andrew Ng
概述
- 定义:特征工程是将原始数据转化成更好的表达问题本质的特征的过程。
现实事物中具备着各种各样的信息,比如一张图片有着色彩、纹理、边界等各类型的信息数据。而特征工程要做的,就是将这些“原始数据”进行处理,从中构建出在此问题下,能代表该事物属性的“特征”。
- 意义:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
- 特征工程包含以下几个过程:数据理解、数据预处理、特征构造、特征选择
暂时无法在飞书文档外展示此内容