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

机器学习实战二:波士顿房价预测 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算法的基础上进行了改进,对于预测变量的缺值处理、剪枝技术、派生规则等方面作了较大改进,既适合于分类问题,又适合于回归问题。 决策树算法构造决策树来发现数据中蕴涵的分类规则.如何构造精度高、规模小的决策树是决策树算法的核心内容。决策树构造可以分两步进行。第一步,决策树的生成:由训练样本集生成决策树的过程。一般情况下,训练样本数据集是根据实际需要有历史的、有一定综合程度的,用于数据分析处理的数据集。第二步,决策树的剪枝:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除。

Yolov5 多边形标签转换,所有json文件自动转成txt格式[详细过程]

注:labelme是麻省理工(MIT)的计算机科学和人工智能实验室(CSAIL)研发的图像标注工具,人们可以使用该工具创建定制化标注任务或执行图像标注,项目源代码已经开源。通过labelme对图进行标注后,得到的是json文件,而Yolov5对数据进行模型构建的时候,读取需要的是txt格式的文件。txt_outer_path——保存txt文本的文件夹的绝对路径。json_name——json_name是json文本的名字。json_floder——读取json的文件夹的绝对路径。

Pandas_007的博客 1万+

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

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

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

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8172

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

利用决策树对波士顿房价数据集进行预测 大家好,我是老马的程序人生~ 使用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

射频捷变收发器(RF Agile Transceiver) 国内外产品的现状、发展趋势及对比分析2

由于通信系统的研究、设计和实现的巨大进步,RF(射频)设备的新时代正在到来。特别是,随着通信、航空航天和防务以及高速仪器仪表、物联网(IoT)和协作传感器网络(CSN)的发展,以实现宽带高速通信,移动通信中频谱上不断增加的数据量要求而采用新颖的解决方案,以动态方式满足流量交换。然而,当前最先进的技术和设备需要一个合理的成熟时间来满足当前和即将到来的通信标准。

legendddh的博客 2609

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 169

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

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

enginelong的博客 4767

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型?

本文详细介绍了如何利用NVIDIA DGX Spark在桌面端轻松运行200B参数大模型。通过实战演示,从系统初始化、模型获取部署到内存管理与性能调优,重点解析了其统一内存架构如何解决本地推理的显存瓶颈,并探讨了进行轻量化微调(如LoRA)的可能性,为AI开发者和研究团队提供了高效的本地化大模型操作方案。

weixin_29054195的博客 882

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

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

Kira_Tseng的博客 1万+

Minitab实战:用Weibull分布预测产品寿命的5个关键参数(附真实案例)

本文通过一个真实的电容器老化测试案例,详细介绍了如何运用Minitab软件进行Weibull分布分析,以预测产品寿命。文章深入解读了形状参数β、尺度参数η等五个关键参数的工程意义与商业价值,指导工程师从失效数据中提取洞察,并将其应用于可靠性评估、保修策略制定及成本预估等实际业务决策。

weixin_29231263的博客 520

vs code , 配置 claude code 插件, 默认选项 : --dangerously-skip-permission

摘要:本文介绍如何在VS Code中为Claude Code插件配置--dangerously-skip-permission参数,包含两种方法:图形界面设置(适合新手)和直接编辑settings.json(精准配置)。该参数会跳过权限检查,仅建议在本地测试环境中使用。配置后需通过命令面板验证参数是否生效,并注意安全风险,避免在生产环境使用。多参数配置时需用数组格式,不同版本插件可能键名略有差异。

AI天才研究院 4991

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

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

秋天 1万+

基于DPCNN实现电商情感分析任务

下载链接项目中使用的模型是DPCNN,在模型中我们定义了三个组件,分别是embedding层,卷积层和全连接层。Embedding层:将每个词生成对应的嵌入向量,就是利用一个连续型向量来表示每个词卷积层:提取语句中的语义信息Linear层:将结果映射成2大小用于二分类,即正反面的概率。

优快云 精品推荐 1629

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

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

潇洒坤 3607

jre9下载 jdk9

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

波士顿房价预测

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

weixin_36627946的博客 3万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

波士顿房价预测 要求: 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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 关于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、付费专栏及课程。

余额充值