决策树波士顿房价预测代码难点笔记

机器学习实战二:波士顿房价预测 Boston Housing 波士顿房价预测 Boston housing 这是一个波士顿房价预测的一个实战,上一次 阅读详情

关于中文字体不能正常显示问题:

采用matplotlib作图时默认设置下是无法显示中文的,凡是汉字都会显示成小方块。

实际上,matplotlib是支持unicode编码的,不能正常显示汉字主要是没有找到合适的中文字体,在matplotlib的配置文件C:\Python34\Lib\site-packages\matplotlib\mpl-data\matplotlibrc中,可以看到字体的默认设置如下:

#font.family         : sans-serif
#font.sans-serif     : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

可以看到,其中并没有中文字体,所以我们只要手动添加中文字体的名称就可以了。不过添加的名称并不是普通的名称,python有个字体管理器,font_manager.py,它会生成一个文件:fontList.cache(我的是在这个路径下:C:\Users\Administrator\.matplotlib);里面包含着True Type字体(.ttf文件)与Python中相应字体的对应名称,黑体simhei.ttf (windows中的字体文件)对应的名称是: “SimHei’’;楷体simkai.ttf对应的名称为’KaiTi’。你想要让汉字显示成什么字体,在其中查找对应的名称就可以了。

 

有两种方法添加“SimHei’’,’KaiTi_GB2312’等中文字体名称:

1. 直接修改配置文件matplotlibrc
       在配置文件中找到font.sans-serif的设置,然后添加需要的中文字体名称,例如:
font.sans-serif    : SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif


2. 动态设置(推荐方式)
    在python脚本中动态设置matplotlibrc,这样不需要更改配置文件,方便灵活,例如:
from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']

 

      由于更改了字体导致显示不出负号,在配置文件中我们可以在axes相关设置里找到如下设置:

#axes.unicode_minus : True  可见默认情况下采用的是unicode的minus,看来我们选择的字体对这点支持不够,所以只要把它设置为False就可以了。

 

因此,最终需要在程序中加入如下代码,就可以正常显示汉字,并且不出现问题了。

from pylab import *
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False 

注意:每个要显示的汉字串前要加u,即u"汉字串"。

enumerate函数

enumerate英文翻译为枚举的意思。 可以将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标

枚举过程:


>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))                # 默认start为0          
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # start为1
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>> s = "ABCD"
>>> list(enumerate(s))                      # 字符串类型
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> l = ["A", "B", "C", "D"]
>>> list(enumerate(l))                      # 列表类型
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> t = ("A", "B", "C", "D")              
>>> list(enumerate(t))                      # 元祖类型                
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> d = {"A": 1, "B": 2}
>>> list(enumerate(d))                      # 字典类型,枚举其key
[(0, 'A'), (1, 'B')]

python中的map函数

map函数的原型是map(function, iterable, …),它的返回结果是一个列表。

参数function传的是一个函数名,可以是python内置的,也可以是自定义的。 参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。

str()是python的内置函数,这个例子是把列表/元组/字符串的每个元素变成了str类型,然后以列表的形式返回

a=list(map(str,'python'))
print(a)

输出:

['p', 'y', 't', 'h', 'o', 'n']

python中filter函数

filter(function, iterable)   

