Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
事件溯源
Kafka消息
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
如何根据数据的分布来选择ML算法? - Reddit
22-03-26
banq
问题:根据基础理论/数据分布,何时使用决策树而不是 SVM 或 KNN 更好?
答案:
1. xgboost在结构化数据和监督学习问题上很难被击败。
相对特征规模不是问题,类不平衡不是问题,它可以处理空数据,而且由于决策树的性质,它在非线性数据上表现得非常好。它缺乏线性回归的可解释性,但通过SHAP值等技术,你仍然可以在模型或单一预测层面获得特征重要性。
2. 我认为模型
架构
更多的是取决于你要解决的问题和相关的约束。
如果我想要一些简单或可解释的东西,我可能会选择一个决策树。如果我想要一些高性能的分割,我可能会使用像UNet或MaskRCNN这样的成熟方法。为什么这些方法都能很好地工作,在文献中都有简洁的记录。
最终,我认为选择ML算法的很大一部分要归结为了解两者的利弊,以及被建模的非线性函数的种类(也就是对基础数据进行的假设,如果有的话)。例如,Naive Bayes或GDA都对你的数据做出不同的关键假设。
3. 所有的机器学习模型都会在特征空间中创建超平面,选择一个模型而不是其他模型的更好方法是了解这些超平面是如何被模型创建的,以及你的特征在空间中是如何表示的(用一些 dimensonality reduction 技术进行可视化,如 UMAP 或 t-SNE)。
数据科学
机器学习