30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN,Adaboost和GBRT)

2018 年 5 月 12 日 全球人工智能 元峰MetaPeak

高薪招聘兼职AI讲师和AI助教!

加入高端数字货币投资者群!

前言:本教程主要使用了numpy的最最基本的功能,用于生成数据,matplotlib用于绘图,scikit-learn用于调用机器学习方法。如果你不熟悉他们(我也不熟悉),没关系,看看numpy和matplotlib最简单的教程就够了。我们这个教程的程序不超过50行。

1. 数据准备

为了实验用,我自己写了一个二元函数,y=0.5*np.sin(x1)+ 0.5*np.cos(x2)+0.1*x1+3。

其中x1的取值范围是0~50,x2的取值范围是-10~10,x1和x2的训练集一共有500个,测试集有100个。其中,在训练集的上加了一个-0.5~0.5的噪声。生成函数的代码如下:

其中训练集(y上加有-0.5~0.5的随机噪声)和测试集(没有噪声)的图像如下:

2. scikit-learn最简单的介绍

scikit-learn非常简单,只需实例化一个算法对象,然后调用fit()函数就可以了,fit之后,就可以使用predict()函数来预测了,然后可以使用score()函数来评估预测值和真实值的差异,函数返回一个得分。例如调用决策树的方法如下:

下来,我们可以根据预测值和真值来画出一个图像。画图的代码如下:

然后图像会显示如下: 

3. 开始试验各种不同的回归方法

为了加快测试, 这里写了一个函数,函数接收不同的回归类的对象,然后它就会画出图像,并且给出得分. 
函数基本如下:

3.1 常规回归方法

常规的回归方法有线性回归,决策树回归,SVM和k近邻(KNN)

3.1.1 线性回归

3.1.2数回归

然后决策树回归的图像就会显示出来: 

3.1.3 SVM回归

结果图像如下: 

3.1.4 KNN

竟然KNN这个计算效能最差的算法效果最好 

3.2 集成方法(随机森林,adaboost, GBRT)

3.2.1随机森林

3.2.2 Adaboost

图像如下: 

3.2.3 GBRT

4. scikit-learn还有很多其他的方法,可以参考用户手册自行试验.

5.完整代码

我这里在pycharm写的代码,但是在pycharm里面不显示图形,所以可以把代码复制到ipython中,使用%paste方法复制代码片. 
然后参照上面的各个方法导入算法,使用try_different_mothod()函数画图. 
完整代码如下:

原文链接:https://blog.csdn.net/u010900574/article/details/52666291

- 加入AI学院学习 -

点击“ 阅读原文 ”进入学习

登录查看更多
0

相关内容

Scikit-learn项目最早由数据科学家David Cournapeau 在2007 年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。
【2020新书】监督机器学习,156页pdf,剑桥大学出版社
专知会员服务
150+阅读 · 2020年6月27日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
专知会员服务
137+阅读 · 2020年5月19日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
331+阅读 · 2020年3月17日
《深度学习》圣经花书的数学推导、原理与Python代码实现
专知会员服务
112+阅读 · 2019年12月24日
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
决策树
Datartisan数据工匠
4+阅读 · 2018年4月19日
机器学习面试题精讲(一)
七月在线实验室
4+阅读 · 2018年1月11日
免费|机器学习算法Python实现
全球人工智能
5+阅读 · 2018年1月2日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
支持向量机分类实战
全球人工智能
4+阅读 · 2017年10月18日
用 Scikit-Learn 和 Pandas 学习线性回归
Python开发者
9+阅读 · 2017年9月26日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
从决策树到随机森林:树型算法的原理与实现
机器之心
8+阅读 · 2017年7月31日
干货 | 详解scikit-learn中随机森林(RF)和梯度提升决策树(GBDT)的参数调优
机器学习算法与Python学习
6+阅读 · 2017年7月26日
Foreground-aware Image Inpainting
Arxiv
4+阅读 · 2019年1月17日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Neural Arithmetic Logic Units
Arxiv
5+阅读 · 2018年8月1日
Arxiv
3+阅读 · 2017年7月6日
VIP会员
相关VIP内容
【2020新书】监督机器学习,156页pdf,剑桥大学出版社
专知会员服务
150+阅读 · 2020年6月27日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
专知会员服务
137+阅读 · 2020年5月19日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
331+阅读 · 2020年3月17日
《深度学习》圣经花书的数学推导、原理与Python代码实现
专知会员服务
112+阅读 · 2019年12月24日
相关资讯
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
决策树
Datartisan数据工匠
4+阅读 · 2018年4月19日
机器学习面试题精讲(一)
七月在线实验室
4+阅读 · 2018年1月11日
免费|机器学习算法Python实现
全球人工智能
5+阅读 · 2018年1月2日
动手写机器学习算法:SVM支持向量机(附代码)
七月在线实验室
12+阅读 · 2017年12月5日
支持向量机分类实战
全球人工智能
4+阅读 · 2017年10月18日
用 Scikit-Learn 和 Pandas 学习线性回归
Python开发者
9+阅读 · 2017年9月26日
Spark机器学习:矩阵及推荐算法
LibRec智能推荐
15+阅读 · 2017年8月3日
从决策树到随机森林:树型算法的原理与实现
机器之心
8+阅读 · 2017年7月31日
干货 | 详解scikit-learn中随机森林(RF)和梯度提升决策树(GBDT)的参数调优
机器学习算法与Python学习
6+阅读 · 2017年7月26日
Top
微信扫码咨询专知VIP会员