参数

  • function -- 判断函数。
  • iterable -- 可迭代对象。
    def is_odd(n):
        return n % 2 == 1
     
    newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    print(newlist)

    输出结果 :

    [1, 3, 5, 7, 9]

    难点   x, y = np.split(data, (13,), axis=1)

  • 1

    (13,)相当于[:13]和[13:]这样就等于拆成了两部分,第一部分是x,第二部分是y

    1

    如果是(13,14)就相当于三部分了[:13],[13:14],[14:],这种情况就需要x,y,z了

    1

    另外这个参数还可以是单个数,指的是直接把np分成若干份。

    1

    2

    data = np.arange(20)

    x, y = np.split(data, (13,), axis=0)

    1

    x = [ 0  1  2  3  4  5  6  7  8  9 10 11 12] 

    1

    y= [13 14 15 16 17 18 19]

  • #axis=1,代表列,是要把data数据集中的所有数据按第四、五列之间分割为X集和Y集。
    x, y = np.split(data, (4,), axis=1)
    1
    2
    纵向分割, 分成两部分, 按列分割

    print np.split(A, 2, axis = 1)
    1
    横向分割, 分成三部分, 按行分割

    print np.split(A, 3, axis = 0)

  •  

  • 分割函数

  • from sklearn.model_selection import train_test_split #train_test_split函数

    x = np.arange(15).reshape(-1, 3) #生成5行3列的一个矩阵

  • 此处reshape中的-1就是自动化行数,总计15个数三列那就自动是5列了

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=1)

参数含义:

x,y是原始的数据集。x_train,y_train 是原始数据集划分出来作为训练模型的,fit模型的时候用。
x_test,y_test 这部分的数据不参与模型的训练,而是用于评价训练出来的模型好坏,score评分的时候用。
test_size=0.2 测试集的划分比例
random_state=1 随机种子,如果随机种子一样,则随机生成的数据集是相同的
random_state就是为了保证程序每次运行都分割一样的训练集合测试集。否则,同样的算法模型在不同的训练集和测试集上的效果不一样。

MinMaxScaler:归一到 [ 0,1 ] 

原理

X_scaled = \frac{ (X - X.min(axis=0)) }{ (X.max(axis=0) - X.min(axis=0))} \cdot (max - min)+min

从原理中我们注意到有一个axis=0,这表示MinMaxScaler方法默认是对每一列做这样的归一化操作,这也比较符合实际应用。

from sklearn import preprocessing
import numpy as np
 
x = np.array([[3., -1., 2., 613.],
              [2., 0., 0., 232],
              [0., 1., -1., 113],
              [1., 2., -3., 489]])
 
min_max_scaler = preprocessing.MinMaxScaler()
x_minmax = min_max_scaler.fit_transform(x)
print(x_minmax)


[[1.         0.         1.         1.        ]
 [0.66666667 0.33333333 0.6        0.238     ]
 [0.         0.66666667 0.4        0.        ]
 [0.33333333 1.         0.         0.752     ]]
 

fit,transform,fit_transform常用情况分为两大类

fit_transform(): joins the fit() and transform() method for transformation of dataset.
解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。
transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)

fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。

根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData),从而保证train、test处理方式相同。所以,一般都是这么用:

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_tranform(X_train)
sc.tranform(X_test)


 

 

机器学习保姆级入门案例-波士顿房价预测 利用scikit-learn进行机器学习入门案例 相信很多人都是知道波士顿房价的数据集,一个非常经典的机器学习入门案例数据集。在这个案例中直接使用sklearn中自带的数据集来进行数据分析和建模,主要内容包含: 数据探索 相关性分析 变量研究 线性回归模型探索 模型改进 导入库 import numpy as np import pandas as pd import hvplot.pandas import matplotlib.pyplot as plt %matplotlib inline 阅读详情

相关推荐

python 基于xgboost预测波士顿房价

python xgboost预测房价,本文涉及了DataFrame、可视化、数据建模等相关代码

michael_quan2013的博客 6102

【Python机器学习基础教程】第三章第三节:预处理与缩放

预处理与缩放

大家好,欢迎来到鱼尾的博客! 636

波士顿房价AdaBoost、决策树、KNN预测对比

波士顿房价AdaBoost、决策树、KNN预测对比AdaBoost回归模型AdaBoost、决策树回归、KNN预测对比AdaBoost中不同损失函数预测对比 AdaBoost回归模型 base_estimator:代表的是弱分类器。在 AdaBoost 的分类器和回归器中都有这个参数,在 AdaBoost 中默认使用的是决策树,一般不需要修改这个参数,当然你也可以指定具体的分类器。 n_estimators:算法的最大迭代次数,也是分类器的个数,每一次迭代都会引入一个新的弱分类器来增加原有的分类器的组合能力

