機(jī)器學(xué)習(xí)算法全景圖渲染教程:VSCode + PlantUML 插件 & PlantText 在線工具

本文將詳細(xì)講解如何在 VSCode + PlantUML 插件(本地高性能渲染)和 PlantText 在線工具(免安裝快速渲染)中,完整渲染上文的機(jī)器學(xué)習(xí) 199 + 算法體系 PlantUML 代碼,包含環(huán)境配置、操作步驟、常見問題解決等全流程。

一、前置知識(shí)

PlantUML 是一種通過文本描述生成 UML 圖(流程圖、架構(gòu)圖、時(shí)序圖等)的工具,支持多種輸出格式(PNG/SVG/PDF),上文的算法全景圖基于 PlantUML 語(yǔ)法編寫,需借助渲染工具將文本轉(zhuǎn)為可視化圖表。

二、方案 1:VSCode + PlantUML 插件(推薦,本地渲染)

2.1 環(huán)境準(zhǔn)備

2.1.1 安裝 VSCode

  • 下載地址:VSCode 官方下載
  • 安裝:根據(jù)操作系統(tǒng)(Windows/macOS/Linux)選擇對(duì)應(yīng)版本,默認(rèn)安裝即可(建議勾選 “添加到 PATH”)。

2.1.2 安裝 Graphviz(核心依賴)

