原标题:Python8种最常见火爆的机器学习算法

毋庸置疑,近来机器学习人气日益高涨,逐渐在流行词榜单上占据一席之地。机器学习算法繁多,到底该选择哪一种处理相关数据是困扰很多学习者的问题。本文将以一种清晰简明的方式,解释并实践最常见的几种机器学习算法。

接下来,我们将罗列8种最常见火爆的机器学习算法,通过Python,将它们分别适用同一个经典数据集Iris(线性回归和逻辑回归除外),进而分辨出不同算法在预测准确率、模型建立过程、对数据集的使用方式等方向的异同。

推荐下我自己创建的Python学习交流群960410445,这是Python学习交流的地方,不管你是小白还是大牛,小编都欢迎,不定期分享干货,包括我整理的一份适合零基础学习Python的资料和入门教程。

8大算法

本文中将覆盖共8种不同的机器学习算法(后续会有更多)。阅读时本指南时,你可以自由的随意翻翻或跳过任何一个已经熟悉的算法。请根据着个人需求使用这份指南。闲话少说,本文将分为以下及部分。

1.线性回归

2.逻辑回归

3.决策树

4.支持向量机

5.KNN 临近算法

6.随机森林

7. K-Means聚类

8.主成分分析

若尝试使用他人的代码时,结果你发现需要三个新的模块包而且本代码是用旧版本的语言写出的,这将让人感到无比沮丧。为了大家更加方便,我将使用Python3.5.2并会在下方列出了我在做这些练习前加载的模块包。我也从UCI机器学习库中下载了Diabetes和Iris数据集作为样本数据。

如果你希望跳过这些内容,仅想看看全部代码,你可以直接前往Github上查看。

线性回归

讲解

线性回归应该是机器学习原理中最流行也是最不受重视的算法了。在比较模型表现时,许多数据科学家总是会忽略这一事实,即比起复杂更应该选择简单的方法。

总之,线性回归是一种基于连续型变量进行预测的有监督学习算法。线性回归适用范围广泛,它既能对单一变量做回归(简单线性回归)也可以对多维特征做回归(多元线性回归)。他的工作原理是,对变量分配最佳权重以产生的一条直线(ax+b)用于预测结果。请查看以下视频了解更多详尽内容。

现在你应该已经掌握了线性回归的概念,接下来让我们看看怎样在Python中实现它。

准备工作

可视化

实现

逻辑回归

讲解

逻辑回归是有监督分类算法的一种,对预测离散变量非常有效。一种典型的用法是用逻辑回归方程预测事件在0到1之间发生的概率。

当我第一次学习逻辑回归时,以为是这只是一个小众工具,并没有引起十分的注意。后来我才发现,这种想法真是大错特错。逻辑回归的一些潜在概念在机器学习其他算法例如神经网络中也有用到。请大家牢记这一点,然后查看下面的视频了解更多内容。

现在你已经掌握了逻辑回归的一些概念,让我们在Python中加以实现。

准备工作

可视化

实现

决策树

讲解

决策树也是有监督学习的一种,即可用于分类也可用于回归。在我的经验里,他们主要用于分类。模型先接受输入的一种情况,然后沿着树枝向下走,依据设计的条件检测重要变量。根据结果,选择继续往左边的子枝走还是往右边的子枝走,如此重复。一般整个过程中,最重要的特征会更靠近树的根部。

决策树正变得越来越受欢迎,而且任何项目的数据科学家都能用它作为一种强分类算法,尤其与随机是森林,Boosting 算法和Bagging 算法一起使用时。再一次,使用下方的视频更深入了解决策树的基础功能。

现在你知道决策树以及它怎样运作了,让我们去Python中实践一下。

准备工作

实现

可视化

支持向量机

讲解

支持向量机,又称SVM,是一种通过在不同类别的数据间生成一条分界线实现分类的知名的有监督分类算法。简单来说,通过计算最优分割平面,使得属于两个不同类的数据点间隔最大,从而得到分类向量。

分类向量一般被默认或被视为线性,然而不一定非要这样。如果核函数不是默认的高斯函数或线性函数,分类向量也可以是非线性的形式。关于SVM还有很多可以介绍,请继续观看指导视频。(后台回复 “代码”2字获取相关资源。)

