稀疏数据上的离散与连续分类器

3 投票
3 回答
1896 浏览
提问于 2025-04-15 20:45

我正在尝试对一个例子进行分类,这个例子包含了离散特征和连续特征。而且,这个例子的数据是稀疏的,意思是虽然系统可能已经训练了100个特征,但这个例子可能只有12个特征。

我想知道用什么分类算法最合适。现在我在考虑贝叶斯、最大熵、决策树和KNN,但不确定哪个最合适。我发现最大的问题是,大多数实现都不支持稀疏数据集,并且同时处理离散和连续特征。有没有人能推荐一个符合这些条件的算法和实现(最好是用Python)?

我目前查看过的库包括:

  1. Orange(主要是学术用途,实施效率和实用性都不太高。)
  2. NLTK(也是学术性质,虽然有一个不错的最大熵实现,但不支持连续特征。)
  3. Weka(还在研究中。似乎支持多种算法,但文档不太好,所以不清楚每个实现支持什么。)

3 个回答

2

scikit-learn是一个Python的机器学习模块,它支持处理稀疏数据的随机梯度下降支持向量机

2

支持向量机是什么?libsvm可以在Python中使用,而且速度很快。

它可以处理稀疏的向量输入,也就是说,如果你的数据中有些特征是连续的,而有些特征只是-1或+1,它都能处理得了。(如果你有一个n种取值的离散特征,通常的做法是把它展开成n个二进制特征。)

2

Weka(Java语言)满足你所有的需求:

  • 有很多分类和回归算法可供选择
  • 支持离散和连续的属性(在Weka中称为名义属性和数值属性)
  • 可以处理稀疏数据:使用ARFF格式

可以查看这个Pentaho wiki,里面有很多文档、指南、视频教程等链接...

撰写回答