机器学习笔记(3) -- Boston House Price数据集预测

本文是关于波士顿房价预测的机器学习项目,使用Python进行数据导入、分析、预处理、模型评估和调参。通过描述性统计、数据可视化和相关性分析了解数据特性,发现数据相关性强的特征。使用线性回归、决策树、K近邻等算法,并通过正则化处理提高模型准确度。最终,集成算法如随机森林和极端随机树展现出较高预测性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python机器学习项目模版

1. 准备
a) 导入类库
b) 导入数据集
2. 概述数据
a) 描述性统计
b) 数据可视化
3. 预处理数据
a) 数据清洗
b) 特征选择
c) 数据转换
4. 评估算法
a) 分离数据集
b) 评估选项和评估矩阵
c) 算法审查
d) 算法比较
5. 提高模型准确度
a) 算法调参
b) 集成算法
6. 序列化模型
a) 预测评估数据集
b) 利用整个数据集生产模型
c) 序列化模型

1. 问题定义

在这个项目中将会分析研究波士顿房价(Boston House Price)数据集。在这个数据集的每一行数据都是对波士顿周边或者城镇的房价的描述。数据是1978年统计手机的。数据中包含如下14和特征,506条数据(UCI机器学习仓库中的定义):

  • CRIM:城镇人均犯罪率
  • ZN:住宅地所占比例
  • INDUS:城镇中非住宅用地所占比例
  • CHAS:查尔斯河虚拟变量,用于回归分析
  • NOX:环保指数
  • RM:每栋住宅的房间数
  • AGE:1940年以前建成的自住单位的比例
  • DIS:距离5个波士顿的就业中心的加权距离
  • RAD:距离高速公路的便利指数
  • TAX:每一万美元的不动产税率
  • PTRATIO:城镇中教师学生比例
  • B:城镇中黑人比例
  • LSTAT:地区中有多少房东属于低收入人群
  • MEDV:自住房屋价中位数

通过这些特质属性的描述,我们可以发现输入的特质属性的度量单位是不统一的。
数据集地址:https://archive.ics.uci.edu/ml/machine-learning-databases/housing/

2. 导入数据
# 导入类库
import pandas as pd
import numpy as np
import matplotlib as mpl
from numpy import arange
import matplotlib.pyplot as plt
from pandas import set_option
from pandas.plotting import scatter_matrix
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Lasso
from sklearn.linear_model import ElasticNet
from sklearn.tree import DecisionTreeRegressor
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.ensemble import AdaBoostRegressor
from sklearn.metrics import mean_squared_error
import warnings
warnings.filterwarnings('ignore')

接下来我们将数据集导入到Python中。

# 导入数据
filename = 'housing.csv'
names = ['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PRTATIO','B','LSTAT','MEDV']
dataset = pd.read_csv(filename,names= names, delim_whitespace=True)

这里对每个特质属性设定了一个名字,方便后面程序中使用它们,因在CSV文件是通过空格键来做分隔符,因此在这里读入CSV文件时,指定分隔符为空格键(delim_whitespace = True)。

3. 分析数据

现在需要对导入的数据进行分析,以便能够构建合适的模型。

3.1 描述性统计

首先看一下数据的维度,例如数据集中有多少条记录,有多少个数据特征

# 数据维度
print(dataset.shape)

执行之后我们可以看到总共有506条记录和14个特征属性,这与我们在UCI上得到的信息一致。
在这里插入图片描述
接下来看一下各个特征属性的字段类型

# 特征属性的字段类型
print(dataset.dtypes)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值