现在你已经了解支持向量机了,让我们在Python中一起实践一下。

准备工作

实现

可视化

KNN邻近算法

讲解

K最邻近分类算法,或缩写为KNN,是一种有监督学习算法,专门用于分类。算法先关注不同类的中心,对比样本和类中心的距离(通常用欧几里得距离方程)。如果一个样本中的大多数属于某一个类别,则该样本都归属于这个类别。

你已经了解了KNN算法的内在概念,让我们在Python中实践一下。

准备工作

可视化

实现

随机森林

讲解

随机森林是一种流行的有监督集成学习算法。集成的意思是把许多”弱学习器”结合在一起,形成一个强预测器。在本例中,每一个随机生成的决策树都是一个弱学习器,放在一起成为了一个强预测器—随机森林。后台获取相关视频,介绍更多随机森林背后的原理。

知道了随机森林的运作原理,到了在Python中实践的时间了。

准备工作

from sklearn.ensemble import RandomForestClassifier

df = pd.read_csv(‘iris_df.csv’)

df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

df.head()

实现

from sklearn.cross_validation import train_test_split

forest = RandomForestClassifier()

X = df.values[:, 0:4]

Y = df.values[:, 4]

trainX, testX, trainY, testY = train_test_split( X, Y, test_size = 0.3)

forest.fit(trainX, trainY)

print(‘Accuracy: \n’, forest.score(testX, testY))

pred = forest.predict(testX)

K-Means 聚类算法

讲解

K-Means算法是一种流行的无监督学习分类算法,主要用于解决聚类问题。K 是用户预输入的分类数量。算法先随机选择K个点,然后用距离算法将剩下的对象分组,最终达到最优聚类。模型的好坏主要取决于数据科学家对K值的设定。按照惯例,后台获取相关视频了解更多内容。

现在我们已经对K-Means聚类了解更多,也明白它的原理了。让我们在Python中实现一下它的算法。

准备工作

from sklearn.cluster import KMeans

df = pd.read_csv(‘iris_df.csv’)

df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

df = df.drop([‘X4’, ‘X3’], 1)

df.head()

实现

from sklearn.cross_validation import train_test_split

kmeans = KMeans(n_clusters=3)

X = df.values[:, 0:2]

kmeans.fit(X)

df[‘Pred’] = kmeans.predict(X)

df.head()

可视化

sns.set_context(“notebook”, font_scale=1.1)

sns.set_style(“ticks”)

