本文实例讲述了Python使用sklearn实现的各种回归算法。分享给大家供大家参考,具体如下:

使用sklearn做各种回归

基本回归:线性、决策树、SVM、KNN

集成方法:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

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的噪声。生成函数的代码如下:

def f(x1, x2):

y = 0.5 * np.sin(x1) + 0.5 * np.cos(x2) + 0.1 * x1 + 3

return y

def load_data():

x1_train = np.linspace(0,50,500)

x2_train = np.linspace(-10,10,500)

data_train = np.array([[x1,x2,f(x1,x2) + (np.random.random(1)-0.5)] for x1,x2 in zip(x1_train, x2_train)])

x1_test = np.linspace(0,50,100)+ 0.5 * np.random.random(100)

x2_test = np.linspace(-10,10,100) + 0.02 * np.random.random(100)

data_test = np.array([[x1,x2,f(x1,x2)] for x1,x2 in zip(x1_test, x2_test)])

return data_train, data_test

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

2. scikit-learn的简单使用

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

完整程式化代码为:

import numpy as np

import matplotlib.pyplot as plt

###########1.数据生成部分##########

def f(x1, x2):

y = 0.5 * np.sin(x1) + 0.5 * np.cos(x2) + 3 + 0.1 * x1

return y

def load_data():

x1_train = np.linspace(0,50,500)

x2_train = np.linspace(-10,10,500)

data_train = np.array([[x1,x2,f(x1,x2) + (np.random.random(1)-0.5)] for x1,x2 in zip(x1_train, x2_train)])

x1_test = np.linspace(0,50,100)+ 0.5 * np.random.random(100)

x2_test = np.linspace(-10,10,100) + 0.02 * np.random.random(100)

data_test = np.array([[x1,x2,f(x1,x2)] for x1,x2 in zip(x1_test, x2_test)])

return data_train, data_test

train, test = load_data()

x_train, y_train = train[:,:2], train[:,2] #数据前两列是x1,x2 第三列是y,这里的y有随机噪声

x_test ,y_test = test[:,:2], test[:,2] # 同上,不过这里的y没有噪声

###########2.回归部分##########

def try_different_method(model):

model.fit(x_train,y_train)

score = model.score(x_test, y_test)

result = model.predict(x_test)

plt.figure()

plt.plot(np.arange(len(result)), y_test,'go-',label='true value')

plt.plot(np.arange(len(result)),result,'ro-',label='predict value')

plt.title('score: %f'%score)

plt.legend()

plt.show()

###########3.具体方法选择##########

####3.1决策树回归####

from sklearn import tree

model_DecisionTreeRegressor = tree.DecisionTreeRegressor()

####3.2线性回归####

from sklearn import linear_model

model_LinearRegression = linear_model.LinearRegression()

####3.3SVM回归####

from sklearn import svm

model_SVR = svm.SVR()

####3.4KNN回归####

from sklearn import neighbors

model_KNeighborsRegressor = neighbors.KNeighborsRegressor()

####3.5随机森林回归####

from sklearn import ensemble

model_RandomForestRegressor = ensemble.RandomForestRegressor(n_estimators=20)#这里使用20个决策树

####3.6Adaboost回归####

from sklearn import ensemble

model_AdaBoostRegressor = ensemble.AdaBoostRegressor(n_estimators=50)#这里使用50个决策树

####3.7GBRT回归####

from sklearn import ensemble

model_GradientBoostingRegressor = ensemble.GradientBoostingRegressor(n_estimators=100)#这里使用100个决策树

####3.8Bagging回归####

from sklearn.ensemble import BaggingRegressor

model_BaggingRegressor = BaggingRegressor()

####3.9ExtraTree极端随机树回归####

from sklearn.tree import ExtraTreeRegressor

model_ExtraTreeRegressor = ExtraTreeRegressor()

###########4.具体方法调用部分##########

try_different_method(model_DecisionTreeRegressor)

3.结果展示

决策树回归结果:

线性回归结果:

SVM回归结果:

KNN回归结果:

随机森林回归结果:

Adaboost回归结果:

GBRT回归结果:

Bagging回归结果:

极端随机树回归结果:

希望本文所述对大家Python程序设计有所帮助。

