LR实例:波士顿房价预测

本文介绍了如何使用Python的sklearn库进行波士顿房价的预测,通过linear_regression模型拟合数据,并展示了预测价格与实际价格的对比。在处理数据集时,提到了在读取CSV文件时可能出现的转义符问题,建议采用特定的路径表示方式以兼容Linux和Windows。

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

sklearn是python的一个包,也是机器学习中常用的一个模块,里面封装了很多机器学习的算法,不需要对机器学习算法的实现,只需要简单地调用sklearn里相对应的模块即可。

波士顿房价数据是sklearn里经典的回归数据集。使用sklearn linear_regression 模型拟合boston房价datasets。并使用pyplot画出预测价格和真实价格的对比图。

from sklearn import datasets
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt


##1 数据的加载,使用数据集进行线性回归(这里是波士顿房价数据)
loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target
print('-------data description of this dataset: ', loaded_data.DESCR)

##2 模型的加载
model = LinearRegression()

##3 模型的训练
model.fit(data_X, data_y)

#前四个预测值
print('prediction: ',model.predict(data_X[:4]))
y_pred=model.predict(data_X)
#前四个真实值
print('reality: ',data_y[:4])

'''----------图形化预测结果-----------'''
#只显示前50个预测结果,太多的话看起来不直观
plt.xlim([0,50])
plt.plot( range(len(data_y)), data_y, 'r', label='y_reality')
plt.plot( range(len(y_pred)), y_pred, 'g--', label='y_predict')
plt.title('sklearn: Linear Regression')
plt.legend()
plt.title('house price prediction')
plt.show()

备注:

再找实例和数据集的时候,读取csv数据的时候,遇到一个转义符问题,例如C:\Users\...里\u被当做unicode编码相关而报错...建议python在描述路径时,采取下面几种方式:

方式一:转义的方式

'd:\\a.txt'

方式二:显式声明字符串不用转义

'd:r\a.txt'

方式三:使用Linux的路径/

'd:/a.txt'

推荐第三种写法,这在Linux和window下都是行的通的。

 

reference:

1.Scikit-learn快速入门教程和实例(一) https://blog.youkuaiyun.com/linxid/article/details/79104130

2.scikit-learn linear regression reference: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html 

3. https://dataconomy.com/2015/02/linear-regression-implementation-in-python/ 

### 波士顿房价预测使用机器学习模型实现方法 #### 数据集准备 波士顿房价数据集是一个经典的数据集,适用于回归问题的学习和研究[^1]。此数据集包含了多个特征变量以及目标变量——房屋价格。 ```python from sklearn.datasets import load_boston import pandas as pd boston = load_boston() data = pd.DataFrame(boston.data, columns=boston.feature_names) target = pd.Series(boston.target, name='MEDV') ``` #### 数据预处理 为了提高模型性能,在建模之前通常需要对原始数据进行标准化或归一化操作: ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(data) ``` #### 构建并训练线性回归模型 通过`sklearn.linear_model.LinearRegression`可以方便地创建一个线性回归模型实例,并利用`.fit()`函数完成参数估计过程[^2]: ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression # 划分训练集与测试集 X_train, X_test, y_train, y_test = train_test_split(X_scaled, target, test_size=0.2) # 定义线性回归器对象 lr = LinearRegression() # 开始拟合数据 lr.fit(X_train, y_train) ``` #### 输出模型参数 一旦完成了模型训练,则可以通过访问属性获取到具体的权重向量w及其对应的偏置项b: ```python print(f'截距: {lr.intercept_}') print(f'系数: {lr.coef_}') ``` #### 预测新样本的价格 对于给定的新输入x', 可以调用`.predict()`接口得到相应的y'^{pred}值;也可以手动计算内积形式$\hat{y}=x'\cdot w+b$ 来获得相同的结果[^3]. ```python predictions = lr.predict(X_test) # 或者采用矩阵运算方式求解 manual_predictions = np.dot(X_test, lr.coef_.T) + lr.intercept_ ``` #### 模型评估指标 最后一步是对构建好的模型进行全面评测,常用的评价标准包括但不限于均方误差MSE、平均绝对误差MAE及R平方得分等. ```python from sklearn.metrics import mean_squared_error, r2_score mse = mean_squared_error(y_test, predictions) r2 = r2_score(y_test, predictions) print(f'Mean Squared Error (MSE): {mse:.4f}') print(f'R-squared Score (R²): {r2:.4f}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值