机器学习基础(一)

之前学习了Cousera上华盛顿大学的机器学习课程,近期准备整理当时的学习笔记。本篇总结是基于该专项课程中第一篇的内容

分类算法:

1.分类算法实际用途:情感分析等,比如分析餐馆的评论,根据某个人的评论内容推测他对餐馆的评分;又如根据网页文本预测网页标签(如金融,教育,科技等)

垃圾邮件过滤(Spam filtering)、

图片分类

情感分析线性分类器:

比如我们为某个APP构建一个简单的评论分类器,预测某个评论是积极还是消极,算法伪代码如下:

if(评论中词性为正的数量>评论中词性为负的数量)
         该评论为积极评论
else ...

尽管算法看上去很直观,但仍存在一些问题:

1.单词的词性从哪来?

2.不能简单将词分为积极和消极,即便同样是积极词性的单词也有权重之分,比如good, awesome, perfect我们需要给予它们不同的权重。

3.我们不能仅仅根据某个单词判断它的词性,比如一个词是good,很可能评论是not good。

算法2:

根据每个单词的权重,将所有单词词性求和:

比如我们有一个权重表,如下:

awesome       |   1   |
----------------------
awful         | -1.5  |
-----------------------

我们给予不同的词不同权重(当然这里仅仅是一个事例,权重表中只有两个单词)在给评论打分时,可以进行如下计算

score(x) = 1*awesome在评论中出现的次数+(-1.5)*awful在评论中出现的次数

对于每个评论,我们都计算出它的得分,如果得分小于某个阈值,评论为负向评论,反之为正。

2.聚类算法和相似度:

1.聚类算法实际用途:对于一篇给定的文章,找出与它相似的文章,类似今日头条等网站对网页内容进行聚类。

2.工作原理:

文档表示方法:词袋模型,之所以用‘词袋‘这个词是因为在该算法中我们不关心网页中单词出现的先后顺序。

比如对一篇体育报道我们可以通过如下方式表示:

某篇报道的词袋模型
单词 football the calls sport ....
个数 1 2 2 2 .....

当我们希望计算这篇文档与另一文档的相似度时可以简单使用矩阵点乘的方式。

但仍存在一个问题:即便某个单词比如The在句子中出现了2次,我们能认为它比football对这篇文章的分类更具决定性作用吗?显然不可能,那么怎么减少类似the 这种单词

对句子分类起的作用呢?我们可以根据文档中的每个单词在语料库中出现的文档数决定其权重,比如,the这个单词在我们的语料库中所有文档中都出现了,那么我们就给它一个

非常低的权重,而football这个单词出现的文档很少,我们就给它一大较大的权重,认为它是这篇文章的一个Important word。

3.TF-IDF算法:

终于引出了这个著名的算法:词频-逆向文档频率法(Term frequency-inverse document frequency),  顾名思义,该算法权衡了两个变量,即词频和逆向文档频率 ,

词频的含义是一个单词在当前文档中出现的次数,比如上文中football出现了1次,而逆向文档频率有个公式:

即用语料库中总文档数量除以包含该单词的文档数量,这里之所以取对数可以这样考虑:语料库中的总文档数显然会非常大,当某个词在大多数文档都出现时,该值近似为总文档数量,因此分子分母比值近似为1,再取对数,该值无限接近0。反之,如果某个词只在其他文档中从未出现,那么显然该值会非常大。

最后我们可以将词频和逆向文档频率相乘,这就得到了一个词的权重,对每个词都这样计算,我们就得到了一个权重向量(如下图)

4.聚类算法:

Nearest neight search(最近邻搜索)

输入:查询文档

输出:最相似文档

for 库中每篇文档 :预料库中所有文档
    s = similarity(查询文档,库中每篇文档)
    if(s>best)
        best = s
return best

这里的similarity相似度计算我们可以使用刚才介绍的TF-IDF算法将文档转化为向量,再通过余弦相似度等计算文档相似性。

变体:著名的K近邻算法,仅仅在上述算法中加一个优先队列即可。

K-means:

刚才讨论的算法大多都需要训练集,属于有监督算法(Supervised learning),无监督学习中没有提供训练集。输入一些文档,算法自动打标签

