机器学习是一门能够让编程计算机从数据中学习的计算机科学
机器学习研究如何让计算机不需要明确的程序也能具备学习能力。
试想一下,如果让你使用传统编程技术来编写一个垃圾邮件过滤器,你会怎么做
1.你会看看垃圾邮件通常长什么样。你可能会注意到某些单词或用语(比如“4U”“信用卡”“免费”以及“神奇的”等字眼)在这类主题中出现的频率非常高;也许你还会在发件人名称和邮件的正文中发现一些其他的模式。
2.你会为你发现的每个模式编写检测算法,如果检测到一定数量的这类模式,你的程序会将其标记为垃圾邮件。
3.你还要测试这个程序,不断地重复过程1和过程2,直到它变得足够好。
相比之下,基于机器学习技术的垃圾邮件过滤器通过对比垃圾邮件示例和常规邮件示例,自动检测垃圾邮件中异常频繁的单词模式,
自动学习哪些单词和短语可以作为垃圾邮件的预测因素这样的程序要简短得多,易于维护,并且可能还更准确。
简而言之:
1.对于那些现有解决方案需要大量手动调整或者是规则列表超长的问题:通过一个机器学习的算法就可以简化代码,并且提升执行表
现。
2.对于那些传统技术手段根本无法解决的复杂问题:通过最好的机器学习技术可以找到一个解决方案。
3.对于环境波动:机器学习系统可以适应新的数据。
4.从复杂问题和海量数据中获得洞见。
现有的机器学习系统种类繁多,为便于理解我们根据以下内容将它们进行大的分类:
(1)是否在人类监督下训练(监督式学习、无监督式学习、半监督式学习和强化学习)
(2)是否可以动态地进行增量学习(在线学习和批量学习)
(3)是简单地将新的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测,然后建立一个预测模型(基于实
例的学习和基于模型的学习)
监督式/无监督式学习
根据训练期间接受的监督数量和监督类型,可以将机器学习系统分为以下四个主要类别:监督式学习、无监督式学习、半监督式学习
和强化学习。
这里是一些最重要的监督式学习的算法:
K-近邻算法(k-Nearest Neighbors)
线性回归(Linear Regression)
逻辑回归(Logistic Regression)
支持向量机(Support Vector Machines,SVM)
决策树和随机森林(Decision Trees and Random Forests)
神经网络(Neural networks)
无监督式学习
顾名思义,无监督式学习的训练数据都是未经标记的。系统会在没有老师的情况下进行学习。
最重要的无监督式学习的算法:
聚类算法
k-平均算法(k-Means)
分层聚类分析(Hierarchical Cluster Analysis,HCA)
最大期望算法(Expectation Maximization)
可视化和降维
主成分分析(PCA)
核主成分分析(Kernel PCA)
局部线性嵌入(LLE)
t-分布随机近临嵌入(t-SNE)
关联规则学习
基础知识:
NLP: Natural Language Processing 自然语言处理
实例1:马蜂窝评论造假
乎睿数据是怎么做到的呢?
使用NLP中的文本相似度分析!
文本相似度分析:从海量数据(文章,评论)中,把相似的数据挑选出来
步骤:
1.把评论翻译成机器看的懂的语言
把评论翻译成机器看的懂的语言
(1)分词:
例如:
(2)制作词袋模型(bag-of-word)
例如:
(3)用词袋模型制作语料库(corpus)
(4)把评论变成词向量
2.使用机器看的懂得算法轮询去比较每一条和所有评论的相似程度
TF-IDF
Corpus = [“我喜欢来中国旅游,中国很好玩”, “这辆车在中国很受欢迎,我的工作就是在中国出售这辆车”, “我喜欢喝茶和吃苹果”, “这份工作是在科学杂志上发几篇论文”]
如何用TF-IDF寻找关键词
(1)不考虑停用词(就是没什么意义的词),找出一句话中出现次数最多的单词,来代表这句话,这个就叫做词频(TF – Term Frequency),相应的权重值就会增高
(2)如果一个词在所有句子中都出现过,那么这个词就不能代表某句话,这个就叫做逆文本频率(IDF – Inverse Document Frequency)相应的权重值就会降低
(3)TF-IDF = TF * IDF
TF公式:
IDF公式:
即:
分母之所以要加1,是为了避免分母为0
3.把相似的评论挑出来