一、线性回归(Linear Regression)
- 核心思想
线性回归的核心就是"找规律画直线"。它假设你要预测的结果(比如房价),和已知的条件(比如房屋面积、房间数)之间存在一种成比例的关系。模型的作用就是根据历史数据,在坐标轴上画出一条最能贴合所有数据点的直线。以后遇到新数据,直接看这条直线对应的值,就是预测结果。
- 衡量好坏的标准
怎么判断这条线画得准不准?通常看均方误差。简单来说,就是把模型预测的值和真实的值做对比,算出差值,然后把这个差值平方后加总。这个误差越小,说明线画得越准,模型越好。
- 如何找到这条线?
主要有两种办法:
直接算出来:通过数学矩阵运算,一步到位求出最完美的直线参数(正规方程)。适合数据量不大的情况。
一点点试:先随便画一条线,看看误差有多大,然后根据误差的方向,稍微调整一下线的斜率和位置,一点点逼近最完美的状态(这就是梯度下降)。
- 代码实例(Python)
python
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
1. 准备简单的数据(面积 vs 价格)
X = np.array(\[1, 2, 3, 4, 5]) # 特征
y = np.array(2, 4, 6, 8, 10) # 真实值
2. 训练模型(找直线)
model = LinearRegression()
model.fit(X, y)
3. 查看结果
print("预测结果:", model.predict(\[6])) # 预测面积为6时的价格
print("误差大小:", mean_squared_error(y, model.predict(X)))
二、逻辑回归(Logistic Regression)
- 核心思想
名字叫回归,但它其实是做分类的(比如判断是否违约、是否患病)。如果直接用线性回归预测分类,结果可能是 100 或者 -50,这不符合概率逻辑。
逻辑回归的巧妙之处在于,它在线性回归外面套了一个"压缩器"(Sigmoid函数)。不管里面算出来的数值有多大,经过这个压缩器,结果都会被死死压在 0 到 1 之间。这个结果就被当成了概率:大于 0.5 算一类,小于 0.5 算另一类。
- 衡量好坏的标准
逻辑回归不能用算平方误差的方法(因为套了压缩器后,误差曲线会变得坑坑洼洼,找不到最低点)。它使用交叉熵损失:如果真实情况是 1,模型预测概率越接近 1,误差越小;如果真实情况是 0,模型预测概率越接近 0,误差越小。如果模型极度自信却猜错了,惩罚会非常重。
- 如何找到最优解?
通常也是用梯度下降法。一点点调整参数,让预测概率越来越贴近真实标签。
- 代码实例(Python)
python
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
1. 准备简单的二分类数据
X = np.array(\[1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 6, 8])
y = np.array(0, 0, 0, 1, 1, 1) # 0代表类别A,1代表类别B
2. 训练模型
model = LogisticRegression()
model.fit(X, y)
3. 预测(直接输出类别)与查看概率
print("预测类别:", model.predict(X))
print("预测概率:", model.predict_proba(X):, 1) # 查看属于类别1的概率
print("准确率:", accuracy_score(y, model.predict(X)))
极简总结
对比项 线性回归 逻辑回归
干什么用 预测具体的数值(如:明天几度) 判断属于哪个类别(如:明天会不会下雨)
输出结果 任何大小的数字 0 到 1 之间的概率值
核心法宝 画一条贴合数据的直线 给直线套上一个 0~1 的"概率压缩器"
评判标准 预测值与真实值差值的平方和 预测概率与真实标签之间的吻合度