前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN,Adaboost和GBRT)

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

作者头像
IT派
发布2018-07-30 14:34:30
3990
发布2018-07-30 14:34:30
举报
文章被收录于专栏:IT派IT派IT派

前言:本教程主要使用了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()函数画图. 完整代码如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT派 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数据准备
  • 2. scikit-learn最简单的介绍
  • 3. 开始试验各种不同的回归方法
    • 3.1 常规回归方法
      • 3.1.1 线性回归
      • 3.1.2数回归
      • 3.1.3 SVM回归
      • 3.1.4 KNN
    • 3.2 集成方法(随机森林,adaboost, GBRT)
      • 3.2.1随机森林
      • 3.2.2 Adaboost
    • 3.2.3 GBRT
    • 4. scikit-learn还有很多其他的方法,可以参考用户手册自行试验.
    • 5.完整代码
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档