白晏的成长 2424

波士顿房价预测(回归问题)--python深度学习

预测 20 世纪 70 年代中期波士顿郊区房屋价格的中位数,已知当时郊区的一些数据点,比如犯罪率、当地房产税率等。它包含的数据点相对较少,只有 506 个,分为 404 个训练样本和 102 个测试样本。输入数据的每个特征(比如犯罪率)都有不同的取值范围。例如,有些特性是比例,取值范围为 0~ 1;有的取值范围为 1~ 12;还有的取值范围为 0~ 100,等等。(404, 13)(102, 13)13 个数值特征房价大都在 10 000~50 000 美元。

weixin_46726459的博客 2733

Python使用网格搜索与交叉验证的决策树算法实现波士顿房价预测(附波士顿房价数据集)

数据介绍: 数据集来自UCI机器学习知识库(数据集已下线)。波士顿房屋这些数据于1978年开始统计,共506个数据点,涵盖了麻省波士顿不同郊区房屋14种特征的信息。本项目对原始数据集做了以下处理: • 有16个’MEDV’ 值为50.0的数据点被移除。 这很可能是由于这些数据点包含遗失或看不到的值。 • 有1个数据点的 ‘RM’ 值为8.78. 这是一个异常值,已经被移除。 • 对于本项目,房屋的...

qq_34673193的博客 2992

深度学习(波士顿房价预测)

本程序采用百度paddlepaddle深度学习框架 目录 1实验背景 2 实验过程 2.1 数据处理 2.1.1数据集导入并按规定形状保存 2.1.2数据集的划分(分为训练集和测试集) 2.1.3 数据归一化处理 2.1.4 数据集乱序分成批次(每次读入一个批次) 2.1.5 封装 load_data 函数 2.2 神经网络的设计 2.2.1神经网络的结构 2.2.2 神经网络的初始化 2.2.3 神经网络的前向计算和反向传播 2.2.4 优化算法 3 测试结果 4 完整

weixin_65089713的博客 2万+

深度学习入门——波士顿房价预测

基于神经网络模型的波士顿房价预测 波士顿房价预测是一个经典的机器学习任务,类似于程序员世界的“Hello World”。以“波士顿房价预测”任务为例,我们学习如何使用Python语言和Numpy库来构建神经网络模型。 波士顿地区的房价受诸多因素影响。该数据集统计了13种可能影响房价的因素和该类型房屋的均价,期望构建一个基于13个因素进行房价预测的模型,如下所示。 对于预测问题,可以根据预测输出的类型是连续的实数值,还是离散的标签,区分为回归任务和分类任务。因为房价是一个连续值,所以房价预测是一个回归任务。

Barbara‘s Blog 2万+

决策树回归预测--波士顿房价

决策树回归预测--波士顿房价

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 1754

5.波士顿房价预测(KNN,决策树,线性回归)

波士顿房价预测(KNN,决策树,线性回归)

MechMaster 2326

波士顿房价决策树python编码

波士顿房价机器学习作业python编码,策树算法是一种逼近离散函数值的方法。它是一种典型的分类方法,首先对数据进行处理,利用归纳算法生成可读的规则和决策树,然后使用决策对新数据进行分析。本质上决策树是通过一系列规则对数据进行分类的过程。 决策树方法最早产生于上世纪60年代,到70年代末。由J Ross Quinlan提出了ID3算法,此算法的目的在于减少树的深度。但是忽略了叶子数目的研究。C4.5算法在ID3算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。 决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪枝:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。

恶意代码实验3:Word宏病毒实验

只要下次打开这个word文档,就会执行以上代码,并将自身复制到Normal.dot(word文档的公共模板)和当前文档的ThisDocument中,同时改变函数名(模板中为Document_Close,当前文档为Document_Open),此时所有的word文档打开和关闭时,都将运行以上的病毒代码,可以加入适当的恶意代码,影响word的正常使用,本例中只是简单的跳出一个提示框。回答不正确三次,即可自动跳出病毒程序,但那时已经出现几十个文档。1、打开的宏编辑器如图所示,即可编写病毒代码。