此文持续更新。。。。

时间: 2024-12-03 15:18:26

机器学习基础(一)的相关文章

【机器学习基础】混合和装袋

融合模型(Aggregation Model) 如果我们已经得到了一些特征或者假设,它们和我们做机器学习的目标有若干的一致性的话,我们可以将这些假设综合起来,让预测效果变得更好,这样的模型被称为融合模型. 融合模型是通过混合(mix)和组合(combine)一些假设的方式,得到更好的预测结果. 下面列举了四种不同的混合组合方式,并给出了数学表示形式: 当有多个假设时,我们选择检验误差最小的假设作为我们最信任的目标函数: 我们现在有多个假设,我们可以给每个假设一个投票的权利,综合所有假设的投票结果

机器学习实战笔记1(机器学习基础)

1:如何选择合适的算法 2:python简介 (1)   python的优势:相对于matlab,matlab单个软件授权就要花费数千美元,也没有一个有影响力的大型开源项目.相对于c++/c/java,完成简单的操作就需要编写大量的代码:而如今我们应该花费更多的时间去处理数据内在的含义,而无需花费太多精力解决计算机如何得到数据结果(python简洁) (2)   python具有numpy科学函数库,它是一个使运算更容易.执行更迅速的库:另外还有matplotlib绘图工具. 3:python语

第一章:机器学习基础

第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming).在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果.      监督学习一般使用两种类型的目标变量:标称型和数值型.标称型目标变量的结果只在有限目标集中取值,如真与假.动物分类集合{爬行类.鱼类.哺乳类.两栖类.植物.真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100.42.0

【机器学习实战】第1章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

机器学习实战之第一章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

【机器学习基础】线性可分支持向量机

引言 接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报. 接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨: 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展

机器学习基础2--评价回归模型

再次回到上一节的13次模型. 这个疯狂的曲线造成了一种现象过拟合. 很明显,你的房子不可能只值这么点价钱,所以看上去,这个13次模型甚至还不如一开始的二次模型. 那么现在有个疑问,我们应该怎样去选择最合适的模型? 我们想要准确预测,但是我们无法观测未来. 下面我们模拟一次预测过程: 1.我们随机将一些房子数据排除在外. 2.然后拟合剩下的数据 3.最后进行预测和推断. 术语: 训练集(training set):用来拟合模型的数据. 测试集(test set):排除出去的数据. 训练损失(tra

机器学习基础4--评估线性分类

如线性回归一样,我们也分成了训练集和测试集. 用训练集进行分类器的学习,用测试集来评估分类错误. 分类错误: 测试集 -> 隐藏类型标签 -> 放到分类器进行处理 -> 得出结果 -> 与定义好的类型标签进行比较 错误率: 分类错误数/总句子数 正确率: 分类正确数/总句子数 那么,什么样的正确率才是好的? 至少要比随机猜测效果要好. 如果有k个分类,那么正确率至少要大于等于1/k 同时要关注是否有意义: 2010年,全球有90%的邮件是垃圾邮件.而只要说所有邮件都是垃圾邮件,就有

机器学习基础5--文档相似性检索与度量算法

案例:在阅读文章时,推荐相似的文章. 这个案例简单粗暴,尤其是我看小说的时候,闹书荒的时候,真的很希望有这样的功能.(PS:我现在就职于某小说公司) 那么,如何衡量文章之间的相似度? 在开始讲之前,先提一下elasticsearch. elasticsearch所使用的索引方式被称为倒排索引.将文档拆分成一个一个的词,然后记录该词出现在哪篇文档的哪个位置.具体解释请参照维基百科. 而在这里,我们将使用和倒排索引类似的方法--词袋模型. 我们有如下一句话. "Carlos calls the sp

《Python机器学习基础教程》高清版免费PDF下载

Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘下载 内容简介本书是机器学习入门书,以Python语言介绍.主要内容包括:机器学习的基本概念及其应用:实践中常用的机器学习算法以及这些算法的优缺点:在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面:模型评估和调参的方法,重点讲解交叉验证和网格搜索:管道的概念:如何将前面各章的方