问:如果时间有限,需要放弃一些过时算法,请给所有你知道的算法排个序,哪些优先放弃
在时间有限的情况下,可以按照以下优先级放弃或延后学习某些算法。排序基于实际应用频率、替代算法的有效性以及基础重要性(从最优先放弃到尽量保留):
第一优先级:可放弃的算法
- 完全过时且替代性强的算法
单层感知机(Perceptron):已被多层感知机(MLP)和深度学习取代,教学价值有限。
Apriori算法(关联规则挖掘):计算效率低,FP-Growth 或深度学习(如序列模型)更高效。
LVQ(学习向量量化):原型聚类方法,实际应用极少,K-Means 更通用。
ID3决策树:仅支持离散特征,已被 C4.5 和 CART(支持连续特征)取代。
- 应用场景狭窄的算法
SOM(自组织映射):无监督神经网络,应用集中在可视化领域,深度学习(如 t-SNE、UMAP)更常用。
传统贝叶斯网络结构学习:计算复杂且依赖领域知识,实际中更常用概率图模型工具包(如 PyMC3)。
K-Medoids:类似 K-Means,但对噪声敏感且计算成本高,优先学习 K-Means。
第二优先级:视领域需求选择性放弃
3. 特定领域替代性强的算法
LDA(线性判别分析):降维和分类任务中,PCA 更通用,除非需要类别分离指导降维。
传统遗传算法:优化问题中,梯度下降或贝叶斯优化更高效,除非研究进化计算。
HMM(隐马尔可夫模型):语音识别中被 RNN/Transformer 取代,但生物信息学仍可能用到。
传统马尔可夫链:简单序列建模中,RNN/LSTM 更强大。
- 复杂度高且少用的算法
SMO 算法(SVM 的原始实现):实际使用中直接调库(如 sklearn.svm.SVC),无需手动实现。
传统核方法(如自定义核函数):深度学习兴起后,核技巧的重要性下降。
尽量保留的核心算法
5. 基础且广泛应用的算法
逻辑回归:分类任务的基础,可解释性强。
线性 SVM(LinearSVC):高维数据分类高效,工业界常用。
决策树(CART):随机森林和 GBDT 的基础。
KNN:惰性学习代表,适合实时场景。
随机森林 & 梯度提升(XGBoost/LightGBM):结构化数据的主流模型。
K-Means & PCA:无监督学习的基础工具。
神经网络基础(MLP、CNN、RNN):深度学习的核心。
- 特定场景的关键算法
朴素贝叶斯:文本分类和小数据场景高效。
协同过滤:推荐系统的经典方法。
ARIMA:时间序列分析(若涉及该领域需保留)。
总结建议
放弃:单层感知机、Apriori、LVQ、ID3、SOM。
选择性放弃:LDA、传统遗传算法、HMM(除非领域相关)、传统核方法。
保留核心:逻辑回归、SVM、决策树、集成学习(RF/GBDT)、KNN、PCA、神经网络。
实践优先:通过工具库(如 Scikit-learn)快速应用,再深入原理。
注意:即使放弃某些算法,仍需了解其基本思想(如“关联规则挖掘”或“进化计算”),以便需要时快速补足。