qq_63949327的博客 6504

机器学习实战:预测波士顿房价

今天来学习一下机器学习中一个非常经典的案例:预测波士顿房价,在此过程中也会补充很多重要的知识点,欢迎大家一起前来探讨学习~在这个项目中,我们利用马萨诸塞州波士顿郊区的房屋信息数据训练和测试一个模型,并对模型的性能和预测能力进行测试。此项目的数据集来自UCI机器学习知识库。波士顿房屋这些数据于1978年开始统计,共506个数据点,涵盖了麻省波士顿不同郊区房屋14种特征的信息。 通过该数据训练后的好的模型可以被用来对房屋做特定预测—尤其是对房屋的价值。对于房地产经纪等人的日常工作来说,这样的预测模型非常有用!

拥有百余位万粉技术博主、200余位可合作代发博主,私域技术社群规模达千人,商务合作私信 4982

WPF+Prism+LiveCharts+materialdesignin 搭建WPF开发框架

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容。

T_Tboy的博客 3050

实战:利用决策树对波士顿房价数据集进行预测(附源码)

利用决策树对波士顿房价数据集进行预测 大家好,我是老马的程序人生~ 使用sklearn提供的决策树(DecisionTreeRegressor)和线性回归(LinearRegression)的API对波士顿房价数据集进行预测,并尝试将预测结果进行分析。 1. 导入库 from sklearn.datasets import load_boston from sklearn.model_selection import cross_val_score from sklearn.tree import Deci

老马的程序人生 7979

kaggle项目:纽约出租车行程时间NYC Taxi Trip Duration

纽约出租车形成时间预测(NYC Taxi Trip Duration)是Kaggle中的一个Playground竞赛。比赛数据集基于2016年纽约市黄色出租车行程记录数据,需要建立一个模型,根据单个行程属性,预测测试集中每次行程的持续时间。Kaggle项目模型XGBoost,评价指标RMSLE。

weixin_42113929的博客 2790

【漏洞复现】7-Zip目录穿越漏洞(CVE-2025-11001)

