在sklearn中,已经实现的回归算法包括多元线性回归,岭回归,lasso回归和多项式回归,实现方法几乎一致,这里只以线性回归作为例子实现,其他的有兴趣可以自行实现。
1.导入相应包
from sklearn.linear_model import LinearRegression as LR
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.datasets import fetch_california_housing as fch #加利福尼亚房屋价值数据集
import pandas as pd
2.导入数据集并查看
housevalue = fch() #会需要下载,大家可以提前运行试试看
X = pd.DataFrame(housevalue.data) #放入DataFrame中便于查看
y = housevalue.target
X.shape
#更新列名
X.columns = housevalue.feature_names
3.划分训练集测试集并更正索引
Xtrain, Xtest, Ytrain, Ytest = train_test_split(X, y, test_size=0.3, random_state=420)
for i in [Xtrain, Xtest]:
i.index = range(i.shape[0])
Xtrain.shape
#如果希望进行数据标准化,还记得应该怎么做吗?
#先用训练集训练标准化的类,然后用训练好的类分别转化训练集和测试集
4.建模预测
reg = LR().fit(Xtrain, Ytrain)
yhat = reg.predict(Xtest)
yhat
5.计算误差MSE
from sklearn.metrics import mean_squared_error as MSE
MSE(yhat,Ytest)
y.max()
y.min()
cross_val_score(reg, X, y, cv=10, scoring="neg_mean_squared_error")
注意sklearn中MSE为负。