线性回归应用场景
- 房价预测,通过分析房地产市场的历史数据,如房屋大小、位置、建造年份等因素,线性回归可以帮助预测未来房价的走势。
- 销售额预测,企业可以利用线性回归模型来预测产品的销售额,这通常涉及到产品价格、市场营销预算、季节性因素等变量的分析。
- 贷款额度预测,金融机构可以使用线性回归来评估客户的信用风险,并据此决定贷款额度。
线性回归(Linear regression)
线性回归是一种利用直线方程对变量之间关系进行建模的回归分析方法。
- 定义:线性回归分析用于研究两个或多个变量之间的关系,其中一个是自变量,另一个是因变量。在这种方法中,目标是找到一个线性方程,即一个直线,该直线能够尽可能好地预测因变量基于自变量的值。
- 公式:线性回归模型通常表示为 ( y = wx + b ),其中 ( y ) 是因变量,( x ) 是自变量,( w ) 是权重(斜率),而 ( b ) 是偏差(截距)。这个方程描述了自变量和因变量之间的直线关系。
- 最小二乘法:为了找到最佳的 ( w ) 和 ( b ) 值,通常采用最小二乘法。该方法通过最小化实际数据点和回归线之间的平方差来求解这些参数。
- 期末成绩:0.7×考试成绩+0.3×平时成绩
特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型 。
sklearn中, 线性回归的API在linear_model模块中
sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
代码
from sklearn.linear_model import LinearRegression x = [[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]] y = [84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4] estimator = LinearRegression() estimator.fit(x,y) print(estimator.coef_) estimator.predict([[100, 80]])
通过sklearn.linear_model.LinearRegression类创建一个线性回归模型实例。这个类有许多参数可以设置,如fit_intercept(是否计算模型的截距)和normalize(是否对数据进行标准化处理)等。
- 训练模型:使用训练集数据调用模型的fit方法来训练模型。
- 进行预测:训练好模型后,使用predict方法对测试集或新数据进行预测。
- 评估模型:常用的评估指标包括均方误差(MSE)、决定系数(R²)等。这些指标可以帮助我们了解模型的预测性能和数据拟合程度。
损失函数
用来衡量机器学习模型性能的函数,损失函数可以计算预测值与真实值之间的误差(用一个实数来表示),误差越小说明模型性能越好。
- 误差的大小是坐标系中两点之间的距离,将真实值与预测值相减得到误差。
但是用来衡量回归损失的时候, 不能简单的将每个点的预测误差相加。
平方损失
回归问题的损失函数
- yi 为第i个训练样本的真实值
- h(xi) 为第i个训练样本特征值组合预测函数又称最小二乘法
import numpy as np from sklearn.linear_model import LinearRegression if __name__ == '__main__': x = np.mat([[80, 86], [82, 80], [85, 78], [90, 90], [86, 82], [82, 90], [78, 80], [92, 94]]) y = np.mat([84.2, 80.6, 80.1, 90, 83.2, 87.6, 79.4, 93.4]).transpose() ones_array = np.ones([len(x), 1]) x = np.hstack([ones_array, x]) w = (x.transpose() * x) ** -1 * x.transpose() * y print('[%.1f %.1f %.1f]' % (w[0][0], w[1][0], w[2][0])) estimator = LinearRegression(fit_intercept=True) estimator.fit(x, y) print(estimator.coef_[0])
AI-线性回归模型(二)+https://developer.aliyun.com/article/1544598?spm=a2c6h.13148508.setting.31.2a1e4f0e3aAL8b