线性回归
目标值:连续型的数值
应用场景:房价预测,销售额度预测,贷款额度预测,金融
定义与公式
线性回归是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
特点只有一个自变量的情况称为单变量回归,多于一个自变量的情况叫做多元回归
线性模型:自变量一次,参数一次
线性关系
- 单变量回归
- 多元回归
单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系
非线性关系
- 线性关系一定是线性模型
- 线性模型不一定是线性关系
损失函数
又称:cost/成本函数/目标函数
目标:求模型参数,使得预测更准确
优化算法
正规方程
天才 - 直接求解W权重(小数据有优势)
梯度下降
勤奋努力的普通人:试错,改进,成功
线性回归API
案例房价预测
- 获取数据集
- 划分数据集
- 特征工程:无量纲化 - 标准化
- 预估器流程
- fit() - 模型
- coef_intercept_
- 模型评估
回归性能评估
均方误差
梯度下降和正规方程的对比
梯度下降 | 正规方程 |
---|---|
需要选择学习率 | 不需要 |
需要迭代求解 | 一次运算得出 |
(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_)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WangZun233!