标签:性能评估 load and 一个 learn from 策略 ret png
定义:通过一个或者多个自变量与因变量之间进行建模的回归分析。其中可以为一个或者多个自变量之间的线性组合。
一元线性回归:涉及到的变量只有一个
多元线性回归:变量两个或以上
通用公式:h(w) = w0 + w1x1 + w2x2 + ....= wTx
其中w,x 为矩阵:wT=(w0, w1, w2) x=(1,x1, x2)T
最小二乘法之梯度下降
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
def mylinear():
"""
线性回归预测房价
:return: None
"""
# 1. 获取数据
lb = load_boston()
# 2. 分割数据集到训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25)
print(y_train, y_test)
# 3. 进行标准化处理(特征值和目标值都必须标准化处理)
# 实例化两个标准化API,特征值和目标值要用各自fit
# 特征值
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)
y_test = std_y.transform(y_test)
# 4. estimator预测
# 4.1 正规方程求解预测结果
lr = LinearRegression()
lr.fit(x_train, y_train)
print(lr.coef_)
y_lr_predict = std_y.inverse_transform(lr.predict(x_test))
print('正规方程测试集里面每个房子的预测价格:', y_lr_predict)
print('正规方程的均方误差:',mean_squared_error(std_y.inverse_transform(y_test),y_lr_predict))
# 4.1 梯度下降进行梯度预测
sgd = SGDRegressor()
lr.fit(x_train, y_train)
print(sgd.coef_)
y_sgd_predict = std_y.inverse_transform(sgd.predict(x_test))
print('梯度下降测试集里面每个房子的预测价格:', y_sgd_predict)
print('梯度下降的均方误差:', mean_squared_error(std_y.inverse_transform(y_test), y_sgd_predict))
return None
if __name__ == '__main__':
mylinear()
均方误差 (Mean Squared Error MSE) 评价机制
梯度下降 | 正规方程 |
---|---|
需要选择学习率 | 不需要 |
需要多次迭代 | 一次运算得出 |
当特征数量大时也能较好使用 | 需要计算(xTx)-1,运算量大 |
适用于各种类型的模型 | 只适用于线性模型 |
标签:性能评估 load and 一个 learn from 策略 ret png
原文地址:https://www.cnblogs.com/hp-lake/p/11965368.html