Linfinity

Never say never.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

4.回归类算法-目标值连续型

Posted on 2020-10-04 17:52  Linfinity  阅读(302)  评论(0编辑  收藏  举报

一、线性回归

1.api

 

 

2、性能评估

 

 

 

 

3、案例(波士顿房价预测)

代码:

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.metrics import mean_squared_error


def demo():
    #获取数据
    boston = load_boston()

    #数据划分
    x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, train_size=0.25)

    #分别对特征值和目标值标准化
    s1 = StandardScaler()
    x_train = s1.fit_transform(x_train)
    x_test = s1.transform(x_test)

    s2 = StandardScaler()
    y_train = s2.fit_transform(y_train.reshape(-1, 1)) #reshape为二维数组-1为不知样本数量,1为每个样本有一个目标值
    y_test = s2.transform(y_test.reshape(-1, 1))

    #---------使用正规方程预测-------------
    lr = LinearRegression()
    lr.fit(x_train, y_train)
    print(lr.coef_)  #计算出来的w值
    y_lr_predict = lr.predict(x_test)
    print("每个样本的预测价格:",s2.inverse_transform(y_lr_predict))
    print("正规方程的均方误差:",mean_squared_error(s2.inverse_transform(y_test),s2.inverse_transform(y_lr_predict)))

    # ---------使用梯度下降预测-------------
    sgd = SGDRegressor()
    sgd.fit(x_train, y_train)
    print(sgd.coef_)  # 计算出来的w值
    y_sgd_predict = s2.inverse_transform(sgd.predict(x_test))
    print("每个样本的预测价格:", y_sgd_predict)
    print("梯度下降的均方误差:", mean_squared_error(s2.inverse_transform(y_test),y_sgd_predict))


if __name__ == "__main__":
    demo()

 

4、正规方程和梯度下降区别

 

 

 

 

5、过拟合和欠拟合

 

 

 

 

6、正则化与岭回归

 

 

 

 

 代码

 # ---------使用岭回归预测-------------
    rg = Ridge(alpha=1.0) #alpha可以交叉验证调优
    rg.fit(x_train, y_train)
    print(rg.coef_)  # 计算出来的w值
    y_rg_predict = s2.inverse_transform(rg.predict(x_test))
    print("每个样本的预测价格:", y_rg_predict)
    print("岭回归的均方误差:", mean_squared_error(s2.inverse_transform(y_test),y_rg_predict))

 

 

 

7、总结

当样本数据量大时使用梯度下降,当数据量小时,比较岭回归和正规方程使用。

 

 

二、逻辑回归(解决二分类问题)

1、api

 

 

 

 

2、应用场景

 

 

3、公式

 

 

4、案例

 

 

 

 

 

 

5、总结