摘要:CVE-2025-11001是7-Zip(v21.02-v24.09)Windows版处理ZIP包符号链接时的高危漏洞,攻击者可构造恶意ZIP文件实现目录穿越和任意文件写入。漏洞源于路径检查缺陷,当用户解压含特殊符号链接的压缩包时,可能将文件写入系统目录。复现利用GitHub公开的Python脚本(https://github.com/pacbypass/CVE-2025-11001)可生成攻击包,需注意该漏洞仅影响Windows且需要用户交互。

LongL_GuYu的博客 1607

使用决策树相关算法实现波士顿房价预测

决策树浅析 决策树概述 决策树是一种经典的机器学习方法,其核心思想是相同(相似)的输入产生相同(相似)的输出。通过树状结果进行决策,其目的是通过对样本不同属性的判断决策,将具有相同属性的样本划分到下一个叶子节点,从而实现分类或者回归。 构建决策树 根据西瓜书的知识,构建决策树的算法如下: 由此可见决策树的构建是一个递归问题,核心在于: 如何选择最优的特征,使得对数据集的划分效果最好。 决定何时停止分裂节点。 选择决策特征 信息熵 信息熵(information entropy)是度量样本集合纯度的常

enginelong的博客 4767

荔枝派Lichee Nano全志F1C100s烧录避坑指南:从Fel模式到SPI Flash完整流程

本文详细介绍了荔枝派Lichee Nano基于全志F1C100s芯片的SPI Flash烧录完整流程,从FEL模式进入技巧到定制化sunxi-tools编译,再到分区策略与实战烧录步骤。针对开发者常见的烧录程序问题提供了专业解决方案,帮助用户高效完成嵌入式系统部署。

tea88的博客 788

房价预测(基于决策树算法)

机器学习工程师纳米学位 模型评价与验证 项目 1: 预测波士顿房价 第一步. 导入数据 在这个项目中,将使用波士顿房屋信息数据来训练和测试一个模型,并对模型的性能和预测能力进行评估。我们希望可以通过该模型实现对房屋的价值预估,提高房地产经纪人的工作效率。 此项目的数据集来自kaggle原始数据,未经过任何处理。该数据集统计了2006年至2010年波士顿个人住宅销售情况,包含2900多条观测数据(...

Kira_Tseng的博客 1万+

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(中)

介绍了三相电机控制中的SVPWM算法实现及保护机制设计。SVPWM部分详细解析了电压矢量扇区判断、占空比计算和过调制保护,通过限制占空比范围(0-100%)防止电机失控,并提供了完整的代码实现。保护模块则重点分析了过流、过压/欠压、过温三种保护机制,采用分级处理策略(硬保护停机/软保护降功率)确保系统安全。此外,文章还介绍了参数管理模块在STM32 Flash中的存储方案,包括参数定义、数据结构和读写操作,为电机控制系统提供了完整的解决方案。

bother3000的博客 1388

Profinet从站开发初体验:用p-net开源库和树莓派快速搭建一个IO设备模拟器

本文详细介绍了如何使用p-net开源库和树莓派快速搭建Profinet从站IO设备模拟器。从开发环境准备、p-net源码编译到设备模拟器功能实现,提供了全流程实战指南,帮助开发者快速掌握工业通信协议开发技巧,适用于工业自动化领域的设备互联测试与验证。

weixin_30384217的博客 383

【sklearn】线性回归 - 预测波士顿房价

目的 本文使用Python的sklearn类库,基于对机器学习线性回归算法的理论学习,利用sklearn中集成的波士顿房价数据,以此来对线性回归的理论知识进行一次实践总结。 本文不以预测的准确率为目的,只是简单的对机器学习的线性回归等理论知识进行一次实践总结,以此来体验下sklearn类库的使用方法。 美国波士顿房价的数据集是sklearn里面默认的数据集,sklearn内置的数据集都位于d...

秋天 1万+

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 596

基于xgboost+GridSearchCV的波士顿房价预测

xgboost中文叫做极致梯度提升模型,官方文档链接:https://xgboost.readthedocs.io/en/latest/tutorials/model.html GridSearchCV中文叫做交叉验证网格搜索,是sklearn库中用来搜索模型最优参数的常用方法。 2018年8月23日笔记 sklearn官方英文用户使用指南:https:/...

潇洒坤 3607

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

波士顿房价预测

机器学习工程师纳米学位模型评价与验证项目 1: 预测波士顿房价欢迎来到机器学习工程师纳米学位的第一个项目!在此文件中,有些示例代码已经提供给你,但你还需要实现更多的功能来让项目成功运行。除非有明确要求,你无须修改任何已给出的代码。以‘练习’开始的标题表示接下来的内容中有需要你必须实现的功能。每一部分都会有详细的指导,需要实现的部分也会在注释中以‘TODO’标出。请仔细阅读所有的提示!除了实现代码外,

weixin_36627946的博客 3万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

波士顿房价预测(线性回归、岭回归、决策树)

波士顿房价预测 要求: 1.载入此项目所需要的库,载入波士顿房屋的数据集 2.数据集1:3比例分割为 测试集:训练集 3.定义线性回归模型,进行训练、预测 4.图形化预测结果显示(部分数据显示) 5.输出模型参数、评价模型(MSE RMSE) 6(选做不计分)使用最优决策树预测。 提示: 使用sklearn 中datasets 和linear_model和metrics。 使用sklearn.model_selection 中 train_test_split。 导入的数据集: datasets.load_

qq_48560586的博客 8001

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 关于python中enumerate遍历for循环知识点解析
下一篇: 决策树详解
NongfuSpring-wu
博客等级 码龄9年 19粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值