机器学习算法

机器学习算法大全

分类 + 原理 + 公式 + 代码 + 场景 + 优缺点
一页看全,5分钟入门,30分钟实战


一、算法总览思维导图

graph TD
    ML[机器学习算法] --> SUP[监督学习]
    ML --> UNS[无监督学习]
    ML --> ENS[集成学习]
    ML --> DL[深度学习]

    SUP --> REG[回归]
    SUP --> CLA[分类]
    REG --> LR[线性回归]
    REG --> PR[多项式回归]
    REG --> SVR[支持向量回归]
    CLA --> LOG[逻辑回归]
    CLA --> KNN[KNN]
    CLA --> NB[朴素贝叶斯]
    CLA --> DT[决策树]
    CLA --> SVM[SVM]

    UNS --> CLU[K-Means]
    UNS --> HCA[层次聚类]
    UNS --> DB[DBSCAN]
    UNS --> PCA[PCA降维]

    ENS --> BAG[Bagging<br>随机森林]
    ENS --> BOOST[Boosting<br>XGBoost, LightGBM]
    ENS --> STACK[Stacking]

    DL --> NN[神经网络]
    DL --> CNN[CNN]
    DL --> RNN[RNN/LSTM]
    DL --> TRANS[Transformer]

二、15 大核心算法(定义 + 公式 + 代码 + 场景

算法类型核心思想公式Python 代码适用场景优缺点
1. 线性回归回归拟合直线$ \hat{y} = wX + b $LinearRegression()房价预测简单、可解释
不能非线性
2. 逻辑回归分类Sigmoid 映射概率$ P(y=1) = \sigma(wX+b) $LogisticRegression()垃圾邮件、二分类概率输出
仅线性可分
3. 决策树分类/回归问答式分裂信息增益/基尼DecisionTreeClassifier()信用评估可视化
易过拟合
4. 随机森林集成多树投票BaggingRandomForestClassifier()推荐系统抗过拟合
黑箱
5. XGBoost集成梯度提升树加权残差树XGBClassifier()Kaggle 冠军精度高
调参复杂
6. K-Means聚类中心点迭代$ \min \sum |x – \mu_k|^2 $KMeans(n_clusters=3)客户分群快速
需指定K
7. PCA降维主成分投影协方差矩阵特征分解PCA(n_components=2)数据可视化降噪
丢失解释性
8. KNN分类/回归最近邻投票距离度量KNeighborsClassifier(n=5)推荐系统直观
计算慢
9. 朴素贝叶斯分类贝叶斯定理 + 独立假设$ P(yx) \propto P(xy)P(y) $GaussianNB()
10. SVM分类最大间隔超平面$ \min \frac{1}{2}|w|^2 + C\sum \xi $SVC(kernel='rbf')小样本分类效果好
对噪声敏感
11. K-Means聚类中心迭代同上KMeans()图像分割简单
球形簇
12. 神经网络通用多层感知机$ z = Wx + b, a = \sigma(z) $MLPClassifier()通用强大
需大数据
13. CNN图像卷积 + 池化$ (f * g)(i,j) $PyTorch/TensorFlow图像识别自动提取特征
14. LSTM序列记忆门控$ f_t, i_t, o_t $LSTM()文本生成、语音处理时序
训练慢
15. TransformerNLP自注意力$ \text{Attention}(Q,K,V) $Hugging Face翻译、聊天机器人SOTA
参数多

三、算法选择速查表(看问题选算法

任务数据量推荐算法
预测连续值线性回归
随机森林 / XGBoost
二分类逻辑回归 / SVM
XGBoost / 神经网络
多分类随机森林 / 神经网络
文本分类朴素贝叶斯 / BERT
图像分类CNN / Vision Transformer
客户分群K-Means / DBSCAN
降维可视化PCA / t-SNE
推荐系统协同过滤 / 深度学习

四、实战代码模板(复制即用

# ===== 通用机器学习模板 =====
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score, mean_squared_error
import pandas as pd

# 1. 加载数据
df = pd.read_csv('your_data.csv')
X = df.drop('target', axis=1)
y = df['target']

# 2. 预处理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 3. 划分数据集
X_train, X_test, y_train, y_test = train_test_split(
    X_scaled, y, test_size=0.2, random_state=42, stratify=y
)

# 4. 训练模型(替换你想要的算法)
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 5. 预测与评估
pred = model.predict(X_test)
print("准确率:", accuracy_score(y_test, pred))

五、算法对比图(可视化记忆

graph LR
    A[简单] --> B[线性回归]
    A --> C[逻辑回归]
    A --> D[朴素贝叶斯]

    M[中等] --> E[决策树]
    M --> F[KNN]
    M --> G[SVM]

    H[复杂] --> I[随机森林]
    H --> J[XGBoost]
    H --> K[神经网络]
    H --> L[深度学习]

    style A fill:#f9f,stroke:#333
    style M fill:#bbf,stroke:#333
    style H fill:#fb9,stroke:#333

六、Kaggle 冠军算法套路

阶段常用技巧
特征工程缺失值填补、独热编码、特征交叉
模型融合Stacking(LR + RF + XGB)
调参贝叶斯优化、Optuna
后处理概率校准、投票

七、推荐学习路径(30天精通 10 大算法

目标算法
1回归线性回归、岭回归
2分类逻辑回归、KNN、朴素贝叶斯
3树模型决策树、随机森林、XGBoost
4聚类&降维K-Means、PCA、t-SNE

八、你现在可以做什么?

# 立即运行:对比 6 大分类算法
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score

X, y = make_classification(n_samples=1000, n_features=20, random_state=42)

models = {
    'LR': LogisticRegression(),
    'KNN': KNeighborsClassifier(),
    'DT': DecisionTreeClassifier(),
    'RF': RandomForestClassifier(),
    'XGB': __import__('xgboost').XGBClassifier(use_label_encoder=False, eval_metric='logloss'),
    'SVM': SVC()
}

for name, model in models.items():
    scores = cross_val_score(model, X, y, cv=5)
    print(f"{name}: {scores.mean():.3f} (±{scores.std():.3f})")

九、资源推荐

类型链接
文档Scikit-learn 官方
比赛Kaggle
书籍《Hands-on ML with Scikit-Learn》
课程CS229 斯坦福

想立刻实战?选一个项目:

  1. 泰坦尼克生存预测(决策树 + 随机森林)
  2. 房价预测(XGBoost 回归)
  3. 手写数字识别(CNN)
  4. 客户分群(K-Means + PCA 可视化)

回复 1–4,我给你完整 Jupyter Notebook 代码!

文章已创建 2481

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部