avatar

机器学习10_线性回归

线性回归

  • 目标值:连续型的数值

  • 应用场景:房价预测,销售额度预测,贷款额度预测,金融

定义与公式

线性回归是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式

  • 特点只有一个自变量的情况称为单变量回归,多于一个自变量的情况叫做多元回归

  • 线性模型:自变量一次,参数一次

线性关系

  • 单变量回归

  • 多元回归

  • 单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系

  • 非线性关系

  • 线性关系一定是线性模型
  • 线性模型不一定是线性关系

损失函数

又称:cost/成本函数/目标函数

目标:求模型参数,使得预测更准确

优化算法

正规方程

天才 - 直接求解W权重(小数据有优势)

10_06

梯度下降

勤奋努力的普通人:试错,改进,成功

线性回归API

案例房价预测

  1. 获取数据集
  2. 划分数据集
  3. 特征工程:无量纲化 - 标准化
  4. 预估器流程
    1. fit() - 模型
    2. coef_intercept_
  5. 模型评估

回归性能评估

均方误差

梯度下降和正规方程的对比

梯度下降 正规方程
需要选择学习率 不需要
需要迭代求解 一次运算得出
(100k)以上特征数量较大可以使用 需要计算方程,时间复杂度高O(n3)
  • GD SGD SAG

正规方程预估器

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error#均方误差
estimator = LinearRegression()#正规方程预估器
estimator.fit(x_train,y_train)
print("正规方程权重系数为:\n",estimator.coef_)
#权重的数量分别对应特征的数量
print("正规方程偏值为:\n",estimator.intercept_)
#模型评估
y_predict = estimator.predict(x_test)
print("预测房价:\n",y_predict)
error = mean_squared_error(y_test,y_predict)
print("正规方程-均方误差:\n",error)

梯度下降预估器

from sklearn.linear_model import SGDRegressor
estimator = SGDRegressor(learning_rate="constant",eta0=0.01,max_iter=1000,penalty="l1")#梯度下降预估器
estimator.fit(x_train,y_train)
y_predict = estimator.predict(x_test)
print("预测房价:\n",y_predict)
error = mean_squared_error(y_test,y_predict)
print("梯度下降-均方误差:\n",error)
print("梯度下降权重系数为:\n",estimator.coef_)
print("梯度下降偏值为:\n",estimator.intercept_)
文章作者: wangzun233
文章链接: https://wangzun233.top/2020/12/23/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A010-%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangZun233