暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

随机森林回归(三)

云南高校数据化运营管理工程中心 2019-06-02
872
 

目录






1.sklearn实现随机森林

2.代码示例






编辑:

校对:

版本:

WangXin

WangXin

python3


sklearn实现随机森林


    随机森林算法的实现在sklearn中已经有了现成的方法,我们只需要在使用随机森林算法时,使用sklearn模块中的

RandomForestRegressior方法便可以实现我们所需要的功能。因此该节旨在前几节的原理掌握的基础上,使用更为方便的方法来实现随机森林算法。

代码示例


这里的数据我们采用boston房价数据集进行随机森林回归,并得模型的默认评估值,R²值,均方误差,平均绝对误差,来判定模型的好坏。

  1. from sklearn.datasets import load_boston

  2. from sklearn.cross_validation import train_test_split

  3. from sklearn.preprocessing import StandardScaler

  4. from sklearn.ensemble import RandomForestRegressor

  5. from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error

  6. import numpy as np


  7. '''

  8. 随机森林回归

  9. 极端随机森林回归

  10. 梯度提升回归


  11. 通常集成模型能够取得非常好的表现

  12. '''


  13. # 1 准备数据

  14. # 读取波士顿地区房价信息

  15. boston = load_boston()

  16. # 查看数据描述

  17. # print(boston.DESCR) # 506条波士顿地区房价信息,每条13项数值特征描述和目标房价

  18. # 查看数据的差异情况

  19. # print("最大房价:", np.max(boston.target)) # 50

  20. # print("最小房价:",np.min(boston.target)) # 5

  21. # print("平均房价:", np.mean(boston.target)) # 22.532806324110677


  22. x = boston.data

  23. y = boston.target


  24. # 2 分割训练数据和测试数据

  25. # 随机采样25%作为测试 75%作为训练

  26. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33)


  27. # 3 训练数据和测试数据进行标准化处理

  28. ss_x = StandardScaler()

  29. x_train = ss_x.fit_transform(x_train)

  30. x_test = ss_x.transform(x_test)


  31. ss_y = StandardScaler()

  32. y_train = ss_y.fit_transform(y_train.reshape(-1, 1))

  33. y_test = ss_y.transform(y_test.reshape(-1, 1))


  34. # 4 三种集成回归模型进行训练和预测

  35. # 随机森林回归

  36. rfr = RandomForestRegressor()

  37. # 训练

  38. rfr.fit(x_train, y_train)

  39. # 预测 保存预测结果

  40. rfr_y_predict = rfr.predict(x_test)

    #


  41. # 5 模型评估

  42. # 随机森林回归模型评估

  43. print("随机森林回归的默认评估值为:", rfr.score(x_test, y_test))

  44. print("随机森林回归的R_squared值为:", r2_score(y_test, rfr_y_predict))

  45. print("随机森林回归的均方误差为:", mean_squared_error(ss_y.inverse_transform(y_test),

  46. ss_y.inverse_transform(rfr_y_predict)))

  47. print("随机森林回归的平均绝对误差为:", mean_absolute_error(ss_y.inverse_transform(y_test),

  48. ss_y.inverse_transform(rfr_y_predict

  49. '''

  50. 随机森林回归的默认评估值为: 0.8391590262557747

  51. 随机森林回归的R_squared值为: 0.8391590262557747

  52. 随机森林回归的均方误差为: 12.471817322834646

  53. 随机森林回归的平均绝对误差为: 2.4255118110236227

  54. '''


学而不思则罔


在网络上找到其他你感兴趣的数据,并得其随机森林回归模型的默认评估值,R²值,均方误差,平均绝对误差。

理解编程语言,探索数据奥秘

每日练习|干货分享|新闻资讯|公益平台。

每天学习一点点,你将会见到全新的自己。

长按识别二维码关注


文章转载自云南高校数据化运营管理工程中心,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论