线性回归
- 目标函数:
- 损失函数
- sklearn.linear_model.LinearRegression
- sklearn.linear_model.SGDRegressor
eg:以波士顿房价数据为例
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
import random
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor
#数据集划分
data=load_boston()
x_train,x_test,y_train,y_test=train_test_split(data.data,data.target,test_size=0.25)
#特征值和目标值都必须进行标准化,实例两个标准化API
#特征值标准化
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)) #特别注意,必须为二维的数组,所以用reshape(-1,1)进行转换
y_test=std_y.transform(y_test.reshape(-1,1))
#实例化Lr
lr=LinearRegression()
result=lr.fit(x_train,y_train)
#查看系数
result.coef_
#用std_y对result.predict()进行标准化复原,查看预测值
std_y.inverse_transform(result.predict(x_test))
#查看MSE值
from sklearn.metrics import mean_squared_error
#传入y和yhat
mean_squared_error(std_y.inverse_transform(y_test),std_y.inverse_transform(result.predict(x_test)))
简单应用SGDRegressor
#实例化SGD
SGD=SGDRegressor()
result=SGD.fit(x_train,y_train)
#查看系数
result.coef_
#用std_y对result.predict()进行标准化复原,查看预测值
std_y.inverse_transform(result.predict(x_test))
#查看MSE值
from sklearn.metrics import mean_squared_error
#传入y和yhat
mean_squared_error(std_y.inverse_transform(y_test),std_y.inverse_transform(result.predict(x_test)))