sns.lmplot(‘X1’,’X2', scatter=True, fit_reg=False, data=df, hue = ‘Pred’)

PCA主成分分析

讲解

主成分分析(PCA)是一种降维算法,可以为数据科学家做很多事。最主要的是,当模型有成百上千个不同特征需要处理时,主成分分析能极大地减少模型计算量。这是一种无监督模型,但使用者依然需要分析降维后的结果,确保其能保持原数据集95%左右的信息。关于主成分分析还有很多内容可以说

现在我们了解了更多主成分分析和它的原理,让我们在Python中实践一下。

准备工作

trom sklearn import decomposition

df = pd.read_csv(‘iris_df.csv’)

df.columns = [‘X1’, ‘X2’, ‘X3’, ‘X4’, ‘Y’]

df.head()

实现

from sklearn import decomposition

pca = decomposition.PCA()

fa = decomposition.FactorAnalysis()

X = df.values[:, 0:4]

Y = df.values[:, 4]

train, test = train_test_split(X,test_size = 0.3)

train_reduced = pca.fit_transform(train)

test_reduced = pca.transform(test)

pca.n_components_

这份辅导指南仅简单介绍了当下流行的机器学习算法的皮毛, 希望它能在你们成为机器学习大师的旅程上有所帮助。返回搜狐,查看更多

责任编辑:

python的分类算法有哪些_Python8种最常见火爆的机器学习算法相关推荐

  1. 常见面试之机器学习算法思想简单梳理

    找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位 ...

  2. 【转】常见面试之机器学习算法思想简单梳理

    转:http://www.chinakdd.com/article-oyU85v018dQL0Iu.html 前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不 ...

  3. 什么是哈希(Hsah)算法,哈希算法的作用以及Java中常见的哈希算法的使用案例。

    一.了解哈希算法 1.简介 Hash算法(又称摘要算法),一般翻译做散列或音译为哈希,哈希算法具有不可逆性.压缩性.高效性等重要特点,可以将任意长度的数据转换成一个固定长度的哈希值.该输出就是散列值. ...

  4. 【机器学习基础】数学推导+纯Python实现机器学习算法3:k近邻

    作为一种没有显式训练和学习过程的分类和回归算法,k 近邻在众多有监督机器学习算法中算是一种比较独特的方法.说它独特,是因为 k 近邻不像其他模型有损失函数.有优化算法.有训练过程.对于给定的实例数据和 ...

  5. python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

    概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...

  6. 机器学习算法 | Python实现k-近邻算法

    机器学习算法 | Python实现k-近邻算法 目录 机器学习算法 | Python实现k-近邻算法 基本介绍 工作原理 程序设计 参考资料 基本介绍 KNN,全名k近邻算法.是⼀种⾮常简单有效的机器 ...

  7. 【机器学习算法】Logistic回归分类算法

    文章目录 一.Logistic回归 1. 分类问题 2. Logistic函数 (1) 阶跃函数(不可导) (2)可导的阶跃函数 二.Logistic回归的算法原理 1. 基本思路 2. 数学解析 ( ...

  8. 机器学习中的聚类算法有哪几种?

    目前,聚类算法被广泛应用于用户画像.广告推荐.新闻推送和图像分割等等.聚类算法是机器学习中一种"数据探索"的分析方法,它帮助我们在大量的数据中探索和发现数据的结构.那么机器学习中的 ...

  9. 机器学习算法_明确解释:4种机器学习算法

    您是涉足机器学习的数据科学家吗? 如果是,那么您应该阅读此内容. 定义,目的,流行算法和用例-全部说明 > Photo by Andy Kelly on Unsplash 机器学习已经从科幻小说 ...

最新文章

  1. php 二叉树判断节点的位置,PHP实现判断二叉树是否对称的方法
  2. Shiro笔记(三)授权
  3. python 人脸轮廓提取_实现人脸识别、人脸68个特征点提取,或许这个 Python 库能帮到你!...
  4. python计算时间装饰器_python 写一个计算运行时间的装饰器
  5. 95-872-040-源码-CEP-CEP简介
  6. php 压缩js css文件,PHP实现动态压缩js与css文件的方法
  7. mysql的初始化语句是_MySQL入门之预处理语句的使用
  8. DevExpress WinForm 控件汉化方法 代码(一)
  9. 直接选择排序(含图解)
  10. 各层电子数排布规则_电子式排布规律
  11. OpenGl读取导入3D模型并且添加鼠标移动旋转显示
  12. java环境变量配置_Java环境变量配置终极版
  13. 【百问网智能家居---基于单片机最小系统STM32F103C8T6_MINI的入门学习】
  14. maven报错问题汇总
  15. pandas写入excel指定行_使用pandas操作excel
  16. java-Map接口
  17. SpringSecurity-12-PasswordEncoder密码加密简介
  18. 基于web的家庭理财系统
  19. 【自然语言处理】gensim的word2vec
  20. 面试经验|2月最新映客直播一面+二面

热门文章

  1. 微服务 请求驱动和事件驱动_如何驯服事件驱动的微服务
  2. ZingGrid 1.2.7 Crack
  3. 正则表达式与“三贱客”
  4. (流水车间调度 FSSP) NEH启发式算法改进 (时间复杂度从 O(mn^3) 降至 O(mn^2) )
  5. 使用runjs在博客园中显示demo效果图
  6. html手机编辑器内含css,打造属于自己的 HTML/CSS/JavaScript 实时编辑器
  7. ubuntu下启动vlc报错“VLC is not supposed to be run as root“
  8. 解决错误:Error: TomEE required to support EAR/EJB deployment
  9. 摄像机模型——针孔成像
  10. ECDSA host key for vvv.vvv.vvv.vvv has changed and you have requested strict checking.