文章目录
一. 回归算法-线性回归
1. 线性模型
2. 线性回归
3. 损失函数(误差大小)
4. 最小二乘法之正规方程
sklearn.linear+model.LinearRegression
5. 最小二乘法之梯度下降
sklearn.linear_model.SGDRegressor
二. 线性回归实例
波士顿房价数据案例分析流程
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
def mylinear():
'''线性回归直接预测房子价格'''
##获取数据
lb = load_boston()
#分割训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(lb.data,lb.target,test_size=0.25)
##进行标准化处理
##特征值和目标值都必须进行标准化处理
std_x = StandardScaler()
x_train = std_x.fit_transform(x_train)
x_test = std_x.transform(x_test)
#目标值
std_y = StandardScaler()
y_train = std_y.fit_transform(y_train.reshape(-1,1))
y_test = std_y.transform(y_test)
##estimator预测
##正规方程求解方式预测结果
lr = LinearRegression()
lr.fit(x_train,y_train)
print(lr.coef_)
##预测测试集的房子价格
y_lr_predict = lr.predict(x_test)
print(y_lr_predict)
print(mean_squared_error(std_y.inverse_transform(y_test),y_lr_predict))
##梯度下降进行房价预测
sg = SGDRegressor()
sg.fit(x_train, y_train)
print(sg.coef_)
##预测测试集的房子价格
y_sg_predict = sg.predict(x_test)
print(y_sg_predict)
print(mean_squared_error(std_y.inverse_transform(y_test),y_sg_predict))
return None
if __name__ == '__main__':
mylinear()
三. 回归性能评估
sklearn.metrics.mean_squared_error
四. 过拟合和欠拟合
1. 过拟合
2. 欠拟合
L2正则化
五. 岭回归
sklearn.linear_model.Ridge
Ridge