`
backsnow
  • 浏览: 130932 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Programming.Collective.Intelligence中对常用机器学习算法的总结

阅读更多
  1. 朴素贝叶斯分类器,例子是有若干文档组成的样例,每个文档中的词语作为特征,通过独立分布假设和贝叶斯公司,文档属于某一分类的概率,可以转化为该分类中,这个文档中每个特征出现的概率
    1. 最大优势是处理大数据集时的速度,因为在更新概率计算时不需要用到以前的数据,即适合incremental training的应用,例如垃圾邮件过滤
    2. 另一个优势是分类器的学习过程易于理解,很容易在数据库中发现最易于分类的特征,来判断是垃圾邮件还是非垃圾邮件,python表示编程语言还是蛇
    3. 缺陷是它不能处理组合特征的情形。例如online pharmacy,两个词分开时可能为普通邮件,组合时很可能为垃圾邮件,这种情形无法用贝叶斯分类器学习到:如果以分块时为训练数据,训练出来的组合情形可能判断为普通邮件。这是由于特征间的独立同分布假设造成的。
  2. 决策树分类器
    1. 最大的优势是模型有助于理解,可以很清楚地知道哪些因素对分类是最重要的(根节点),有多重要
    2. 能够处理数值数据和分类数据作为输入的情形,但是不能很好地预测数值数据的结果
    3. 比贝叶斯分类器的优势是能够处理变量相互影响的情形,如特征组合的情况
    4. 然而,该分类器在邮件过滤中不实用的原因是它不能用于incremental training, 每次训练时需要用到所有的数据集
  3. 神经网络
    1. 主要的优势是能处理复杂的非线性函数,发现不同输入之间的依赖性,也能够处理输入输出为数值的情形。
    2. 它也能用于incremental training的情形,只需要存储一些突触(像是中间状态)的权重
    3. 主要缺陷是,它是一种黑盒方法,不能给出预测结果的缘由
    4. 另一个缺陷是,没有确定的法则来指导训练率和网络大小的选择,通常只能根据大量的实验,依靠经验来选取
  4. SVM
    1. 强大的分类器,预测速度很快
    2. 缺点是每个数据集最好的核转换函数和参数都不相同,每次都要重新选取,一般需要通过交叉校验
    3. SVM适合大数据集存在的问题,不像决策树,即使是少量数据也能给出一些有用的信息
    4. 和神经网络一样,都是black-box方法,甚至比NN更难于理解,因为涉及到将数据转换到高维空间的步骤
  5. K-NN
    1. 找最近邻,通常需要一个距离度量函数,例如Euclidean distance, pearson corralation and Tanimoto score. 易于理解,在很多应用中都会用到,例如推荐算法。实际应用如通过训练数据中相机的特征(像素)和价格来推断某款相机的价格
  6. 聚类
    1. 常用的有hierarchical clustering和k-means clustering, 实际应用如博客的分类,是技术博客还是新闻博客等
  7. 非负矩阵分解
    1. 无监督方法,主要用来描述数据而不是预测数据的分类或者分值。 例如将股票交易额分解为单只或多只股票受影响的事件;将用户对电影的评价打分矩阵分解成用户-影响影子,电影-影响因子两个矩阵。注意每次分解得到的矩阵可不同
分享到:
评论
1 楼 saieuler 2012-09-18  
最近想学,标记一下

相关推荐

    programming.collective.intelligence.aug.2007.pd

    本书聚焦于机器学习算法在互联网数据分析中的应用,通过实践案例深入浅出地讲解了如何利用计算方法处理海量数据,挖掘网络上的社会互动模式。该书不仅对初学者提供了入门级的算法和方法指导,也适合经验丰富的AI...

    构建轻巧的WEB2.0程序Programming.Collective.Intelligence

    本书深入浅出地介绍了机器学习算法,将其复杂性拆解为实践性强、易于理解的示例,使开发者能够直接应用于分析网络上的社会互动。 在技术选型上,本书涵盖了多种编程语言,包括ASP.NET、C#、Java、Perl以及XML等,...

    Programming Collective Intelligence

    《编程集体智能》(Programming Collective Intelligence)是一本旨在帮助读者掌握如何利用Python语言进行机器学习的技术书籍。本书深入浅出地介绍了各种复杂的机器学习算法,并通过实际案例将这些算法的应用变得简单...

    programming collective intelligence

    整体来看,《programming collective intelligence》是一本旨在通过互联网应用的上下文,教授如何使用机器学习算法分析大量数据的书籍。它通过实用且易于理解的例子,帮助开发者学习算法,并将其应用于实际的网络...

    Programming Collective Intelligence(集体智慧编程英文版)

    这本书主要面向对Python编程有一定基础,并希望通过编程手段理解并应用大数据、机器学习和人工智能领域的读者。 集体智慧是指通过网络连接的大量个体共同贡献、共享和协作,形成的一种超越单个个体智能的现象。在...

    Programming-Collective-Intelligence-Source-Code:集体智慧编程源代码

    5. 机器学习:包括监督学习和无监督学习算法,如朴素贝叶斯分类、k-近邻算法、SVM(支持向量机)等。这些算法在分类、回归和预测问题中都有广泛应用。 6. 信息可视化:使用matplotlib、seaborn等Python库将数据结果...

    集体编程的智慧Programming Collective Intelligence

    本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈...

    如何学习人工智能 (2).docx

    11. 机器学习资源:Coursera 的 AndrewNg 机器学习课程、TutsPlus 课程“Machine Learning Distilled”、“Programming Collective Intelligence”一书都是学习机器学习的不错资源。 12. 人工智能的应用:人工智能...

    人工智能学习资料参考.pdf

    1. 《Programming Collective Intelligence》:适合初学者,通过实践项目介绍机器学习的基本概念。 2. Peter Norvig的《AI, Modern Approach 2nd》:人工智能领域的经典教材,全面覆盖了AI的基础理论和方法。 3. ...

    如何学习人工智能.pdf

    除了这些,还可以参考其他资源,如TutsPlus的“Machine Learning Distilled”课程和《Programming Collective Intelligence》这本书,以加深对机器学习算法的理解和实践。 总的来说,学习人工智能是一个综合性的...

    集体智慧编程-源代码

    2. 机器学习:书中的代码可能涵盖了监督学习、非监督学习、强化学习等机器学习算法,如朴素贝叶斯分类、决策树、支持向量机、神经网络等,用于预测、分类和模式识别。 3. 社交网络分析:在集体智慧中,社交网络分析...

    集体智慧编程

    《集体智慧编程》(Programming Collective Intelligence)是一本深入浅出地介绍了机器学习算法及其在网络数据处理中的应用的著作。该书通过实用且易于理解的例子,帮助读者掌握复杂的主题,并能够直接应用于分析...

    Сегаран -- Программируем коллективный разум -- 2008.pdf

    本书作为实践指南,不仅提供了理论背景,还深入浅出地讲解了如何将机器学习算法应用于Web 2.0环境下的具体项目中。例如,利用聚类算法对用户行为进行分类;使用关联规则挖掘技术发现用户的潜在需求;借助自然语言...

    集体智慧编程(英文版)

    2. 机器学习:机器学习是让计算机自我学习和改进的过程,书中会讲解如何使用各种算法,如决策树、神经网络、支持向量机等,使程序能够根据经验不断优化。 3. 社交网络分析:社交网络中的关系和互动数据可以揭示人与...

    集体智慧编程源代码

    在这一压缩包中,"Programming-Collective-Intelligence-master" 文件夹很可能包含了整本书的源代码示例。这些代码可能涵盖了多个主题,包括但不限于网络爬虫技术、数据分析、数据挖掘、推荐系统、协同过滤算法等。...

Global site tag (gtag.js) - Google Analytics