我在分类任务中应用一组线性和非线性分类模型。输入数据是语言向量(CountVectorizer,Word2Vec)和二进制标签。在scikit-learn中,我选择了以下估计器:
LogisticRegression(),
LinearSVC(),
XGBClassifier(),
SGDClassifier(),
SVC(), # Radial basis function kernel
BernoulliNB(), # Naive Bayes seems widely used for LV models
KNeighborsClassifier(),
RandomForestClassifier(),
MLPClassifier()
- 问题:我是否正确,
LinearSVC()
是线性的分类器,至少在二进制估计器的情况下? - 问题:在专家看来,分类器之间是否存在明显的冗余?
感谢您的澄清。
LogisticRegression()
、LinearSVC()
、SGDClassifier()
和BernoulliNB()
是线性模型。使用默认损失函数时,SGDClassifier()
用作线性 SVM,而对数损失则用作逻辑回归,因此这三者之一是多余的。您也可以用LogisticRegression()
代替LogisticRegressionCV()
,后者对正则化超参数进行了内置优化。
XGBClassifier()
和所有其他都是非线性的。
该列表似乎包括所有主要的sklearn
分类器。