怎么用python实现回归_Python使用sklearn实现的各种回归算法示例相关推荐

  1. python最短路径例子_Python实现的多叉树寻找最短路径算法示例

    本文实例讲述了Python实现的多叉树寻找最短路径算法.分享给大家供大家参考,具体如下: 多叉树的最短路径: 思想: 传入start 和 end 两个 目标值 1 找到从根节点到目标节点的路径 2 从 ...

  2. pythonsklearn教学_Python使用sklearn实现的各种回归算法示例

    本文实例讲述了Python使用sklearn实现的各种回归算法.分享给大家供大家参考,具体如下: 使用sklearn做各种回归 基本回归:线性.决策树.SVM.KNN 集成方法:随机森林.Adaboo ...

  3. python泰坦尼克号数据分析_Python数据分析|泰坦尼克逻辑回归

    Python数据分析学习笔记,今天分享下利用Python进行逻辑回归,预测泰坦尼克号乘客生存情况. #导入2个Python常用数据分析的库import numpy as npimport pandas ...

  4. python积分管理系统_python实现每天自动签到领积分的示例代码

    自动签到的python脚本源码 新建一个python文件,checkin.py,保存到电脑上某个位置,我这里保存到的是E:\pyproject\checkin.py # 引入3个包 from sele ...

  5. python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例

    本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...

  6. python日历模块_Python日历模块| firstweekday()方法与示例

    python日历模块 Python calendar.firstweekday()方法 (Python calendar.firstweekday() Method) firstweekday() m ...

  7. python .center用法_Python Pandas Series.str.center()用法及代码示例

    Series.str可用于以字符串形式访问系列的值并对其应用几种方法. Pandas Series.str.center()函数用于在系列/索引中的字符串的左侧和右侧填充其他字符.该功能等效于Pyth ...

  8. python乘法函数_Python中列表与元组的乘法操作示例

    本文实例讲述了Python中列表与元组的乘法操作.分享给大家供大家参考,具体如下: 直接上code吧,还可以这么玩儿 列表乘法: li=[1,] li=li*3 print(li) out: [1, ...

  9. python画子图_Python使用add_subplot与subplot画子图操作示例

    本文实例讲述了Python使用add_subplot与subplot画子图操作.分享给大家供大家参考,具体如下: 子图:就是在一张figure里面生成多张子图. Matplotlib对象简介 Figu ...

最新文章

  1. 职场小窍门:看穿同事性格的16个小动作
  2. 在交换机上,广播帧是如何发送的,
  3. poj 1321 棋盘问题(dfs)
  4. CRM Fiori launchpad请求响应结果的字段分析
  5. 深入解读 Entity Framework 4.0和4.1
  6. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...
  7. 虚拟ip工具_《跟唐老师学习云网络》 - ip命令
  8. [习题]给初学者的范例,多重字段搜寻引擎 for GridView,兼论 SqlDataSource与SelectParameter的用法...
  9. 北京地铁5号线地图(线路图、站名、实拍pp)
  10. 【JavaScript脚本编程技术详解-----(一)】
  11. 翻译:通过使用终端(iTerm2&Oh my ZSH)来提高您的生产率
  12. 电脑网络里显示有两台计算机,2台电脑能共用一个显示器吗
  13. 微信 8.0 「裂开」「炸弹」的特效代码
  14. AgileCDN加速情况数据测评
  15. Revit二次开发——链接模型坐标系与模型坐标系转换
  16. 个人空间岁末大回报活动12月16日获奖名单
  17. Stata连享会:分享一大堆资料
  18. 喂,恶臭青年,你还想继续单身?今天特别福利来袭,出来挨打!
  19. matlab彩色转灰度图代码,彩色图转灰度图 matlab 实现代码
  20. 详细说明如何实现简易轮播效果

热门文章

  1. linux du -hd1查看文件及目录所占磁盘空间
  2. 【帖子收藏】ansible 中的循环:with_file 和 with_fileglob
  3. 【收藏】HBase源码 | HBase2.x源码导入IDEA并开启DEBUG调试
  4. 深入理解spark两种调度模式:FIFO,FAIR模式
  5. 【原创视频】docker pull和docker run运行原理分析
  6. jenkins清除、修改admin主账号的密码
  7. Linux deepin下普通用户免密切换至root用户
  8. 解决RabbitMQ消息丢失问题和保证消息可靠性
  9. Linux service指令
  10. 【SSM】第一个SpringMVC入门示例