机器学习实战-回归算法-18

回归算法-波士顿房价预测

from sklearn.datasets import load_boston
import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LassoCV
import seaborn as sns
house = load_boston()
print(house.DESCR)

在这里插入图片描述
在这里插入图片描述

x = house.data
y = house.target
df = pd.DataFrame(x, columns=house.feature_names)
df['Target'] = pd.DataFrame(y, columns=['Target'])
df.head()

在这里插入图片描述

plt.figure(figsize=(15,15))  
# 画热力图,数值为两个变量之间的相关系数
p=sns.heatmap(df.corr(), annot=True, square=True) 
# 数据标准化
from sklearn.preprocessing import StandardScaler

ss = StandardScaler()
x = ss.fit_transform(x)
print(x[:5])

在这里插入图片描述

from sklearn.model_selection import train_test_split
# 切分数据集
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3)
# 创建模型
model = LassoCV()
model.fit(x_train, y_train)

# lasso系数
print(model.alpha_)
# 相关系数
print(model.coef_)

在这里插入图片描述

model.score(x_test, y_test)

在这里插入图片描述

回归算法-葡萄酒质量和时间关系

在这里插入图片描述

import numpy as np 
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 载入数据
data = np.genfromtxt('linear.csv', delimiter=',')
# 画图
plt.scatter(data[1:,0],data[1:,1])
plt.title('Age Vs Quality (Test set)')
plt.xlabel('Age')
plt.ylabel('Quality')
plt.show()

在这里插入图片描述

# 数据拆分
x_train, x_test, y_train, y_test = train_test_split(data[1:, 0], data[1:, 1], test_size = 0.3)
# 1D->2D,给数据增加一个维度,主要是训练模型的时候,函数要求传入2维的数据
x_train = x_train[:, np.newaxis]
x_test = x_test[:, np.newaxis]
# 训练模型
model = LinearRegression()
model.fit(x_train, y_train)

在这里插入图片描述

# 训练集的散点图
plt.scatter(x_train, y_train, color = 'b')
# 模型对训练集的预测结果
plt.plot(x_train,model.predict(x_train), color ='r' , linewidth=5)
# 画表头和xy坐标描述
plt.title('Age Vs Quality (Training set)')
plt.xlabel('Age')
plt.ylabel('Quality')
plt.show()

在这里插入图片描述

# 测试集的散点图
plt.scatter(x_test, y_test, color = 'b')
# 模型对测试集的预测结果
plt.plot(x_test,model.predict(x_test), color ='r', linewidth=5)
# 画表头和xy坐标描述
plt.title('Age Vs Quality (Test set)')
plt.xlabel('Age')
plt.ylabel('Quality')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值