机器学习之路: python 回归树 DecisionTreeRegressor 预测波士顿房价

python3 学习api的使用

git: https://github.com/linyi0604/MachineLearning

代码:

 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.tree import DecisionTreeRegressor
 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     解决特征非线性的问题
14     不要求特征标准化和统一量化
15
16     容易过于复杂丧失泛化能力
17     稳定性较差,细微改变会导致树结构发生重大变化
18
19 ‘‘‘
20
21 # 1 准备数据
22 # 读取波士顿地区房价信息
23 boston = load_boston()
24 # 查看数据描述
25 # print(boston.DESCR)   # 共506条波士顿地区房价信息,每条13项数值特征描述和目标房价
26 # 查看数据的差异情况
27 # print("最大房价:", np.max(boston.target))   # 50
28 # print("最小房价:",np.min(boston.target))    # 5
29 # print("平均房价:", np.mean(boston.target))   # 22.532806324110677
30
31 x = boston.data
32 y = boston.target
33
34 # 2 分割训练数据和测试数据
35 # 随机采样25%作为测试 75%作为训练
36 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33)
37
38
39 # 3 训练数据和测试数据进行标准化处理
40 ss_x = StandardScaler()
41 x_train = ss_x.fit_transform(x_train)
42 x_test = ss_x.transform(x_test)
43
44 ss_y = StandardScaler()
45 y_train = ss_y.fit_transform(y_train.reshape(-1, 1))
46 y_test = ss_y.transform(y_test.reshape(-1, 1))
47
48 # 4 使用回归树进行训练和预测
49 # 初始化k近邻回归模型 使用平均回归进行预测
50 dtr = DecisionTreeRegressor()
51 # 训练
52 dtr.fit(x_train, y_train)
53 # 预测 保存预测结果
54 dtr_y_predict = dtr.predict(x_test)
55
56 # 5 模型评估
57 print("回归树的默认评估值为:", dtr.score(x_test, y_test))
58 print("平回归树的R_squared值为:", r2_score(y_test, dtr_y_predict))
59 print("回归树的均方误差为:", mean_squared_error(ss_y.inverse_transform(y_test),
60                                            ss_y.inverse_transform(dtr_y_predict)))
61 print("回归树的平均绝对误差为:", mean_absolute_error(ss_y.inverse_transform(y_test),
62                                                ss_y.inverse_transform(dtr_y_predict)))
63
64 ‘‘‘
65 回归树的默认评估值为: 0.7066505912533438
66 平回归树的R_squared值为: 0.7066505912533438
67 回归树的均方误差为: 22.746692913385836
68 回归树的平均绝对误差为: 3.08740157480315
69 ‘‘‘

原文地址:https://www.cnblogs.com/Lin-Yi/p/8972002.html

时间: 2024-11-06 13:28:37

机器学习之路: python 回归树 DecisionTreeRegressor 预测波士顿房价的相关文章

机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

python3学习使用api 线性回归,和 随机参数回归 git: https://github.com/linyi0604/MachineLearning 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.linear

机器学习之路: python k近邻分类器 鸢尾花分类预测

使用python语言 学习k近邻分类器的api 欢迎来到我的git查看源代码: https://github.com/linyi0604/kaggle 1 from sklearn.datasets import load_iris 2 from sklearn.cross_validation import train_test_split 3 from sklearn.preprocessing import StandardScaler 4 from sklearn.neighbors i

机器学习之路: python 决策树分类 预测泰坦尼克号乘客是否幸存

使用python3 学习了决策树分类器的api 涉及到 特征的提取,数据类型保留,分类类型抽取出来新的类型 需要网上下载数据集,我把他们下载到了本地, 可以到我的git下载代码和数据集: https://github.com/linyi0604/MachineLearning 1 import pandas as pd 2 from sklearn.cross_validation import train_test_split 3 from sklearn.feature_extraction

从回归树到GBDT

GBDT可以看做是由多棵回归树组成的,所以要理解GBDT,就要先理解回归树.回归树也是为了做预测,只是将特征空间划分成了若干个区域,在每个区域里进行预测,举个简单例子. 图中的数据有两个特征:x1.x2,根据这两个特征可以很容易地把数据分为左下角.左上角.右上角.右下角四个区域,这四个区域各有一个中心点(5,5).(5,10).(10,10).(10,5),在对新数据做预测时,该数据落在哪个区域,就把该区域的中心点作为它的预测值.那么如何判断新数据将落在哪个区域呢?这时候"树"就派上用

CART(分类回归树)

1.简单介绍 线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外).当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的想法一个是困难一个是笨拙.此外,实际中很多问题为非线性的,例如常见到的分段函数,不可能用全局线性模型来进行拟合. 树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合.这里介绍较为经典的树回归CART(classification and regression trees,分类回归树)算法. 2.分类回归树基本流程 构建树: 1.找到[最佳待切分

机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树

摘要: Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),本文介绍了CART用于离散标签分类决策和连续特征回归时的原理.决策树创建过程分析了信息混乱度度量Gini指数.连续和离散特征的特殊处理.连续和离散特征共存时函数的特殊处理和后剪枝:用于回归时则介绍了回归树和模型树的原理.适用场景和创建过程.个人认为,回归树和模型树

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)

机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了. 这节学习的是逻辑回归(Logistic Regression),也算进入了比较正统的机器学习算法.啥叫正统呢?我概念里面机器学习算法一般是这样一个步骤: 1)对于一个问题,我们用数学语言来描述它,然后建立一个模型,例如回归模型或者分类模型等

模型树——就是回归树的分段常数预测修改为线性回归 对于非线性回归有较好的预测效果

说完了树回归,再简单的提下模型树,因为树回归每个节点是一些特征和特征值,选取的原则是根据特征方差最小.如果把叶子节点换成分段线性函数,那么就变成了模型树,如(图六)所示: (图六) (图六)中明显是两个直线组成,以X坐标(0.0-0.3)和(0.3-1.0)分成的两个线段.如果我们用两个叶子节点保存两个线性回归模型,就完成了这部分数据的拟合.实现也比较简单,代码如下: [python] view plain copy def linearSolve(dataSet):   #helper fun

机器学习技法-决策树和CART分类回归树构建算法

课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增强(AdaBoost) Bagging和AdaBoost算法再分类的时候,是让所有的弱分类器同时发挥作用.它们之间的区别每个弱分离器是否对后来的blending生成G有相同的权重. Decision Tree是一种有条件的融合算法,每次只能根据条件让某个分类器发挥作用. 二.基本决策树算法 1.用递