专栏首页目标检测和深度学习30分钟学会用scikit-learn的基本回归方法(线性、决策树、SVM、KNN,Adaboost和GBRT)

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

前言:本教程主要使用了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

本文分享自微信公众号 - 目标检测和深度学习(The_leader_of_DL_CV),作者:元峰MetaPeak

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Deep Image Prior——图像恢复入门

    图像恢复是指从其劣质图像中恢复未知真实图像的任务。 图像损耗可能在图像形成,传输和存储期间发生。 该任务广泛的用于卫星成像,低光摄影。由于数字技术的进步,计算和...

    朱晓霞
  • CVPR 2018 | Spotlight论文:变分U-Net,可按条件独立变换目标的外观和形状

    最近用于图像合成的生成模型备受关注 [7, 12, 18, 24, 49, 51, 32]。生成目标的图像需要对它们的外观和空间布局的详细理解。因此,我们必须分...

    朱晓霞
  • 【谷歌机器学习课程公开了!】Google AI 教育项目今起免费开放,完美支持中文

    【新智元导读】3月的第一天,谷歌就为各级别的AI开发者和研究人员带来了福利:免费的机器学习和人工智能课程。首先推出的机器学习速成班课程约为15小时,包括互动课程...

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

    前言:本教程主要使用了numpy的最最基本的功能,用于生成数据,matplotlib用于绘图,scikit-learn用于调用机器学习方法。如果你不熟悉他们(我...

    IT派
  • 医学图像处理教程(一)——医学算法数据的基本概念

    在前面的文章中,已经给大家分享了很多图像处理案例和深度学习案例,但是还是有很多人提出很多问题,基本上都是对案例实现代码的理解不够透彻。从今天起我将开始分享医学图...

    用户7498388
  • 人工智能的另一方向:基于忆阻器的存算一体技术

    过去的十年以深度神经网络为代表的人工智能技术深刻影响了人类社会。但深度神经网络的发展已经进入瓶颈期,我们仍处于弱人工智能时代。如何更近一步,跨入强人工智能,敲击...

    AI科技评论
  • Python学习(五)---- 不可不知的装饰器!

    https://blog.csdn.net/fgf00/article/details/52061971

    智能算法
  • Kotlin 重构 - F6 not working?原始代码目标代码重构步骤如下:小结问题

    Option + Enter, Convert member to extension

    lambeta
  • Helm3部署安装

    5.用于在OCI注册表中存储Helm图表的实验支持(例如Docker Distribution)可以进行测试。

    chenjingwei
  • 【译】JS的执行上下文和环境栈是什么?

    这篇文章中,我将深入探讨JavaScript中的一个最基本的部分,即执行上下文(或称环境)。读过本文后,你将更加清楚地了解到解释器尝试做什么,为什么在声明某些函...

    嘉明

扫码关注云+社区

领取腾讯云代金券