《机器学习实战》笔记——1.写在前面

机器学习:把无序的数据转换成有用的信息。

看似无序的数据其实有很多有用的信息,比如一封邮件要判断它是否是垃圾邮件,直观上最简单的是看邮件内容中是否有某些特定的词。内容中是否存在特定的词就是其中一个有用的信息,但如果只是通过字符串匹配看邮件内容是否出现特定的词,并不能有多好的效果。然而当某几个特定的词同时出现,再考虑邮件内容长度等其他因素,就能有更好的效果。所以邮件中的有用信息当然还有很多,比如是否有特定的词,特定的词的词频,特定词的TF-IDF( Term Frequency /  Inverse  Document  Frequency)等,依此我们可以看出数据中可以提取的的信息有很多。机器学习中的相关模型就是利用这些信息基于 统计得出判断。
机器学习中的算法很多都是统计学的算法,机器学习其实是在用统计学的知识去利用数据。而之所以要用统计学的知识,是因为现实世界中的问题只有极少数我们可以给出确定的解决方案、建立精确的模型,而更多时候,我们不能完全透彻的理解问题或者没有足够的计算资源去建模,比如我们无法给人类活动的动机建模,无法实现人的极乐。所以我们需要统计学的知识。关于此,吴军的《自然语言处理——从规则到统计》中讲得很好:
现代电子计算机出现以后,计算机在很多事情做得比人还好。既然如此,机器是否能够懂得自然语言呢?事实上当计算机一出现,人类就开始琢磨这件事。这里面涉及到两个认知问题:第一,计算机是否能处理自然语言;第二,如果能,那么它处理自然语言的方法是否和人类一样。……
那时候学术界对人工智能和自然语言理解的普遍认识是这样的:要让机器完成翻译或者语音识别这样只有人类才能做的事情,就必须先让计算机理解自然语言,而做到这一点就必须让计算机有类似我们人类这样的智能。为什么会有这样的认识?因为人类就是这么做的,道理就是这么简单。对于人类来讲,一个能把英语翻译成汉语的人,一定是能非常好的理解这两种语言的。这就是直觉的作用。在人工智能领域,包括自然语言处理领域,后来把这样的方法论称作“鸟飞派”,也就是看看鸟是怎样飞的,就能模仿鸟造出飞机,而不需要了解空气动力学。事实上我们知道,怀特兄弟发明飞机靠的是空气动力学而不是仿生学。……事实上,它们靠得全都是数学,更准确地说是靠统计。
回答文中提出的两个问题:计算机能处理自然那语言,且处理自然语言的方法和人类一样都是基于统计。在我们小时候,潜移默化中就已经在接受训练,通过大量的训练,小时候的我们才知道了“爸爸”、“妈妈”是什么意思,才知道了“红”、“黄”、“蓝”分别对应哪种颜色。
既然统计就要有 数据。都说现在是个大数据的时代,因为人们生活中每时每刻都在产生着数据。书中说到 有预测表明,在本书出版后不久,20%的互联网非视频流量将由物理传感器产生。而我们每天随身携带着的智能手机中封装了很多传感器,如三轴磁力计、偏航率陀螺仪、三轴加速计、温度传感器和GPS接收器,每一个都可以记录下大量的数据用于研究。
数据来自生活的方方面面,一方面为了不在海量中数据中茫然不知所措,一方面为了利用好宝贵的数据以改善生活,我们需要机器学习的算法。
机器学习的算法当然很多了,分为两类: 监督学习(supervised learning)非监督学习(unsupervised learning)
监督学习的数据有类别信息,知道要预测什么,非监督学习的数据没有类别信息,不知道结果会怎么样。
监督学习的算法有k-近邻算法(KNN)、朴素贝叶斯算法(NB)、支持向量机(SVM)、决策树、线性回归、局部加权线性回归、Ridge回归、Lasso最小回归系数估计等。
非监督学习的算法有k-均值(k-mean)、最大期望算法(EM)、DBSCAN、Parzen窗设计等。
因为算法多,所以对于一个特定的问题的数据集,我们需要知道如何选择合适的算法。考虑:
1.使用算法的目的,如是预测下雨的概率还是对人进行分组。
如果是要预测目标变量的值,则选择监督学习的算法。若目标变量的值离散,则用 分类算法,若目标变量的值连续,则用 回归算法。
如果不用预测目标变量的值,则用无监督学习的算法。若是要将数据划分为离散的几组,则用 聚类算法,若还需要估计数据与每个分组的相似程度,则用 密度估计算法。
2.需要收集、分析的数据是什么
数据中可以提取的信息很多,比如邮件中是否有特定的词,特定的词的词频,特定词的TF-IDF等,不同的信息对问题的解决的贡献度不同。所以我们需要充分了解数据,了解我们需要什么样的信息。主要应该了解数据的以下特性:特征值离散还是连续,特征值是否有缺失的,若有缺失原因是什么,数据中是否有异常值(噪声),某个特征出现的概率如何等。充分了解数据有助于选择算法。
以上所述的可以缩小算法的选择范围,一般不存在最好的算法,需要把数据集划分为训练集、校验集、测试集尝试不同的算法的执行效果,用二维、三维的图直观的表示执行效果。对应执行效果再进行分析改进,反复试错反复迭代改进。

“数据挖掘十大算法”是IEEE 数据挖掘国际会议( ICDM, International Conference on DataMining)上的一篇论文,2007年12月在Journal of Knowledge and Information Systems杂志上发表。该论文依据 知识发现和数据挖掘国际会议( KDD, KnowledgeDiscoveryand DataMining获奖者的问卷调查结果,论文统计出排名前十的数据挖掘算法。十大算法分别是: C4.5决策树、K-均值(K-mean)、支持向量机(SVM)、Apriori、最大期望算法(EM)、 PageRank算法、AdaBoost算法、k-近邻算法(KNN)、朴素贝叶斯算法(NB)、分类回归树算法(CART)。这本书没有讲PageRank算法和最大期望算法(EM),增加了Logistic回归等其他内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值