4. 经典决策模型:线性回归、逻辑回归、决策树、随机森林、支持向量机
说实话,做智能决策模型这些年,我见过太多人一上来就堆深度学习。其实呢,经典模型才是真正的基石。你想想看,很多业务场景下,线性回归和决策树就能解决问题,何必非得上个 Transformer?
我个人习惯是,拿到一个分类或回归任务,先拿这几个经典模型跑一遍。不是为了偷懒,而是为了摸清数据的脾气。今天我就把这五个模型的实战心得,掰开了揉碎了讲给你听。
4.1 线性回归:最朴素的预测器
线性回归,说白了就是找一条直线(或超平面)来拟合数据。它的数学形式很简单:y = wx + b。但简单不代表没用。
我在项目中遇到过一个问题:预测电商平台的日销售额。一开始用线性回归,效果还行。但后来发现销售额在促销日会暴涨,线性模型完全抓不住这个规律。嗯,这时候就需要做特征工程了——把“是否促销日”作为一个哑变量加进去。
# 线性回归的简单实现
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# 评估
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print(f'MSE: {mse:.2f}')
4.2 逻辑回归:分类界的瑞士军刀
别看它叫“回归”,其实是个分类模型。逻辑回归的核心是 Sigmoid 函数,把线性输出压缩到 0 到 1 之间,变成概率。
为什么说它是瑞士军刀?因为它简单、可解释、训练快。我经常用它做基线模型。你想想看,如果逻辑回归都跑不出好效果,那其他模型大概率也够呛。
# 逻辑回归示例
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression()
clf.fit(X_train, y_train)
y_prob = clf.predict_proba(X_test)[:, 1] # 获取正类概率
4.3 决策树:人类直觉的数学化
决策树,说白了就是一堆 if-else 的嵌套。它的好处是直观——你画出来的树,业务人员也能看懂。
我记得有一次做用户流失预测,业务方要求模型必须可解释。我直接上了决策树,把树画出来给他们看:“你看,如果用户最近 30 天登录次数小于 5 次,且消费金额低于 100 元,那么流失概率高达 80%。”他们当场就信了。
# 决策树示例
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=3) # 限制深度防止过拟合
tree.fit(X_train, y_train)
4.4 随机森林:集体的智慧
随机森林就是很多棵决策树投票。每棵树都在不同的数据子集和特征子集上训练,最后取平均或投票。为什么效果好?因为“三个臭皮匠,顶个诸葛亮”。
我个人习惯是,当数据量中等(几千到几万条),特征维度不高时,随机森林是我的首选。它不需要太多调参,就能给出不错的结果。
# 随机森林示例
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=100, max_depth=5)
rf.fit(X_train, y_train)
importance = rf.feature_importances_ # 特征重要性
4.5 支持向量机(SVM):寻找最优分界线
SVM 的核心思想是:在两类数据之间,找一条“最宽”的马路。马路越宽,分类效果越稳定。它特别擅长处理高维数据和小样本场景。
我曾在文本分类任务中用过 SVM。文本数据特征维度很高(几千到几万维),逻辑回归容易欠拟合,而 SVM 配合 RBF 核函数,效果出奇的好。
# SVM 示例
from sklearn.svm import SVC
svm = SVC(kernel='rbf', C=1.0, gamma='scale')
svm.fit(X_train, y_train)
4.6 模型对比与选择策略
你可能会问:这么多模型,我到底该用哪个?我个人的选择逻辑是这样的:
| 场景 | 推荐模型 | 理由 |
|---|---|---|
| 数据量小(<1000条) | SVM / 逻辑回归 | 不容易过拟合,泛化能力强 |
| 数据量中等(1000-10000条) | 随机森林 | 鲁棒性好,不需要太多调参 |
| 需要可解释性 | 决策树 / 逻辑回归 | 系数或树结构可以直接解释 |
| 高维稀疏数据 | 线性 SVM / 逻辑回归 | 线性模型在高维空间表现稳定 |
| 非线性关系明显 | 随机森林 / RBF-SVM | 能捕捉复杂模式 |
4.7 知识体系总览
下面这张图,是我自己总结的经典决策模型知识体系。你可以把它当作一个快速索引:
好了,这五个模型的核心要点就这些。你可能会觉得内容有点多,但别急——每个模型我都会在后面的章节里,用真实案例带你手把手调参。到时候你就知道,这些经典模型到底有多能打。