zoukankan      html  css  js  c++  java
  • 机器学习之路: 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 '''
  • 相关阅读:
    NSDateFormatter格式详细列表一览
    Core Data could not fulfill a fault
    使用Devstack部署neutron网络节点
    配置基于Devstack的嵌套KVM虚拟化
    配置基于Devstack的嵌套KVM虚拟化
    Devstack单节点环境实战配置
    Devstack单节点环境实战配置
    Openstack贡献者须知 2 — 社区工作运作 & 代码贡献流程
    Openstack贡献者须知 2 — 社区工作运作 & 代码贡献流程
    Openstack 中的消息总线 & AMQP
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/8972002.html
Copyright © 2011-2022 走看看