尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

人工智能 16 大算法及实施手册

人工智能 16 大算法及实施手册 一、16 大 AI 算法总览线性回归Linear Regression逻辑回归Logistic Regression朴素贝叶斯Naive BayesK 近邻 KNN支持向量机 SVM决策树 Decision Tree随机森林 Random ForestXGBoost梯度提升K-Means 聚类DBSCAN 密度聚类PCA 主成分分析降维CNN 卷积神经网络LSTM 长短期记忆网络TransformerDQN 深度 Q 网络强化学习GCN 图卷积网络AI 16 大算法【原理详解 完整可运行 Python 编程方案】环境统一Python3.8依赖numpy pandas scikit-learn xgboost torch torchvision torch_geometric stable-baselines3 matplotlib安装命令pip install numpy pandas scikit-learn xgboost torch matplotlib stable-baselines3 gym说明代码为最小可用 demo可直接复制运行工业项目在此基础上增加交叉验证、特征工程、日志、模型保存部署。1. 线性回归 Linear Regression监督 - 回归原理拟合 \(yw_0 w_1x_1...w_nx_n\)最小化 MSE 均方误差用于连续值预测可加入 L1 (Lasso)/L2 (Ridge) 正则防过拟合。适用销量、房价预测import numpy as np from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score # 构造数据 X np.array([[1], [2], [3], [4], [5]]) y np.array([2,4,5,7,8]) # 训练 model LinearRegression() model.fit(X, y) y_pred model.predict(X) print(f系数w: {model.coef_}, 截距b: {model.intercept_}) print(fMSE: {mean_squared_error(y,y_pred):.2f}, R2: {r2_score(y,y_pred):.2f})2. 逻辑回归 Logistic Regression监督 - 二分类原理线性结果送入 sigmoid 转为 0~1 概率损失交叉熵常用于二分类基线金融风控首选可解释模型。适用违约预测、点击预估import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_auc_score X np.array([[1], [2], [3], [4], [5], [6]]) y np.array([0,0,0,1,1,1]) model LogisticRegression() model.fit(X, y) y_pred_prob model.predict_proba(X)[:,1] print(fAUC: {roc_auc_score(y, y_pred_prob):.2f}) print(预测类别, model.predict(X))3. 朴素贝叶斯 Naive Bayes监督 - 分类原理贝叶斯公式 \(P(Y|X)\frac{P(X|Y)P(Y)}{P(X)}\)假设特征独立文本场景多用多项式朴素贝叶斯。适用垃圾短信、文本情感分类from sklearn.naive_bayes import MultinomialNB from sklearn.feature_extraction.text import CountVectorizer texts [购买理财产品,中奖请转账,正常聊天,汇款领奖] y [0,1,0,1] vec CountVectorizer() X vec.fit_transform(texts) model MultinomialNB() model.fit(X,y) test vec.transform([恭喜您获得大奖]) print(预测类别(1垃圾):, model.predict(test))4. K 近邻 KNN监督 - 分类 / 回归原理计算样本距离 (欧氏)取最近 K 个样本投票惰性学习无训练过程预测慢。适用小样本分类from sklearn.neighbors import KNeighborsClassifier import numpy as np X np.array([[1,2],[2,3],[3,4],[8,9],[9,10]]) y np.array([0,0,0,1,1]) model KNeighborsClassifier(n_neighbors3) model.fit(X,y) print(model.predict([[4,5]]))5. SVM 支持向量机监督 - 分类原理寻找最大间隔超平面核函数 (RBF) 映射高维解决非线性中小样本高维数据效果好。适用文本分类、图像小样本识别from sklearn.svm import SVC import numpy as np X np.array([[1,2],[2,1],[3,4],[4,3]]) y np.array([0,0,1,1]) model SVC(kernelrbf) model.fit(X,y) print(model.predict([[2.5,2.5]]))6. 决策树 Decision Tree监督 - 分类 / 回归原理基于信息增益 / 基尼系数递归分裂节点规则透明极易过拟合必须剪枝。适用规则挖掘、可解释需求场景from sklearn.tree import DecisionTreeClassifier import numpy as np X np.array([[1,2],[2,3],[5,6],[7,8]]) y np.array([0,0,1,1]) model DecisionTreeClassifier(max_depth2) # 限制深度防过拟合 model.fit(X,y) print(model.predict([[4,5]]))7. 随机森林 Random ForestBagging 集成原理并行训练多棵独立决策树样本 特征随机采样投票输出结果可输出特征重要度。适用表格数据分类回归from sklearn.ensemble import RandomForestClassifier import numpy as np X np.array([[1,2],[2,3],[3,4],[6,7],[8,9]]) y np.array([0,0,0,1,1]) model RandomForestClassifier(n_estimators10, max_depth2, random_state1) model.fit(X,y) print(特征重要性, model.feature_importances_) print(model.predict([[5,6]]))8. XGBoostBoosting 梯度提升工业表格标杆原理串行训练每棵树拟合残差二阶泰勒展开优化损失内置正则表格数据竞赛首选。适用风控、推荐排序、销量预测import xgboost as xgb import numpy as np from sklearn.metrics import accuracy_score X np.array([[1,2],[2,3],[3,4],[7,8],[8,9]]) y np.array([0,0,0,1,1]) model xgb.XGBClassifier(n_estimators5, max_depth2, use_label_encoderFalse, eval_metriclogloss) model.fit(X,y) pred model.predict(X) print(f准确率:{accuracy_score(y,pred):.2f})9. K-Means无监督聚类原理预先指定 K迭代更新质心最小化簇内距离肘部法则 / 轮廓系数选 K。适用用户分群、商品聚类from sklearn.cluster import KMeans import numpy as np X np.array([[1,2],[2,2],[8,9],[9,8],[3,2]]) model KMeans(n_clusters2, random_state0, n_initauto) model.fit(X) print(聚类标签, model.labels_) print(聚类中心, model.cluster_centers_)10. DBSCAN密度聚类无监督原理基于样本密度自动成团自动识别噪声点不需要预先指定聚类数量适合不规则簇。适用异常检测、地理点聚类from sklearn.cluster import DBSCAN import numpy as np X np.array([[1,2],[2,3],[3,2],[10,11],[11,10],[50,50]]) model DBSCAN(eps3, min_samples2) model.fit(X) # -1代表噪声点 print(聚类标签(-1噪声):, model.labels_)11. PCA 主成分分析无监督降维原理正交变换保留数据最大方差压缩特征维度消除多重共线性。适用高维特征压缩、数据可视化from sklearn.decomposition import PCA import numpy as np X np.array([[1,2,3],[2,3,4],[3,4,5],[8,9,10]]) pca PCA(n_components2) X_new pca.fit_transform(X) print(降维后数据\n, X_new) print(各主成分方差占比, pca.explained_variance_ratio_)12. CNN 卷积神经网络深度学习 - 视觉原理卷积核提取局部空间特征、池化降采样、参数共享适合图像网格结构数据。适用图像分类、OCR、目标检测骨干网络import torch import torch.nn as nn import torch.nn.functional as F class SimpleCNN(nn.Module): def __init__(self): super().__init__() self.conv1 nn.Conv2d(1, 16, 3, 1) self.pool nn.MaxPool2d(2,2) self.fc1 nn.Linear(16*13*13, 10) def forward(self, x): x self.pool(F.relu(self.conv1(x))) x x.view(x.size(0), -1) return self.fc1(x) model SimpleCNN() # 模拟输入batch2,通道1,28*28灰度图 dummy_img torch.randn(2,1,28,28) out model(dummy_img) print(CNN输出shape, out.shape)13. LSTM 长短期记忆网络深度学习 - 时序原理输入门、遗忘门、输出门解决传统 RNN 梯度消失捕捉长期时序依赖。适用时序预测、文本序列建模import torch import torch.nn as nn class SimpleLSTM(nn.Module): def __init__(self, input_dim1, hidden_dim32): super().__init__() self.lstm nn.LSTM(input_dim, hidden_dim, batch_firstTrue) self.linear nn.Linear(hidden_dim,1) def forward(self, x): out, _ self.lstm(x) return self.linear(out[:,-1,:]) model SimpleLSTM() # batch3,序列长度10,特征维度1 seq torch.randn(3,10,1) pred model(seq) print(LSTM预测输出shape, pred.shape)14. Transformer深度学习自注意力原理多头自注意力建模全局依赖不再依赖时序循环BERT/GPT/ViT 基础骨架。下面是极简 Encoder 示例完整大模型在此扩展import torch import torch.nn as nn # 极简Transformer Encoder示例 encoder_layer nn.TransformerEncoderLayer(d_model64, nhead8, batch_firstTrue) trans_encoder nn.TransformerEncoder(encoder_layer, num_layers2) # batch2,序列长15,特征64 src torch.randn(2,15,64) out trans_encoder(src) print(Transformer输出shape, out.shape)15. DQN 深度 Q 网络强化学习原理神经网络拟合 Q 价值函数经验回放 目标网络解决 Q-learning 高维状态问题离散动作决策。依赖stable-baselines3内置成熟 DQN 实现import gym from stable_baselines3 import DQN env gym.make(CartPole-v1) model DQN(MlpPolicy, env, learning_rate1e-3, verbose0) model.learn(total_timesteps10000) obs, _ env.reset() for _ in range(200): action, _ model.predict(obs) obs, reward, done, _, info env.step(action) if done: break env.close() print(DQN 训练完成完成CartPole平衡任务)16. GCN 图卷积网络图深度学习原理聚合邻居节点特征学习拓扑结构 节点属性处理图结构数据社交网络、知识图谱、团伙风控依赖torch_geometricpip install torch_geometricimport torch import torch.nn as nn from torch_geometric.nn import GCNConv class SimpleGCN(nn.Module): def __init__(self, in_dim3, hid_dim16, out_dim2): super().__init__() self.conv1 GCNConv(in_dim, hid_dim) self.conv2 GCNConv(hid_dim, out_dim) def forward(self, x, edge_index): x torch.relu(self.conv1(x, edge_index)) return self.conv2(x, edge_index) model SimpleGCN() # 4个节点每个节点3维特征 x torch.randn(4,3) # 边索引无向图 0-1,1-2,2-3 edge_index torch.tensor([[0,1,2], [1,2,3]], dtypetorch.long) out model(x, edge_index) print(GCN节点输出shape, out.shape)配套落地补充方案通用工程化标准动作所有算法都要加数据集划分train_test_split时序数据禁止随机打乱标准化StandardScaler/MinMaxScaler训练集拟合测试集 transform杜绝数据泄露交叉验证GridSearchCV / Optuna超参寻优模型持久化sklearn/xgbjoblib.dump(model, model.pkl)pytorchtorch.save(model.state_dict(), model.pth)推理封装FastAPI 提供 http 接口ONNX 做跨平台部署选型 调优速记表格业务优先XGBoost/LightGBM基线用逻辑回归 / 随机森林图像任务CNN → ViTTransformer文本长序列Transformer (BERT/GPT)时序预测LSTM / Temporal Transformer关系网络、团伙识别GCN/GraphSAGE自动决策调度DQN/PPO
返回列表