PlantUML 渲染圖表依賴 Graphviz(圖形可視化工具),必須先安裝:

  • Windows
    1. 下載地址:Graphviz 官方下載(選擇 Windows 版本,如graphviz-10.0.1-win64.exe);
    2. 安裝:勾選 “Add Graphviz to the system PATH for all users”(添加到系統(tǒng)環(huán)境變量),默認(rèn)安裝路徑C:\Program Files\Graphviz\;
    3. 驗(yàn)證:打開 CMD,輸入dot -version,若顯示版本信息則安裝成功。
  • macOS
    終端執(zhí)行brew install graphviz(需先安裝 Homebrew,若未安裝:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。
  • Linux
    終端執(zhí)行sudo apt-get install graphviz(Debian/Ubuntu)或sudo yum install graphviz(CentOS)。

2.1.3 安裝 PlantUML 插件

  1. 打開 VSCode,點(diǎn)擊左側(cè)「擴(kuò)展」圖標(biāo)(快捷鍵Ctrl+Shift+X);
  2. 在搜索框輸入PlantUML,選擇由jebbs開發(fā)的插件(下載量最高、官方推薦);
  3. 點(diǎn)擊「安裝」,安裝完成后 VSCode 會(huì)提示 “重啟以生效”(可選,一般無需重啟)。

2.2 渲染步驟

2.2.1 創(chuàng)建 PlantUML 文件

  1. 打開 VSCode,新建文件夾(如ML-Algorithm-Chart);
  2. 在文件夾內(nèi)右鍵 → 「新建文件」,命名為ML-Algorithms.puml(后綴必須為.puml/.plantuml/.pu,插件僅識(shí)別這些后綴)。

2.2.2 粘貼代碼

  1. 打開ML-Algorithms.puml文件;
  2. 全選刪除默認(rèn)內(nèi)容,粘貼上文修正后的完整 PlantUML 代碼;
  3. 保存文件(快捷鍵Ctrl+S)。
' 全局樣式優(yōu)化:適配大量算法的可視化
skinparam componentStyle rectangle
skinparam defaultTextAlignment center
skinparam shadowing false
skinparam package {
  BackgroundColor #f5f5f5
  BorderColor #2f4f4f
  FontSize 10
}
skinparam component {
  FontSize 9
  BorderColor #4682b4
}
skinparam note {
  BackgroundColor #e0f7fa
  BorderColor #006064
  FontSize 9
}
skinparam arrow {
  LineThickness 1
  Color #333333
}

title 機(jī)器學(xué)習(xí)199+算法體系全景圖(含衍生/改進(jìn)關(guān)系)

' ===================== 第一層:數(shù)據(jù)預(yù)處理(基礎(chǔ)層) =====================
package "數(shù)據(jù)預(yù)處理層【18類】" {
  [缺失值處理\n(均值/中位數(shù)/眾數(shù)填充)] as Miss_Fill
  [缺失值處理\n(插值法/KNN填充)] as Miss_Interp
  [缺失值處理\n(MICE/EM填充)] as Miss_MICE
  [異常值處理\n(IQR/3σ法則)] as Outlier_IQR
  [異常值處理\n(DBSCAN/孤立森林)] as Outlier_Detect
  [重復(fù)值處理\n(完全重復(fù)/近重復(fù))] as Duplicate
  [數(shù)據(jù)變換\n(對(duì)數(shù)/指數(shù)/Box-Cox)] as Transform_Basic
  [數(shù)據(jù)變換\n(Yeojohnson/Power)] as Transform_Power
  [歸一化\n(Min-Max)] as Norm_MinMax
  [標(biāo)準(zhǔn)化\n(Z-Score)] as Norm_Zscore
  [正則化\n(L1/L2)] as Norm_L1L2
  [類別編碼\n(標(biāo)簽編碼)] as Encode_Label
  [類別編碼\n(獨(dú)熱編碼)] as Encode_Onehot
  [類別編碼\n(目標(biāo)編碼)] as Encode_Target
  [類別編碼\n(WOE編碼)] as Encode_WOE
  [特征選擇\n(過濾法:卡方/互信息)] as FS_Filter
  [特征選擇\n(包裹法:RFE)] as FS_Wrapper
  [特征選擇\n(嵌入法:L1正則)] as FS_Embed
  [降維\n(PCA/核PCA)] as Dim_PCA
  [降維\n(TSNE/UMAP)] as Dim_TSNE
  [降維\n(LDA/NMF)] as Dim_LDA
  [數(shù)據(jù)劃分\n(hold-out/分層抽樣)] as Split_Holdout
  [數(shù)據(jù)劃分\n(交叉驗(yàn)證:K折/留一)] as Split_CV
  [數(shù)據(jù)增強(qiáng)\n(SMOTE/ADASYN)] as Aug_SMOTE
  [數(shù)據(jù)增強(qiáng)\n(隨機(jī)翻轉(zhuǎn)/裁剪)] as Aug_Image
  [數(shù)據(jù)增強(qiáng)\n(文本分詞/替換)] as Aug_Text
}

' ===================== 第二層:傳統(tǒng)統(tǒng)計(jì)學(xué)習(xí)算法【25類】 =====================
package "傳統(tǒng)統(tǒng)計(jì)學(xué)習(xí)【25類】" {
  [線性回歸\n(普通最小二乘)] as Reg_OLS
  [線性回歸\n(加權(quán)最小二乘)] as Reg_WLS
  [嶺回歸] as Reg_Ridge
  [Lasso回歸] as Reg_Lasso
  [ElasticNet回歸] as Reg_ElasticNet
  [邏輯回歸\n(二分類)] as Clf_Logistic_Bin
  [邏輯回歸\n(多分類)] as Clf_Logistic_Multi
  [線性判別分析\n(LDA)] as Clf_LDA
  [二次判別分析\n(QDA)] as Clf_QDA
  [樸素貝葉斯\n(高斯)] as Clf_NB_Gauss
  [樸素貝葉斯\n(多項(xiàng)式)] as Clf_NB_Multi
  [樸素貝葉斯\n(伯努利)] as Clf_NB_Bernoulli
  [泊松回歸] as Reg_Poisson
  [負(fù)二項(xiàng)回歸] as Reg_NegBin
  [Cox比例風(fēng)險(xiǎn)回歸] as Reg_Cox
  [時(shí)間序列AR] as TS_AR
  [時(shí)間序列MA] as TS_MA
  [時(shí)間序列ARMA] as TS_ARMA
  [時(shí)間序列ARIMA] as TS_ARIMA
  [時(shí)間序列SARIMA] as TS_SARIMA
  [時(shí)間序列VAR] as TS_VAR
  [格蘭杰因果檢驗(yàn)] as Stat_Granger
  [卡方檢驗(yàn)] as Stat_Chi2
  [t檢驗(yàn)/ANOVA] as Stat_T_ANOVA
  [皮爾遜/斯皮爾曼相關(guān)] as Stat_Corr
}

' ===================== 第三層:監(jiān)督學(xué)習(xí)-樹模型/集成學(xué)習(xí)【42類】 =====================
package "監(jiān)督學(xué)習(xí)-樹模型/集成學(xué)習(xí)【42類】" {
  ' 基礎(chǔ)樹模型
  [決策樹\n(ID3)] as Tree_ID3
  [決策樹\n(C4.5)] as Tree_C45
  [決策樹\n(CART)] as Tree_CART
  [決策樹\n(CHAID)] as Tree_CHAID
  [決策樹\n(M5)] as Tree_M5
  [隨機(jī)森林\n(基礎(chǔ)版)] as Ensemble_RF_Base
  [隨機(jī)森林\n(ExtraTrees)] as Ensemble_ExtraTrees
  [隨機(jī)森林\n(RF-PCA)] as Ensemble_RF_PCA
  ' 提升樹
  [GBDT\n(基礎(chǔ)版)] as Ensemble_GBDT_Base
  [XGBoost\n(基礎(chǔ)版)] as Ensemble_XGB_Base
  [XGBoost\n(帶缺失值處理)] as Ensemble_XGB_Miss
  [XGBoost\n(列采樣版)] as Ensemble_XGB_Col
  [LightGBM\n(基礎(chǔ)版)] as Ensemble_LGB_Base
  [LightGBM\n(直方圖優(yōu)化)] as Ensemble_LGB_Hist
  [LightGBM\n(互斥特征捆綁)] as Ensemble_LGB_EFB
  [CatBoost\n(基礎(chǔ)版)] as Ensemble_CatB_Base
  [CatBoost\n(類別特征優(yōu)化)] as Ensemble_CatB_Cat
  [CatBoost\n(有序提升)] as Ensemble_CatB_Ord
  [AdaBoost\n(基礎(chǔ)版)] as Ensemble_Ada_Base
  [AdaBoost\n(RealAdaBoost)] as Ensemble_Ada_Real
  [AdaBoost\n(MultiAdaBoost)] as Ensemble_Ada_Multi
  [GradientBoost\n(基礎(chǔ)版)] as Ensemble_GB_Base
  [StochasticGB\n(隨機(jī)梯度提升)] as Ensemble_SGB
  [HistogramGB\n(直方圖梯度提升)] as Ensemble_HGB
  ' 堆疊/混合集成
  [Stacking\n(單層)] as Ensemble_Stack_Single
  [Stacking\n(多層)] as Ensemble_Stack_Multi
  [Blending\n(基礎(chǔ)版)] as Ensemble_Blend_Base
  [Blending\n(加權(quán)融合)] as Ensemble_Blend_Weight
  [Voting\n(硬投票)] as Ensemble_Vote_Hard
  [Voting\n(軟投票)] as Ensemble_Vote_Soft
  [Bagging\n(基礎(chǔ)版)] as Ensemble_Bag_Base
  [Bagging\n(Pasting)] as Ensemble_Bag_Paste
  [Bagging\n(RandomPatches)] as Ensemble_Bag_Patch
  [Bagging\n(RandomSubspace)] as Ensemble_Bag_Subspace
  ' 工程化變體
  [XGBoost-LR混合] as Ensemble_XGB_LR
  [LightGBM-CatBoost混合] as Ensemble_LGB_CatB
  [RF-GBDT堆疊] as Ensemble_RF_GBDT
  [AdaBoost-SVM混合] as Ensemble_Ada_SVM
  [GBDT+特征衍生] as Ensemble_GBDT_Feat
  [XGBoost+早停] as Ensemble_XGB_EarlyStop
  [LightGBM+正則化] as Ensemble_LGB_Reg
  [CatBoost+交叉驗(yàn)證] as Ensemble_CatB_CV
  [集成學(xué)習(xí)+網(wǎng)格搜索] as Ensemble_GridSearch
  [集成學(xué)習(xí)+貝葉斯優(yōu)化] as Ensemble_BayesOpt
}

' ===================== 第四層:監(jiān)督學(xué)習(xí)-核方法/近鄰【18類】 =====================
package "監(jiān)督學(xué)習(xí)-核方法/近鄰【18類】" {
  [KNN\n(基礎(chǔ)版)] as KNN_Base
  [KNN\n(加權(quán)KNN)] as KNN_Weight
  [KNN\n(KD樹優(yōu)化)] as KNN_KDTree
  [KNN\n(球樹優(yōu)化)] as KNN_BallTree
  [KNN\n(余弦距離)] as KNN_Cosine
  [KNN\n(曼哈頓距離)] as KNN_Manhattan
  [SVM\n(線性核)] as SVM_Linear
  [SVM\n(多項(xiàng)式核)] as SVM_Poly
  [SVM\n(高斯核/RBF)] as SVM_RBF
  [SVM\n(拉普拉斯核)] as SVM_Laplace
  [SVM\n(Sigmoid核)] as SVM_Sigmoid
  [SVM\n(線性軟間隔)] as SVM_SoftLinear
  [SVM\n(多分類OVA)] as SVM_Multi_OVA
  [SVM\n(多分類OVO)] as SVM_Multi_OVO
  [LS-SVM\n(最小二乘SVM)] as SVM_LS
  [Nu-SVM\n(ν-SVM)] as SVM_Nu
  [C-SVM\n(C-SVM)] as SVM_C
  [OneClass-SVM\n(單類SVM)] as SVM_OneClass
}

' ===================== 第五層:無監(jiān)督學(xué)習(xí)-聚類【24類】 =====================
package "無監(jiān)督學(xué)習(xí)-聚類【24類】" {
  ' 劃分式聚類
  [K-Means\n(基礎(chǔ)版)] as Clust_KMeans_Base
  [K-Means++\n(初始化優(yōu)化)] as Clust_KMeans_Plus
  [MiniBatch-KMeans] as Clust_MiniKMeans
  [K-Medoids\n(PAM)] as Clust_KMedoids_PAM
  [K-Medians] as Clust_KMedians
  [Fuzzy C-Means\n(模糊C均值)] as Clust_FCM
  [Hard C-Means] as Clust_HCM
  ' 層次聚類
  [層次聚類\n(凝聚式)] as Clust_Hier_Agg
  [層次聚類\n(分裂式)] as Clust_Hier_Div
  [層次聚類\n(單鏈接)] as Clust_Hier_Single
  [層次聚類\n(全鏈接)] as Clust_Hier_Complete
  [層次聚類\n(平均鏈接)] as Clust_Hier_Avg
  [層次聚類\n(沃德法)] as Clust_Hier_Ward
  ' 密度聚類
  [DBSCAN\n(基礎(chǔ)版)] as Clust_DBSCAN_Base
  [OPTICS\n(基礎(chǔ)版)] as Clust_OPTICS_Base
  [OPTICS\n(改進(jìn)版)] as Clust_OPTICS_Imp
  [HDBSCAN\n(層次DBSCAN)] as Clust_HDBSCAN
  [MeanShift\n(均值漂移)] as Clust_MeanShift
  [MeanShift\n(帶寬優(yōu)化)] as Clust_MeanShift_Band
  ' 概率聚類
  [GMM\n(高斯混合)] as Clust_GMM_Base
  [GMM\n(EM優(yōu)化)] as Clust_GMM_EM
  [GMM\n(貝葉斯GMM)] as Clust_BayesGMM
  ' 其他聚類
  [SpectralClustering\n(譜聚類)] as Clust_Spectral
  [AffinityPropagation\n(親和傳播)] as Clust_Affinity
  [Birch\n(層次平衡迭代)] as Clust_Birch
}

' ===================== 第六層:無監(jiān)督學(xué)習(xí)-關(guān)聯(lián)規(guī)則/降維【16類】 =====================
package "無監(jiān)督學(xué)習(xí)-關(guān)聯(lián)規(guī)則/降維【16類】" {
  ' 關(guān)聯(lián)規(guī)則
  [Apriori\n(基礎(chǔ)版)] as AR_Apriori_Base
  [Apriori\n(剪枝優(yōu)化)] as AR_Apriori_Prune
  [FP-Growth\n(基礎(chǔ)版)] as AR_FPG_Base
  [FP-Growth\n(并行版)] as AR_FPG_Parallel
  [Eclat\n(基礎(chǔ)版)] as AR_Eclat_Base
  [Eclat\n(垂直數(shù)據(jù)優(yōu)化)] as AR_Eclat_Vert
  [PrefixSpan\n(序列模式)] as AR_PrefixSpan
  [SPADE\n(序列模式挖掘)] as AR_SPADE
  [GSP\n(廣義序列模式)] as AR_GSP
  ' 降維
  [PCA\n(基礎(chǔ)版)] as Dim_PCA_Base
  [PCA\n(增量PCA)] as Dim_PCA_Incremental
  [KernelPCA\n(核PCA)] as Dim_KernelPCA
  [LDA\n(線性判別降維)] as Dim_LDA_Base
  [t-SNE\n(基礎(chǔ)版)] as Dim_TSNE_Base
  [UMAP\n(基礎(chǔ)版)] as Dim_UMAP_Base
  [NMF\n(非負(fù)矩陣分解)] as Dim_NMF_Base
}

' ===================== 第七層:半監(jiān)督學(xué)習(xí)【12類】 =====================
package "半監(jiān)督學(xué)習(xí)【12類】" {
  [偽標(biāo)簽法\n(基礎(chǔ)版)] as SSL_Pseudo_Base
  [偽標(biāo)簽法\n(置信度過濾)] as SSL_Pseudo_Conf
  [自訓(xùn)練\n(基礎(chǔ)版)] as SSL_SelfTrain_Base
  [自訓(xùn)練\n(多模型自訓(xùn)練)] as SSL_SelfTrain_Multi
  [協(xié)同訓(xùn)練\n(基礎(chǔ)版)] as SSL_CoTrain_Base
  [協(xié)同訓(xùn)練\n(Co-Training+)] as SSL_CoTrain_Plus
  [Tri-Training] as SSL_TriTrain
  [LabelPropagation\n(標(biāo)簽傳播)] as SSL_LabelProp
  [LabelSpreading\n(標(biāo)簽擴(kuò)散)] as SSL_LabelSpread
  [半監(jiān)督SVM\n(S3VM)] as SSL_S3VM
  [半監(jiān)督KMeans] as SSL_KMeans
  [半監(jiān)督GMM] as SSL_GMM
}

' ===================== 第八層:強(qiáng)化學(xué)習(xí)【18類】 =====================
package "強(qiáng)化學(xué)習(xí)【18類】" {
  ' 值迭代
  [Q-Learning\n(基礎(chǔ)版)] as RL_Q_Base
  [SARSA\n(基礎(chǔ)版)] as RL_SARSA_Base
  [SARSA(λ)] as RL_SARSA_Lambda
  [DQN\n(深度Q網(wǎng)絡(luò))] as RL_DQN_Base
  [Double DQN] as RL_DDQN
  [Dueling DQN] as RL_DuelDQN
  [Prioritized DQN] as RL_PDQN
  [Rainbow DQN] as RL_RainbowDQN
  ' 策略迭代
  [Policy Gradient\n(PG)] as RL_PG_Base
  [REINFORCE\n(基礎(chǔ)版)] as RL_REINFORCE
  [Actor-Critic\n(基礎(chǔ)版)] as RL_AC_Base
  [A2C\n(同步AC)] as RL_A2C
  [A3C\n(異步AC)] as RL_A3C
  [PPO\n(近端策略優(yōu)化)] as RL_PPO_Base
  [TRPO\n(信任域策略優(yōu)化)] as RL_TRPO
  [DDPG\n(深度確定性策略)] as RL_DDPG
  [TD3\n(雙延遲DDPG)] as RL_TD3
  [SAC\n(軟演員評(píng)論員)] as RL_SAC
  ' 多智能體
  [MADDPG\n(多智能體DDPG)] as RL_MADDPG
  [MAPPO\n(多智能體PPO)] as RL_MAPPO
}

' ===================== 第九層:深度學(xué)習(xí)【23類】 =====================
package "深度學(xué)習(xí)【23類】" {
  ' 基礎(chǔ)網(wǎng)絡(luò)
  [MLP\n(多層感知機(jī))] as DL_MLP_Base
  [MLP\n(帶Dropout)] as DL_MLP_Dropout
  [CNN\n(基礎(chǔ)LeNet)] as DL_CNN_LeNet
  [CNN\n(AlexNet)] as DL_CNN_AlexNet
  [CNN\n(VGG)] as DL_CNN_VGG
  [CNN\n(ResNet)] as DL_CNN_ResNet
  [CNN\n(ResNeXt)] as DL_CNN_ResNeXt
  [CNN\n(DenseNet)] as DL_CNN_DenseNet
  [CNN\n(EfficientNet)] as DL_CNN_EffNet
  ' 序列模型
  [RNN\n(基礎(chǔ)版)] as DL_RNN_Base
  [LSTM\n(基礎(chǔ)版)] as DL_LSTM_Base
  [GRU\n(基礎(chǔ)版)] as DL_GRU_Base
  [Bi-LSTM\n(雙向LSTM)] as DL_BiLSTM
  [Bi-GRU\n(雙向GRU)] as DL_BiGRU
  [Transformer\n(基礎(chǔ)版)] as DL_Transformer_Base
  [BERT\n(基礎(chǔ)版)] as DL_BERT_Base
  [GPT\n(基礎(chǔ)版)] as DL_GPT_Base
  ' 生成模型
  [GAN\n(基礎(chǔ)版)] as DL_GAN_Base
  [DCGAN\n(深度卷積GAN)] as DL_DCGAN
  [WGAN\n(Wasserstein GAN)] as DL_WGAN
  [VAE\n(變分自編碼器)] as DL_VAE_Base
  [CVAE\n(條件VAE)] as DL_CVAE
  ' 遷移學(xué)習(xí)
  [Fine-tuning\n(微調(diào))] as DL_Finetune
  [Feature Extraction\n(特征提取)] as DL_FeatExtract
  [Domain Adaptation\n(域適配)] as DL_DomainAdapt
}

' ===================== 第十層:異常檢測(cè)【9類】 =====================
package "異常檢測(cè)【9類】" {
  [孤立森林\n(IsolationForest)] as AD_IForest
  [局部異常因子\n(LOF)] as AD_LOF
  [OC-SVM\n(單類SVM)] as AD_OCSVM
  [AutoEncoder\n(自編碼器)] as AD_AE
  [RobustPCA\n(魯棒PCA)] as AD_RPCA
  [OneClassRF\n(單類隨機(jī)森林)] as AD_OneClassRF
  [KNN異常檢測(cè)] as AD_KNN
  [GMM異常檢測(cè)] as AD_GMM
  [時(shí)間序列異常\n(MA/EWMA)] as AD_TS_EWMA
}

' ===================== 第十一層:應(yīng)用場(chǎng)景 & 評(píng)估指標(biāo) =====================
package "典型應(yīng)用場(chǎng)景【10類】" {
  [數(shù)值預(yù)測(cè)\n(回歸)] as Scene_Reg
  [二分類\n(如欺詐檢測(cè))] as Scene_Clf_Bin
  [多分類\n(如圖像識(shí)別)] as Scene_Clf_Multi
  [多標(biāo)簽分類] as Scene_Clf_MultiLabel
  [用戶分群\n(聚類)] as Scene_Clust_User
  [異常檢測(cè)\n(風(fēng)控/故障)] as Scene_AD
  [序列預(yù)測(cè)\n(時(shí)間序列)] as Scene_TS
  [推薦系統(tǒng)\n(關(guān)聯(lián)/協(xié)同)] as Scene_Rec
  [強(qiáng)化決策\(yùn)n(游戲/調(diào)度)] as Scene_RL
  [生成任務(wù)\n(圖像/文本)] as Scene_Generate
}

package "模型評(píng)估指標(biāo)【16類】" {
  ' 回歸指標(biāo)
  [MSE] as Metric_MSE
  [RMSE] as Metric_RMSE
  [MAE] as Metric_MAE
  [MAPE] as Metric_MAPE
  [R2] as Metric_R2
  ' 分類指標(biāo)
  [Accuracy] as Metric_ACC
  [Precision] as Metric_Prec
  [Recall] as Metric_Recall
  [F1-Score] as Metric_F1
  [AUC-ROC] as Metric_AUC
  [AUC-PR] as Metric_AUCPR
  ' 聚類指標(biāo)
  [輪廓系數(shù)] as Metric_Silhouette
  [CH指數(shù)] as Metric_CH
  [DB指數(shù)] as Metric_DB
  ' 強(qiáng)化學(xué)習(xí)指標(biāo)
  [累計(jì)獎(jiǎng)勵(lì)] as Metric_RL_Reward
  [勝率] as Metric_RL_Win
  ' 生成模型指標(biāo)
  [Inception Score] as Metric_Gen_IS
  [FID] as Metric_Gen_FID
}

' ===================== 核心流程關(guān)系(算法間繼承/改進(jìn)/衍生) =====================
' 1. 數(shù)據(jù)預(yù)處理 → 所有算法層
Miss_Fill --> Miss_Interp : 基礎(chǔ)填充→高級(jí)填充
Miss_Interp --> Miss_MICE : 插值→模型填充
Outlier_IQR --> Outlier_Detect : 統(tǒng)計(jì)法→檢測(cè)法
Transform_Basic --> Transform_Power : 基礎(chǔ)變換→冪變換
Encode_Label --> Encode_Onehot : 標(biāo)簽→獨(dú)熱
Encode_Onehot --> Encode_Target : 獨(dú)熱→目標(biāo)編碼
Norm_MinMax --> Norm_Zscore : 歸一化→標(biāo)準(zhǔn)化
FS_Filter --> FS_Wrapper : 過濾→包裹法
FS_Wrapper --> FS_Embed : 包裹→嵌入法
Dim_PCA --> Dim_KernelPCA : 線性PCA→核PCA
Dim_TSNE --> Dim_UMAP_Base : TSNE→UMAP(高效版)
Split_Holdout --> Split_CV : 簡(jiǎn)單劃分→交叉驗(yàn)證
Aug_SMOTE --> Aug_Image : 數(shù)值增強(qiáng)→圖像增強(qiáng)

' 2. 傳統(tǒng)統(tǒng)計(jì)學(xué)習(xí) → 監(jiān)督學(xué)習(xí)(基礎(chǔ)→進(jìn)階)
Reg_OLS --> Reg_Ridge : 無正則→L2正則
Reg_Ridge --> Reg_ElasticNet : L2→L1+L2
Clf_Logistic_Bin --> Clf_Logistic_Multi : 二分類→多分類
Clf_LDA --> Clf_QDA : 線性判別→二次判別
TS_AR --> TS_MA : AR→MA
TS_MA --> TS_ARMA : MA→ARMA
TS_ARMA --> TS_ARIMA : ARMA→ARIMA
TS_ARIMA --> TS_SARIMA : ARIMA→季節(jié)性ARIMA

' 3. 樹模型 → 集成學(xué)習(xí)(基礎(chǔ)→改進(jìn))
Tree_ID3 --> Tree_C45 : ID3→C4.5(信息增益率)
Tree_C45 --> Tree_CART : C4.5→CART(基尼系數(shù))
Tree_CART --> Ensemble_RF_Base : 單樹→隨機(jī)森林
Ensemble_RF_Base --> Ensemble_ExtraTrees : RF→極端隨機(jī)樹
Tree_CART --> Ensemble_GBDT_Base : 單樹→GBDT
Ensemble_GBDT_Base --> Ensemble_XGB_Base : GBDT→XGBoost
Ensemble_XGB_Base --> Ensemble_XGB_Miss : 基礎(chǔ)XGB→缺失值優(yōu)化
Ensemble_XGB_Base --> Ensemble_XGB_Col : 基礎(chǔ)XGB→列采樣
Ensemble_XGB_Base --> Ensemble_XGB_EarlyStop : 基礎(chǔ)XGB→早停
Ensemble_XGB_Base --> Ensemble_XGB_LR : XGB→XGB+LR
Ensemble_GBDT_Base --> Ensemble_LGB_Base : GBDT→LightGBM
Ensemble_LGB_Base --> Ensemble_LGB_Hist : 基礎(chǔ)LGB→直方圖優(yōu)化
Ensemble_LGB_Base --> Ensemble_LGB_EFB : LGB→互斥特征捆綁
Ensemble_LGB_Base --> Ensemble_LGB_Reg : LGB→正則化
Ensemble_LGB_Base --> Ensemble_LGB_CatB : LGB→LGB+CatBoost
Ensemble_Ada_Base --> Ensemble_Ada_Real : 基礎(chǔ)Ada→RealAda
Ensemble_Ada_Base --> Ensemble_Ada_Multi : 基礎(chǔ)Ada→多分類Ada
Ensemble_GB_Base --> Ensemble_SGB : GB→隨機(jī)GB
Ensemble_SGB --> Ensemble_HGB : 隨機(jī)GB→直方圖GB
Ensemble_Vote_Hard --> Ensemble_Vote_Soft : 硬投票→軟投票
Ensemble_Bag_Base --> Ensemble_Bag_Paste : Bagging→Pasting
Ensemble_Bag_Base --> Ensemble_Bag_Patch : Bagging→RandomPatches
Ensemble_Stack_Single --> Ensemble_Stack_Multi : 單層Stack→多層Stack
Ensemble_Blend_Base --> Ensemble_Blend_Weight : 基礎(chǔ)Blend→加權(quán)Blend
Ensemble_RF_Base --> Ensemble_RF_GBDT : RF→RF+GBDT堆疊
Ensemble_Ada_Base --> Ensemble_Ada_SVM : Ada→Ada+SVM

' 4. 核方法/近鄰 → 改進(jìn)關(guān)系
KNN_Base --> KNN_Weight : 基礎(chǔ)KNN→加權(quán)KNN
KNN_Base --> KNN_KDTree : 基礎(chǔ)KNN→KD樹優(yōu)化
KNN_KDTree --> KNN_BallTree : KD樹→球樹(高維)
KNN_Base --> KNN_Cosine : 歐氏距離→余弦距離
SVM_Linear --> SVM_Poly : 線性核→多項(xiàng)式核
SVM_Poly --> SVM_RBF : 多項(xiàng)式核→高斯核
SVM_RBF --> SVM_Laplace : 高斯核→拉普拉斯核
SVM_Linear --> SVM_SoftLinear : 硬間隔→軟間隔
SVM_Linear --> SVM_Multi_OVA : 二分類→OVA多分類
SVM_Multi_OVA --> SVM_Multi_OVO : OVA→OVO多分類
SVM_Linear --> SVM_LS : 標(biāo)準(zhǔn)SVM→最小二乘SVM
SVM_C --> SVM_Nu : C-SVM→Nu-SVM
SVM_Linear --> SVM_OneClass : 監(jiān)督SVM→單類SVM

' 5. 無監(jiān)督聚類 → 改進(jìn)關(guān)系
Clust_KMeans_Base --> Clust_KMeans_Plus : 基礎(chǔ)KMeans→KMeans++
Clust_KMeans_Plus --> Clust_MiniKMeans : KMeans++→迷你批處理
Clust_KMeans_Base --> Clust_KMedoids_PAM : KMeans→KMedoids
Clust_KMedoids_PAM --> Clust_KMedians : KMedoids→KMedians
Clust_Hier_Agg --> Clust_Hier_Single : 凝聚聚類→單鏈接
Clust_Hier_Single --> Clust_Hier_Complete : 單鏈接→全鏈接
Clust_Hier_Complete --> Clust_Hier_Avg : 全鏈接→平均鏈接
Clust_Hier_Avg --> Clust_Hier_Ward : 平均鏈接→沃德法
Clust_DBSCAN_Base --> Clust_OPTICS_Base : DBSCAN→OPTICS
Clust_OPTICS_Base --> Clust_OPTICS_Imp : OPTICS→改進(jìn)版
Clust_DBSCAN_Base --> Clust_HDBSCAN : DBSCAN→層次DBSCAN
Clust_MeanShift --> Clust_MeanShift_Band : 均值漂移→帶寬優(yōu)化
Clust_GMM_Base --> Clust_GMM_EM : 基礎(chǔ)GMM→EM優(yōu)化
Clust_GMM_EM --> Clust_BayesGMM : GMM→貝葉斯GMM

' 6. 關(guān)聯(lián)規(guī)則 → 改進(jìn)關(guān)系
AR_Apriori_Base --> AR_Apriori_Prune : 基礎(chǔ)Apriori→剪枝優(yōu)化
AR_Apriori_Base --> AR_FPG_Base : Apriori→FP-Growth
AR_FPG_Base --> AR_FPG_Parallel : FP-Growth→并行版
AR_Eclat_Base --> AR_Eclat_Vert : 基礎(chǔ)Eclat→垂直數(shù)據(jù)優(yōu)化
AR_PrefixSpan --> AR_SPADE : PrefixSpan→SPADE
AR_SPADE --> AR_GSP : SPADE→GSP

' 7. 半監(jiān)督學(xué)習(xí) → 改進(jìn)關(guān)系
SSL_Pseudo_Base --> SSL_Pseudo_Conf : 基礎(chǔ)偽標(biāo)簽→置信度過濾
SSL_SelfTrain_Base --> SSL_SelfTrain_Multi : 基礎(chǔ)自訓(xùn)練→多模型
SSL_CoTrain_Base --> SSL_CoTrain_Plus : 基礎(chǔ)協(xié)同訓(xùn)練→Co-Training+
SSL_CoTrain_Plus --> SSL_TriTrain : Co-Training+→Tri-Training
SSL_LabelProp --> SSL_LabelSpread : 標(biāo)簽傳播→標(biāo)簽擴(kuò)散
SSL_S3VM --> SSL_KMeans : 半監(jiān)督SVM→半監(jiān)督KMeans

' 8. 強(qiáng)化學(xué)習(xí) → 改進(jìn)關(guān)系
RL_Q_Base --> RL_SARSA_Base : Q-Learning→SARSA
RL_SARSA_Base --> RL_SARSA_Lambda : SARSA→SARSA(λ)
RL_Q_Base --> RL_DQN_Base : Q-Learning→DQN
RL_DQN_Base --> RL_DDQN : DQN→Double DQN
RL_DDQN --> RL_DuelDQN : Double DQN→Dueling DQN
RL_DuelDQN --> RL_PDQN : Dueling DQN→優(yōu)先經(jīng)驗(yàn)回放DQN
RL_PDQN --> RL_RainbowDQN : 優(yōu)先DQN→Rainbow DQN
RL_PG_Base --> RL_REINFORCE : PG→REINFORCE
RL_REINFORCE --> RL_AC_Base : REINFORCE→Actor-Critic
RL_AC_Base --> RL_A2C : AC→同步AC
RL_A2C --> RL_A3C : A2C→異步AC
RL_AC_Base --> RL_PPO_Base : AC→PPO
RL_PPO_Base --> RL_TRPO : PPO→TRPO
RL_DDPG --> RL_TD3 : DDPG→TD3
RL_TD3 --> RL_SAC : TD3→SAC
RL_DDPG --> RL_MADDPG : DDPG→多智能體DDPG
RL_PPO_Base --> RL_MAPPO : PPO→多智能體PPO

' 9. 深度學(xué)習(xí) → 改進(jìn)關(guān)系
DL_MLP_Base --> DL_MLP_Dropout : 基礎(chǔ)MLP→帶Dropout
DL_CNN_LeNet --> DL_CNN_AlexNet : LeNet→AlexNet
DL_CNN_AlexNet --> DL_CNN_VGG : AlexNet→VGG
DL_CNN_VGG --> DL_CNN_ResNet : VGG→ResNet(殘差)
DL_CNN_ResNet --> DL_CNN_ResNeXt : ResNet→ResNeXt
DL_CNN_ResNeXt --> DL_CNN_DenseNet : ResNeXt→DenseNet
DL_CNN_DenseNet --> DL_CNN_EffNet : DenseNet→EfficientNet
DL_RNN_Base --> DL_LSTM_Base : RNN→LSTM
DL_LSTM_Base --> DL_GRU_Base : LSTM→GRU
DL_LSTM_Base --> DL_BiLSTM : LSTM→雙向LSTM
DL_GRU_Base --> DL_BiGRU : GRU→雙向GRU
DL_Transformer_Base --> DL_BERT_Base : Transformer→BERT
DL_Transformer_Base --> DL_GPT_Base : Transformer→GPT
DL_GAN_Base --> DL_DCGAN : GAN→DCGAN
DL_DCGAN --> DL_WGAN : DCGAN→WGAN
DL_VAE_Base --> DL_CVAE : VAE→條件VAE
DL_Finetune --> DL_FeatExtract : 微調(diào)→特征提取
DL_FeatExtract --> DL_DomainAdapt : 特征提取→域適配

' 10. 異常檢測(cè) → 算法關(guān)聯(lián)
AD_IForest --> AD_LOF : 孤立森林→LOF
AD_OCSVM --> AD_AE : 單類SVM→自編碼器
AD_RPCA --> AD_IForest : 魯棒PCA→孤立森林
AD_KNN --> AD_GMM : KNN異?!鶪MM異常
AD_TS_EWMA --> AD_AE : 時(shí)間序列統(tǒng)計(jì)→自編碼器

' 11. 算法 → 應(yīng)用場(chǎng)景
Reg_OLS --> Scene_Reg : 線性回歸→數(shù)值預(yù)測(cè)
Ensemble_XGB_Base --> Scene_Reg : XGB→數(shù)值預(yù)測(cè)
Clf_Logistic_Bin --> Scene_Clf_Bin : 邏輯回歸→二分類
Ensemble_LGB_Base --> Scene_Clf_Multi : LGB→多分類
SVM_Multi_OVA --> Scene_Clf_MultiLabel : SVM→多標(biāo)簽分類
Clust_KMeans_Plus --> Scene_Clust_User : KMeans++→用戶分群
AD_IForest --> Scene_AD : 孤立森林→異常檢測(cè)
TS_ARIMA --> Scene_TS : ARIMA→序列預(yù)測(cè)
AR_FPG_Base --> Scene_Rec : FP-Growth→推薦系統(tǒng)
RL_PPO_Base --> Scene_RL : PPO→強(qiáng)化決策
DL_GAN_Base --> Scene_Generate : GAN→生成任務(wù)

' 12. 應(yīng)用場(chǎng)景 → 評(píng)估指標(biāo)
Scene_Reg --> Metric_MSE : 回歸→MSE
Scene_Reg --> Metric_RMSE : 回歸→RMSE
Scene_Reg --> Metric_MAE : 回歸→MAE
Scene_Reg --> Metric_R2 : 回歸→R2
Scene_Clf_Bin --> Metric_ACC : 二分類→ACC
Scene_Clf_Bin --> Metric_Prec : 二分類→Precision
Scene_Clf_Bin --> Metric_Recall : 二分類→Recall
Scene_Clf_Bin --> Metric_F1 : 二分類→F1
Scene_Clf_Bin --> Metric_AUC : 二分類→AUC
Scene_Clust_User --> Metric_Silhouette : 聚類→輪廓系數(shù)
Scene_Clust_User --> Metric_CH : 聚類→CH指數(shù)
Scene_RL --> Metric_RL_Reward : 強(qiáng)化學(xué)習(xí)→累計(jì)獎(jiǎng)勵(lì)
Scene_Generate --> Metric_Gen_IS : 生成模型→Inception Score
Scene_Generate --> Metric_Gen_FID : 生成模型→FID

' ===================== 補(bǔ)充注釋(關(guān)鍵算法分支) =====================
note right of Ensemble_XGB_Base
  <b>樹模型衍生鏈:</b>
  ID3 → C4.5 → CART → GBDT → XGBoost → LightGBM → CatBoost
  核心改進(jìn):正則化、缺失值處理、直方圖優(yōu)化、類別特征適配
end note

note bottom of RL_DQN_Base
  <b>值迭代RL衍生鏈:</b>
  Q-Learning → SARSA → DQN → Double DQN → Dueling DQN → Rainbow DQN
  核心改進(jìn):經(jīng)驗(yàn)回放、目標(biāo)網(wǎng)絡(luò)、優(yōu)先采樣、多分支融合
end note

note left of Clust_KMeans_Base
  <b>聚類算法選型邏輯:</b>
  ? 球形簇→K-Means++
  ? 任意形狀簇→DBSCAN/HDBSCAN
  ? 概率軟聚類→GMM
  ? 高維數(shù)據(jù)→譜聚類/AffinityPropagation
end note

' ===================== 全局圖例 =====================
legend right
  <b>圖例說明:</b>
  ? 實(shí)線箭頭:算法繼承/改進(jìn)/衍生關(guān)系(左→右:基礎(chǔ)→進(jìn)階)
  ? 算法分層:預(yù)處理→統(tǒng)計(jì)學(xué)習(xí)→監(jiān)督/無監(jiān)督→半監(jiān)督/強(qiáng)化/深度學(xué)習(xí)→異常檢測(cè)
  ? 覆蓋規(guī)模:199+算法(含基礎(chǔ)版/改進(jìn)版/工程化變體)
  ? 評(píng)估邏輯:按任務(wù)類型(回歸/分類/聚類/RL/生成)匹配專屬指標(biāo)
end legend

@enduml


2.2.3 渲染圖表

方式 1:快捷鍵渲染(推薦)

  • 將光標(biāo)定位到代碼文件內(nèi),按下Alt+D(Windows/Linux)或Option+D(macOS),插件會(huì)自動(dòng)渲染并在右側(cè)打開預(yù)覽窗口。

方式 2:右鍵菜單渲染

  • 在代碼編輯區(qū)右鍵 → 選擇「PlantUML: Preview Current Diagram」,即可打開預(yù)覽窗口。

方式 3:實(shí)時(shí)預(yù)覽

  • 插件默認(rèn)開啟 “實(shí)時(shí)預(yù)覽”,修改代碼后預(yù)覽窗口會(huì)自動(dòng)刷新,無需手動(dòng)重新渲染。


    image.png

2.3 導(dǎo)出高清圖表

  1. 在預(yù)覽窗口右上角,點(diǎn)擊「導(dǎo)出」圖標(biāo)(下載樣式);
  2. 選擇輸出格式:
    • PNG:推薦,高清位圖,適合嵌入 PPT/Word;
    • SVG:矢量圖,無限縮放不失真,適合大屏展示 / 網(wǎng)頁(yè)嵌入;
    • PDF:文檔格式,適合打印 / 存檔;
  3. 選擇保存路徑,點(diǎn)擊「保存」即可。

2.4 常見問題解決

問題 1:預(yù)覽窗口空白 / 提示 “Graphviz not found”

  • 原因:Graphviz 未安裝或環(huán)境變量未生效;
  • 解決:
    1. 確認(rèn) Graphviz 已安裝(dot -version驗(yàn)證);
    2. 重啟 VSCode(環(huán)境變量生效需要重啟);
    3. 若仍報(bào)錯(cuò),手動(dòng)配置 Graphviz 路徑:
      • VSCode 設(shè)置 → 搜索PlantUML: Dot Path;
      • 填寫 Graphviz 的dot.exe路徑(如 Windows:C:\Program Files\Graphviz\bin\dot.exe)。

問題 2:渲染速度慢 / 圖表顯示不全

  • 原因:算法全景圖組件多(199 + 算法),渲染負(fù)載高;
  • 解決:
    1. 關(guān)閉 VSCode 其他無關(guān)插件;
    2. 降低渲染分辨率(臨時(shí)):設(shè)置 → 搜索PlantUML: Preview Scale,調(diào)整為 0.8;
    3. 導(dǎo)出時(shí)選擇 SVG 格式(渲染更快,且無分辨率問題)。

問題 3:中文亂碼

  • 原因:VSCode 默認(rèn)字體不支持中文;
  • 解決:
    1. VSCode 設(shè)置 → 搜索Font Family;
    2. 添加中文字體(如"Microsoft YaHei, Consolas, 'Courier New', monospace");
    3. 重啟 VSCode。

三、方案 2:PlantText 在線工具(免安裝,快速渲染)

3.1 工具介紹

PlantText 是 PlantUML 官方推薦的在線渲染工具,無需安裝任何軟件,僅需瀏覽器即可完成代碼編輯、渲染、導(dǎo)出,適合臨時(shí)使用或無本地環(huán)境的場(chǎng)景。

3.2 渲染步驟

3.2.1 打開工具并清空默認(rèn)代碼

  1. 打開瀏覽器,訪問https://www.planttext.com/;
  2. 頁(yè)面左側(cè)是代碼編輯區(qū),默認(rèn)有示例代碼,全選(Ctrl+A)并刪除。

3.2.2 粘貼代碼并渲染

  1. 將上文修正后的完整 PlantUML 代碼粘貼到左側(cè)編輯區(qū);
  2. 點(diǎn)擊編輯區(qū)上方的「Refresh」按鈕(或按Ctrl+R),右側(cè)會(huì)自動(dòng)渲染圖表;
    • 首次渲染可能需要 3-5 秒(加載 Graphviz 依賴),耐心等待。

3.2.3 導(dǎo)出圖表

  1. 渲染完成后,點(diǎn)擊右側(cè)預(yù)覽區(qū)下方的「Export」按鈕;
  2. 選擇輸出格式:
    • PNG:高清位圖;
    • SVG:矢量圖(推薦);
    • PDF:文檔格式;
    • TXT:僅導(dǎo)出代碼(無意義);
  3. 點(diǎn)擊對(duì)應(yīng)格式,瀏覽器會(huì)自動(dòng)下載文件。

3.3 優(yōu)勢(shì)與局限

優(yōu)勢(shì)

  1. 免安裝:無需配置 Graphviz/VSCode,開箱即用;
  2. 跨平臺(tái):支持所有瀏覽器(Chrome/Firefox/Edge);
  3. 自動(dòng)保存:代碼編輯區(qū)會(huì)自動(dòng)保存(基于瀏覽器緩存)。

局限

  1. 渲染速度:比本地插件慢(尤其復(fù)雜圖表);
  2. 代碼長(zhǎng)度限制:免費(fèi)版支持最大 1000 行代碼(上文代碼約 800 行,可正常使用);
  3. 隱私問題:代碼會(huì)臨時(shí)存儲(chǔ)在服務(wù)器,敏感場(chǎng)景建議用本地方案。

3.4 常見問題解決

問題 1:渲染后圖表排版錯(cuò)亂

  • 原因:在線工具的 Graphviz 版本與本地不一致;
  • 解決:
    1. 點(diǎn)擊編輯區(qū)上方的「Settings」按鈕;
    2. 在「Graphviz Engine」中切換引擎(如dot/neato/fdp),推薦dot(與本地一致);
    3. 重新點(diǎn)擊「Refresh」渲染。

問題 2:導(dǎo)出的 PNG 模糊

  • 原因:在線工具默認(rèn) PNG 分辨率較低;
  • 解決:優(yōu)先導(dǎo)出 SVG 格式,再用矢量圖工具(如 Inkscape/Illustrator)轉(zhuǎn)為高清 PNG。

四、渲染效果優(yōu)化建議

無論使用哪種方案,針對(duì)上文的 “機(jī)器學(xué)習(xí) 199 + 算法體系全景圖”,可通過以下方式優(yōu)化渲染效果:

  1. 調(diào)整布局:若圖表過寬 / 過長(zhǎng),可在代碼開頭添加scale 0.8(縮小整體比例);
  2. 顏色適配:若導(dǎo)出后顏色偏淡,可在代碼中調(diào)整skinparam的顏色值(如BorderColor #000000加深邊框);
  3. 字體優(yōu)化:確保代碼中指定中文字體(如FontName "Microsoft YaHei"),避免中文顯示異常;
  4. 分模塊渲染:若整體渲染卡頓,可將代碼拆分為 “數(shù)據(jù)預(yù)處理層”“監(jiān)督學(xué)習(xí)層” 等子模塊,單獨(dú)渲染后拼接。

五、總結(jié)

方案 優(yōu)勢(shì) 劣勢(shì) 適用場(chǎng)景
VSCode + PlantUML 渲染快、高清、支持實(shí)時(shí)編輯 需要安裝配置環(huán)境 日常開發(fā) / 高頻使用 / 復(fù)雜圖表
PlantText 在線工具 免安裝、跨平臺(tái)、操作簡(jiǎn)單 速度慢、分辨率有限、隱私風(fēng)險(xiǎn) 臨時(shí)使用 / 快速預(yù)覽 / 簡(jiǎn)單圖表

對(duì)于上文的 “機(jī)器學(xué)習(xí) 199 + 算法體系全景圖”,優(yōu)先推薦 VSCode + PlantUML 插件,可獲得最佳的渲染效果和操作體驗(yàn);若僅需快速預(yù)覽,可選擇 PlantText 在線工具。

分享

詳細(xì)介紹一下Graphviz的安裝過程

如何在PlantText在線工具中渲染機(jī)器學(xué)習(xí)算法全景圖?

機(jī)器學(xué)習(xí)算法全景圖有哪些應(yīng)用場(chǎng)景?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容