数据挖掘里的经典算法其实也就那几个,想系统复习一遍的话,这份整理真挺靠谱的。
C4.5的用法比较像ID3
的升级版,支持连续值、剪枝、还能搞定缺失值。适合你用来跑一些决策树的业务场景,像分类模型初步探索啥的,蛮实用。
K-Means就更不用说了,聚类老网红,简单粗暴但效率高。初始中心点选得好,聚得也挺准。你写个聚类的工具小功能,用它基本够用。
SVM的话,我一般用来做二分类问题,尤其是在样本维度高的情况,效果还不错。而且核函数这个点挺灵活,能扩展不少非线性问题。
说到规则挖掘,那得提Apriori。虽然跑起来稍微慢点,但适合用在用户购物、日志挖掘这种场景。规则多、够细,唯一要注意就是内存开销。
EM 算法你搞过GMM
聚类没?就离不开它。E 步 M 步轮着来,对带隐变量的数据还挺香。尤其是那种你不知道数据分布细节的时候,EM 可以慢慢逼近答案。
PageRank也挺有意思,不止能用在搜索引擎,社交图也能套用上。比如节点之间谁更“重要”那类问题,跑个迭代分值就能看个。
AdaBoost就适合你训练一堆弱分类器,组合成个强的。比如你搞了多个DecisionStump
,就能用 AdaBoost 串起来。对不平衡数据集有一手。
KNN一直都是个稳妥的选择,写着方便,调参少,但跑起来慢点。拿它当 baseline 模型再合适不过了,尤其在数据量不大的时候表现还挺好。
朴素贝叶斯虽说假设特征独立听着有点扯,但你真拿来做文本分类、垃圾邮件检测,效果反而还不错,训练速度飞快,适合你做初步建模。
是CART,跟 C4.5 比,结构更规整,分类、回归一锅端。再配合剪枝用起来,适合搞一份业务规则树出来,解释性也强。
这些算法,有些适合初学入门,有些也能直接上项目。你要是正好写些模型 demo、聚类脚本,或者做些规则的项目,可以挑几个试试。