当前位置:网站首页>线性回归02---波士顿房价预测
线性回归02---波士顿房价预测
2022-08-04 05:28:00 【我很好请走开谢谢】
写在最前 :
参考了一位博主的博客进行了学习,讲得很好,很细致。
传送门点这儿哈这个案例是以线性回归为模型预测的,目的为求出一个线性函数,每个特征所占参数,最后并对这个所求的线性函数进行模型评估。
一、获取数据
二、数据分析
2.1描述性统计分析
# 2.1描述性统计分析
# describe()是返回这组数据的count ,mean,std,min,max,还有百分位数。 .T是转置
data.describe().T
结论: 数据总共有506行,14个变量,而且这14个变量都有506个非空的float64类型的数值,即所有变量没有空值。
2.2 散点图分析
1. 先绘制一个
2. 把其余的也绘制出来
plt.figure(figsize=(15,10.5)) //图像大小
plot_count = 1
for feature in list(data.columns)[1:13]: //把剩余13个特征的图循环绘制出来
plt.subplot(3,4,plot_count) //表示三行四列,plot_count表示每个散点图的位置
plt.scatter(data[feature],data['target'])
plt.xlabel(feature.replace('_',' ').title())
plt.ylabel('target')
plot_count += 1
plt.show()
图像:
三、数据处理
x = data.iloc[:,0:13] //DataFrame切割,切割前13列(也就是把最后一列target社区)
y = data.iloc[:,13:14]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2,random_state=5 )
四、特征工程 标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
五、机器学习 创建模型
六、模型评估
七、全部代码
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression #通过正规方程优化
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import SGDRegressor #suiji
from sklearn.linear_model import Ridge #岭回归
import matplotlib.pyplot as plt
import pandas as pd
# 1.获取数据
data = pd.read_csv('./data/boshidun.csv')
data
# 2.1描述性统计分析
# describe()是返回这组数据的count ,mean,std,min,max,还有百分位数。 .T是转置
data.describe().T
# 2.2 散点图分析
def drawing(x,y,xlabel):
plt.scatter(x,y)
plt.title('%s - House Prices'% xlabel)
plt.xlabel(xlabel)
plt.ylabel('House Prices')
plt.yticks(range(0,60,5))
plt.grid()
plt.show()
# 绘制变量CRIM和因变量的散点图
drawing(data['CRIM'],data['target'],'Urban Per Crime Rate')
plt.figure(figsize=(15,10.5))
plot_count = 1
for feature in list(data.columns)[1:13]:
plt.subplot(3,4,plot_count)
plt.scatter(data[feature],data['target'])
plt.xlabel(feature.replace('_',' ').title())
plt.ylabel('target')
plot_count += 1
plt.show()
x = data.iloc[:,0:13]
y = data.iloc[:,13:14]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2,random_state=5 )
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
estimator = LinearRegression()
estimator.fit(x_train, y_train)
# 5.2 打印参数的估计系数
print(estimator.coef_[0])
coeffcients = pd.DataFrame([x.columns, estimator.coef_[0]]).T
coeffcients
# 6.1 获取预测值
y_predict = estimator.predict(x_test)
# 6.2 计算MSE
mean_squared_error(y_pred=y_predict, y_true=y_test)
print('R-Squared: %.4f'% estimator.score(x_test, y_test))
y_predict = estimator.predict(x_test)
plt.figure()
plt.scatter( y_predict,y_test)
plt.xlabel('Actual Prices')
plt.ylabel('Predicted Prices')
plt.title('Actual Prices vs Predicted Prices')
plt.show()
边栏推荐
猜你喜欢
随机推荐
基于C语言的学生信息管理系统_(更新版)_(附源码和安装包)_课程设计_**往事随風**的博客
使用express-jwt第三方包报错TypeError: expressJWT is not a function
详解“Node实现数据加密”过程
flink问题整理
数据库根据提纲复习
纳米级完全删除MYSQL5.7以及一些吐槽
实际开发中左菜单自定义图标点击切换
(十三)二叉排序树
Postgresql 快照
CTFshow—Web入门—信息(1-8)
Redis持久化方式RDB和AOF详解
thymeleaf中onclick事件动态传递参数问题
CAS与自旋锁、ABA问题
组原模拟题
(五)栈及其应用
剑指 Offer 2022/7/1
【树 图 科 技 头 条】2022年6月28日 星期二 伊能静做客树图社区
编程Go:return、break、continue
网络大作业心得笔记
SQL练习 2022/7/2