【机器学习】线性回归之波斯顿房价预测

本文详细介绍了一次基于波士顿房价数据集的预测过程,包括数据预处理、模型训练及评估等步骤,并最终实现了线性回归模型的有效应用。

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

目录

一、分析数据

它有三个部分:

 二、拆分训练集和预测集

1、避免随机性我们打乱以下数据

 2、拆分

三、训练模型

四、开始预测

五、评价


一、分析数据

import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression

boston = datasets.load_boston()
'''
data 即数据,这些数据影响了房价,统计指标
target指房价,单位(万美金)
feature_names 具体的指标,比如CRIM:犯罪率  NOX:空气污染
'''
boston

它有三个部分:

data部分:506条数据 (13个属性(特征)-影响房价的因素)

 target部分: 506条(就是506个房子的房价)单位是万美金

feature_names部分: 13个影响房价的因素

 代码如下:

X = boston['data']
y = boston['target']
feature_names = boston['feature_names']
print(X.shape) # (506, 13)
# x # 506个房子(条数据),影响房价的13个属性
print(y.shape) # (506,) 506个房价
print(feature_names)
print(feature_names.shape)  #(13,) 13个具体指标
#['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO''B' 'LSTAT']

 输出如下:

 二、拆分训练集和预测集

1、避免随机性我们打乱以下数据

# 506个数据、样本
# 拆分成两份:80% 20%
# 80%:训练集
# 20%:验证集 
index = np.arange(506) #生成0-505的‘索引’
np.random.shuffle(index) # 打乱索引
index

 2、拆分

train_index = index[:405] # 80%约为405个
test_index = index[405:] # 剩余验证

print(type(train_index)) # <class 'numpy.ndarray'>
# 训练集
X_train = X[train_index] # 用打乱后数组里面的“索引” 去取数据
y_train = y[train_index]
# 验证集
X_test = X[test_index]
y_test = y[test_index]
# 训练集第一个数据
print(X_train[0])

输出如下:

 注:e-01(科学计数法)

三、训练模型

from IPython.core.display_functions import display

model = LinearRegression(fit_intercept=True)
model.fit(X_train, y_train)
print(model.coef_,model.intercept_)
model.coef_:斜率 正值说明正相关,负值说明负相关
model.intercept_:截距(用的默认的----fit_intercept=True)

 

四、开始预测

# 开始预测
y_pred = model.predict(X_test)
print("房价的预测真值为:",y_test)
# print("通过训练后获得的预测值:",y_pred)
y_pred

 

输出如下:

五、评价

print("给模型打分:",model.score(X_test, y_test))

 输出如下:

越接近1说明拟合的方程越好

### 使用机器学习进行线性回归预测波士顿房价 以下是基于 `scikit-learn` 的 Python 示例代码,用于通过线性回归模型预测波士顿房价。此代码涵盖了完整的机器学习流程,包括数据加载、预处理、建模以及评估。 #### 导入必要的库 ```python import numpy as np from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score ``` #### 加载并探索数据集 波士顿房价数据集可以通过 `sklearn.datasets.load_boston()` 函数获取[^1]。然而需要注意的是,在较新的版本中该函数可能已被移除或替换为其他形式。因此可以考虑手动下载数据或者使用替代方法。 ```python boston = datasets.load_boston() # 如果不可用,请查阅官方文档更新方式 X = boston.data y = boston.target print(f"Features: {boston.feature_names}") ``` #### 划分训练集与测试集 为了验证模型性能,通常会将数据划分为训练集和测试集两部分。 ```python X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` #### 构建线性回归模型 利用 `LinearRegression` 类创建一个简单的线性回归模型实例,并对其进行拟合操作。 ```python model = LinearRegression() model.fit(X_train, y_train) ``` #### 进行预测 完成模型训练之后即可针对未知样本执行预测任务。 ```python predictions = model.predict(X_test) ``` #### 性能评价指标计算 采用均方误差 (MSE) 和决定系数 \(R^2\) 来衡量模型的表现情况。 ```python mse = mean_squared_error(y_test, predictions) r2 = r2_score(y_test, predictions) print(f"Mean Squared Error: {mse:.2f}") print(f"R-squared Value: {r2:.2f}") ``` 以上即是一个典型的运用线性回归解决波士顿房价预测问题的过程概述及其对应实现脚本[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值