机器学习算法–线性回归
描述
建立目标值=权重*特性值相加…>>通过x_train求得predict_y,损失loss =E((y_train-y_predic)**2),通过训练获取损失函数J(w)=E((y_predict-y_train)**2)/m的最小值, 方法是取J导数为0的极值点
R^2<0表示数据不存在线性关
必须进行归一化处理.
适用于特征和目标值之间具有线性关系的场景
接口
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
boston = datasets.load_boston()
columns = boston.feature_names
print(columns)
X = boston.data
y = boston.target
print(np.max(y))
X = X[y<np.max(y)]
X_train, X_test, y_train, y_test = train_test_split(X, y)
ss = StandardScaler()
X_train_s = ss.transform(X_train)
reg = LinearRegression()
reg.fit(X_train_s, y_train)
score = reg.score(X_test, y_test)
使用随机题目下降法的线性回归
from sklearn.linear_model import LinearRegression, SGDRegressor
sgd_reg = SGDRegressor(n_iter=100)
sgd_reg .fit(X_train_s, y_train)
score = sgd_reg .score(X_test, y_test)