机器学习项目实战——01回归算法之波士顿房价预测

使用的数据集在sklearn库里存在。

对于数据集的描述:

机器学习项目实战——01回归算法之波士顿房价预测_第1张图片

 数据每两个之间都有关系,存在多重线性关系,若用回归算法,则需采用岭回归、LASSO回归以及弹性网等。

代码使用LASSO回归实现

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()

# 对于sklearn中的数据集描述,可使用.DESCR进行描述
print(house.DESCR)

x = house.data
y = house.target

# ##############################################################################################################
# 对数据集进行可视化打印以及热力图分析,对于构建模型没有影响。但是若不知道数据之间的关系,则不知道选择什么模型
df = pd.DataFrame(x, columns=house.feature_names)
df['Target'] = pd.DataFrame(y, columns=['Target'])

print(df.head())

plt.figure(figsize=(15,15))
# 画热力图,数值为两个变量之间的相关系数
p=sns.heatmap(df.corr(), annot=True, square=True)
plt.savefig('热力图')
plt.show()
'''
结论:
数据每两个之间都有关系,存在多重线性关系,若用回归算法,则需采用岭回归、LASSO回归以及弹性网等。
'''
# ##############################################################################################################

# 数据标准化,均值标准化,在0附近
# 因为数据之间的值差距很大,对其进行预处理
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_)

print(model.score(x_test, y_test))

你可能感兴趣的:(机器学习,机器学习)