376 lines
16 KiB
YAML
376 lines
16 KiB
YAML
classification_algorithms:
|
||
LogisticRegression:
|
||
principle: "逻辑回归是一种线性分类模型,使用 Sigmoid 函数将线性回归的输出映射到 [0,1] 之间,适用于二分类问题。"
|
||
advantages:
|
||
- "计算效率高,适用于大规模数据。"
|
||
- "可解释性强,系数可用于判断特征的重要性。"
|
||
- "对线性可分数据表现良好。"
|
||
disadvantages:
|
||
- "对非线性数据的处理能力较弱。"
|
||
- "容易受到异常值的影响。"
|
||
applicable_scenarios:
|
||
- "医学诊断,如是否患有某种疾病。"
|
||
- "信用风险评估,如贷款违约预测。"
|
||
- "市场营销中的客户分类。"
|
||
|
||
SVC:
|
||
principle: "支持向量机(SVM)通过寻找最大化类别间隔的超平面进行分类,支持线性和非线性分类(通过核函数)。"
|
||
advantages:
|
||
- "适用于高维数据,尤其是样本较少的情况。"
|
||
- "通过核函数可以处理非线性分类问题。"
|
||
disadvantages:
|
||
- "对大规模数据的计算复杂度较高。"
|
||
- "对参数和核函数的选择较敏感。"
|
||
applicable_scenarios:
|
||
- "文本分类,如垃圾邮件检测。"
|
||
- "图像识别,如手写数字分类。"
|
||
|
||
SVDD:
|
||
principle: "支持向量数据描述(SVDD)是一种基于支持向量机的单类分类方法,通过寻找最小球面来包围正常数据点,从而检测异常值。"
|
||
advantages:
|
||
- "适用于异常检测和单类分类问题。"
|
||
- "能够有效应对非线性分布数据。"
|
||
disadvantages:
|
||
- "对参数选择较敏感,训练时间较长。"
|
||
applicable_scenarios:
|
||
- "异常检测,如信用卡欺诈检测。"
|
||
- "工业设备故障检测。"
|
||
|
||
DecisionTreeClassifier:
|
||
principle: "决策树基于特征的划分规则构建一棵树,通过树结构进行分类。"
|
||
advantages:
|
||
- "可解释性强,易于理解和可视化。"
|
||
- "对数据的分布和尺度不敏感,无需归一化。"
|
||
disadvantages:
|
||
- "容易过拟合,泛化能力较弱。"
|
||
- "对噪声数据较敏感。"
|
||
applicable_scenarios:
|
||
- "客户细分,如电商用户分类。"
|
||
- "医学诊断,如肿瘤良恶性分类。"
|
||
|
||
RandomForestClassifier:
|
||
principle: "随机森林是一种集成学习方法,通过构建多个决策树并投票或平均进行分类,提高模型的稳定性和准确性。"
|
||
advantages:
|
||
- "较强的泛化能力,能有效防止过拟合。"
|
||
- "可用于高维数据,支持特征重要性评估。"
|
||
disadvantages:
|
||
- "训练时间较长,预测速度相对较慢。"
|
||
applicable_scenarios:
|
||
- "信用风险评估。"
|
||
- "医疗数据分析。"
|
||
|
||
XGBClassifier:
|
||
principle: "XGBoost(Extreme Gradient Boosting)是一种基于梯度提升树(GBDT)的改进算法,具有更强的正则化和并行处理能力。"
|
||
advantages:
|
||
- "计算效率高,支持并行计算。"
|
||
- "具有内置的缺失值处理能力。"
|
||
disadvantages:
|
||
- "参数较多,调优较复杂。"
|
||
applicable_scenarios:
|
||
- "金融风险预测。"
|
||
- "搜索引擎排序。"
|
||
|
||
AdaBoostClassifier:
|
||
principle: "AdaBoost 是一种提升方法,它通过组合多个弱分类器来提高整体分类精度,赋予错误分类样本更高的权重。"
|
||
advantages:
|
||
- "能有效提升弱分类器的性能。"
|
||
- "适用于处理非均衡数据。"
|
||
disadvantages:
|
||
- "对噪声数据敏感。"
|
||
applicable_scenarios:
|
||
- "人脸检测。"
|
||
- "信用评分模型。"
|
||
|
||
CatBoostClassifier:
|
||
principle: "CatBoost 是一种专为类别特征优化的梯度提升决策树方法,适用于处理高维稀疏数据。"
|
||
advantages:
|
||
- "对类别型特征处理能力强。"
|
||
- "训练速度快,支持 GPU 加速。"
|
||
disadvantages:
|
||
- "需要较长的训练时间。"
|
||
applicable_scenarios:
|
||
- "推荐系统。"
|
||
- "搜索排序。"
|
||
|
||
LGBMClassifier:
|
||
principle: "LightGBM 是一种基于直方图优化的梯度提升树方法,优化了计算效率,适用于大规模数据。"
|
||
advantages:
|
||
- "计算速度快,适用于大规模数据集。"
|
||
- "对高维特征数据处理效果良好。"
|
||
disadvantages:
|
||
- "对小数据集容易过拟合。"
|
||
applicable_scenarios:
|
||
- "广告点击率预测。"
|
||
- "金融风控。"
|
||
|
||
GaussianNB:
|
||
principle: "高斯朴素贝叶斯基于贝叶斯定理,假设特征服从高斯分布进行分类。"
|
||
advantages:
|
||
- "计算效率高,适用于大规模数据。"
|
||
- "对小数据集具有良好效果。"
|
||
disadvantages:
|
||
- "对特征的独立性假设较强,可能不适用于某些数据。"
|
||
applicable_scenarios:
|
||
- "文本分类。"
|
||
- "医疗诊断。"
|
||
|
||
KNeighborsClassifier:
|
||
principle: "K 近邻(KNN)是一种基于距离度量的分类算法,通过找到最近的 K 个邻居来进行分类。"
|
||
advantages:
|
||
- "易于理解,实现简单。"
|
||
- "对异常值不敏感。"
|
||
disadvantages:
|
||
- "计算复杂度高,预测速度较慢。"
|
||
applicable_scenarios:
|
||
- "推荐系统。"
|
||
- "生物信息学分类。"
|
||
|
||
MLPClassifier:
|
||
principle: "多层感知机(MLP)是一种前馈神经网络,通过多个隐藏层和非线性激活函数实现复杂分类任务。"
|
||
advantages:
|
||
- "能够学习复杂的非线性关系。"
|
||
- "适用于高维数据。"
|
||
disadvantages:
|
||
- "需要大量数据进行训练,容易过拟合。"
|
||
applicable_scenarios:
|
||
- "图像分类。"
|
||
- "语音识别。"
|
||
|
||
GradientBoostingClassifier:
|
||
principle: "梯度提升决策树(GBDT)是一种集成学习方法,通过迭代训练多个决策树,使模型不断优化误差。"
|
||
advantages:
|
||
- "较强的泛化能力,适用于大规模数据集。"
|
||
- "支持特征重要性分析。"
|
||
disadvantages:
|
||
- "训练时间较长,调优复杂。"
|
||
applicable_scenarios:
|
||
- "搜索引擎排名。"
|
||
- "金融信用评分。"
|
||
|
||
DNN:
|
||
principle: "深度神经网络(DNN)是一种多层神经网络,通过多层非线性变换提取数据的复杂特征。"
|
||
advantages:
|
||
- "适用于复杂非线性问题。"
|
||
- "能够处理大规模数据。"
|
||
disadvantages:
|
||
- "计算开销大,对硬件要求高。"
|
||
applicable_scenarios:
|
||
- "自动驾驶。"
|
||
- "自然语言处理。"
|
||
|
||
regression_algorithms:
|
||
|
||
LinearRegression:
|
||
principle: "线性回归通过最小化数据点与回归线之间的误差平方和,来拟合一条最佳的直线。"
|
||
advantages:
|
||
- "实现简单,易于理解"
|
||
- "计算效率高,适用于小规模数据集"
|
||
disadvantages:
|
||
- "对异常值敏感"
|
||
- "只能建模线性关系,无法处理非线性数据"
|
||
applicable_scenarios: "适用于线性关系明确,且数据量适中的问题。"
|
||
|
||
PolynomialRegression:
|
||
principle: "多项式回归是线性回归的一种扩展,利用多项式拟合数据,处理非线性关系。"
|
||
advantages:
|
||
- "能够拟合非线性关系"
|
||
- "灵活性强,能够处理复杂数据模式"
|
||
disadvantages:
|
||
- "容易过拟合,特别是在多项式度数较高时"
|
||
- "计算复杂度较高"
|
||
applicable_scenarios: "适用于非线性数据拟合,但需避免过拟合。"
|
||
|
||
Ridge:
|
||
principle: "岭回归在最小化误差的同时,引入L2正则化,约束模型的复杂度。"
|
||
advantages:
|
||
- "有效防止过拟合"
|
||
- "适用于特征多的情况"
|
||
disadvantages:
|
||
- "对于特征相关性较强的数据效果较差"
|
||
- "结果解释性较差"
|
||
applicable_scenarios: "适用于特征多且存在共线性的线性回归问题。"
|
||
|
||
Lasso:
|
||
principle: "Lasso回归通过L1正则化来限制模型的复杂度,可以实现特征选择。"
|
||
advantages:
|
||
- "能够进行特征选择,减少不相关特征"
|
||
- "减少模型的复杂度,避免过拟合"
|
||
disadvantages:
|
||
- "可能会导致某些特征完全被剔除,造成信息丢失"
|
||
- "对于高相关特征可能不稳定"
|
||
applicable_scenarios: "适用于需要特征选择或特征较多的线性回归问题。"
|
||
|
||
ElasticNet:
|
||
principle: "弹性网络回归结合了Lasso回归的L1正则化和岭回归的L2正则化,能够处理更多情况。"
|
||
advantages:
|
||
- "能够处理相关特征,结合L1和L2的优点"
|
||
- "适用于特征数大于样本数的情形"
|
||
disadvantages:
|
||
- "计算复杂度较高"
|
||
- "可能需要调参来获得最佳效果"
|
||
applicable_scenarios: "适用于高维数据,且特征间存在线性相关的情况。"
|
||
|
||
SVR:
|
||
principle: "支持向量回归(SVR)通过在高维空间中寻找一个最优超平面来拟合数据,能够处理非线性回归问题。"
|
||
advantages:
|
||
- "能够处理非线性数据,效果较好"
|
||
- "适用于高维数据"
|
||
disadvantages:
|
||
- "对超参数敏感,调参困难"
|
||
- "计算时间较长,尤其在大数据集上"
|
||
applicable_scenarios: "适用于数据具有非线性关系且数据量适中的问题。"
|
||
|
||
DecisionTreeRegressor:
|
||
principle: "决策树回归通过构建树状结构来拟合数据,节点上的划分基于特征的不同值。"
|
||
advantages:
|
||
- "易于理解和可视化"
|
||
- "可以处理非线性关系"
|
||
disadvantages:
|
||
- "容易过拟合"
|
||
- "对噪声数据敏感"
|
||
applicable_scenarios: "适用于非线性回归,且对数据的复杂性有较高的容忍度。"
|
||
|
||
RandomForestRegressor:
|
||
principle: "随机森林回归通过集成多棵决策树的结果来提高预测精度,能够处理高维数据。"
|
||
advantages:
|
||
- "不容易过拟合,适用于复杂问题"
|
||
- "能够处理缺失数据"
|
||
disadvantages:
|
||
- "计算复杂度较高"
|
||
- "结果难以解释"
|
||
applicable_scenarios: "适用于复杂的回归问题,尤其是特征维度较高的场景。"
|
||
|
||
XGBRegressor:
|
||
principle: "XGBoost回归通过梯度提升算法(GBDT)优化损失函数,通过树的组合来预测目标值。"
|
||
advantages:
|
||
- "预测精度高,效果好"
|
||
- "处理大数据能力强"
|
||
disadvantages:
|
||
- "需要较长的训练时间"
|
||
- "对超参数敏感"
|
||
applicable_scenarios: "适用于大规模数据集且对预测精度要求较高的问题。"
|
||
|
||
AdaBoostRegressor:
|
||
principle: "AdaBoost回归通过多次训练弱学习器并加权组合,改进模型的预测能力。"
|
||
advantages:
|
||
- "能够提高弱学习器的预测精度"
|
||
- "对噪声较为鲁棒"
|
||
disadvantages:
|
||
- "容易受到异常值影响"
|
||
- "对某些问题的性能较差"
|
||
applicable_scenarios: "适用于弱学习器的组合优化问题,特别是样本不平衡的场景。"
|
||
|
||
CatBoostRegressor:
|
||
principle: "CatBoost回归基于梯度提升决策树(GBDT),特别优化了类别特征的处理。"
|
||
advantages:
|
||
- "能够处理类别特征,减少数据预处理"
|
||
- "高效且精度较高"
|
||
disadvantages:
|
||
- "训练时间较长"
|
||
- "参数调节较为复杂"
|
||
applicable_scenarios: "适用于包含大量类别特征的数据集,且数据量较大的问题。"
|
||
|
||
LGBMRegressor:
|
||
principle: "LightGBM回归基于梯度提升决策树,使用了直方图优化算法以加速训练过程。"
|
||
advantages:
|
||
- "训练速度快,能够处理大规模数据"
|
||
- "内存占用较少,适合高维数据"
|
||
disadvantages:
|
||
- "需要调参以获得最佳效果"
|
||
- "模型解释性较差"
|
||
applicable_scenarios: "适用于大规模数据集,尤其是处理海量数据时效果优越。"
|
||
|
||
MLPRegressor:
|
||
principle: "多层感知机回归是基于神经网络的回归模型,通过多个隐层来拟合复杂的非线性关系。"
|
||
advantages:
|
||
- "能够处理复杂的非线性关系"
|
||
- "在大数据和高维数据中表现良好"
|
||
disadvantages:
|
||
- "训练时间较长,且对计算资源要求较高"
|
||
- "容易过拟合,特别是在数据较少时"
|
||
applicable_scenarios: "适用于需要捕捉复杂非线性关系的回归问题,尤其在数据量大时效果较好。"
|
||
|
||
clustering_algorithms:
|
||
KMeans:
|
||
principle: "K均值聚类通过最小化样本点到其最近簇中心的距离来将数据分为K个簇。"
|
||
advantages:
|
||
- "实现简单,计算效率高"
|
||
- "适用于大数据集"
|
||
disadvantages:
|
||
- "需要预先指定簇的数量K"
|
||
- "对初始中心点敏感,容易受到噪声影响"
|
||
applicable_scenarios: "适用于簇形状较为规则且数据量较大的聚类问题。"
|
||
|
||
KMeansPlusPlus:
|
||
principle: "K-Means++是一种改进的初始化方法,通过选择更远离当前簇中心的样本点作为初始中心,提升K均值聚类的效果。"
|
||
advantages:
|
||
- "比传统K均值方法更稳定"
|
||
- "可以减少聚类结果的变异性"
|
||
disadvantages:
|
||
- "依然存在需要指定K的问题"
|
||
- "初始化仍然可能影响最终结果"
|
||
applicable_scenarios: "适用于K均值聚类方法,并且希望改进初始中心选择的场景。"
|
||
|
||
# 没实现这个方法
|
||
# HierarchicalKMeans:
|
||
# principle: "层次化K均值结合了层次聚类和K均值聚类的方法,逐步将样本合并到已有簇中,形成层次化结构。"
|
||
# advantages:
|
||
# - "能够自动确定簇的数量"
|
||
# - "生成的树状图有助于理解数据结构"
|
||
# disadvantages:
|
||
# - "计算量大,尤其是在数据量较大时"
|
||
# - "对噪声和离群点敏感"
|
||
# applicable_scenarios: "适用于不确定簇的数量且数据结构较复杂的情况。"
|
||
|
||
FCM:
|
||
principle: "模糊C均值(FCM)允许每个数据点属于多个簇,基于隶属度来进行聚类。"
|
||
advantages:
|
||
- "能够处理数据点属于多个簇的情况"
|
||
- "适用于软聚类问题"
|
||
disadvantages:
|
||
- "对初始簇中心和隶属度设置较为敏感"
|
||
- "计算量大,尤其是簇数较多时"
|
||
applicable_scenarios: "适用于数据点可以属于多个簇的情况,如图像分割等问题。"
|
||
|
||
AgglomerativeClustering:
|
||
principle: "层次聚类通过将相似度较高的样本逐步合并,最终形成树状结构(树状图)。"
|
||
advantages:
|
||
- "无需预先指定簇的数量"
|
||
- "能够处理任意形状的簇"
|
||
disadvantages:
|
||
- "计算复杂度较高,数据量大时效率低"
|
||
- "容易受到噪声的影响"
|
||
applicable_scenarios: "适用于不确定簇的数量且簇的形状较复杂的场景。"
|
||
|
||
DBSCAN:
|
||
principle: "DBSCAN基于密度的聚类方法,通过寻找密集区域来划分簇,对于稀疏区域则标记为噪声点。"
|
||
advantages:
|
||
- "能够发现任意形状的簇"
|
||
- "不需要预先指定簇的数量,能够自动识别噪声"
|
||
disadvantages:
|
||
- "对参数设置敏感,尤其是邻域半径和最小样本数"
|
||
- "不适用于簇大小差异过大的数据集"
|
||
applicable_scenarios: "适用于具有明显密度差异的数据集,尤其适合处理含有噪声的数据。"
|
||
|
||
GaussianMixture:
|
||
principle: "高斯混合模型(GMM)假设数据是由多个高斯分布的混合体组成,通过EM算法估计每个数据点的隶属概率。"
|
||
advantages:
|
||
- "能够处理重叠的簇"
|
||
- "可以自动估计每个簇的分布"
|
||
disadvantages:
|
||
- "计算复杂度高,容易陷入局部最优解"
|
||
- "需要预先指定簇的数量"
|
||
applicable_scenarios: "适用于需要拟合混合高斯分布的数据,尤其适合处理连续数据。"
|
||
|
||
SpectralClustering:
|
||
principle: "谱聚类通过构造样本之间的相似度矩阵,并计算其特征值与特征向量来实现聚类。"
|
||
advantages:
|
||
- "能够处理复杂的簇结构"
|
||
- "适用于非凸形状的簇"
|
||
disadvantages:
|
||
- "计算量大,尤其在大数据集上效率低"
|
||
- "需要计算样本间的相似度矩阵,存储和计算成本较高"
|
||
applicable_scenarios: "适用于样本之间相似度较强,但簇形状复杂或非凸的聚类任务。"
|
||
|
||
|