【发布时间】:2018-09-25 16:05:18
【问题描述】:
我有多个类别标签,并且想要计算我的模型的准确性。
我有点困惑我需要使用哪个 sklearn 函数。
据我了解,以下代码仅用于二进制分类。
# dividing X, y into train and test data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25,random_state = 0)
# training a linear SVM classifier
from sklearn.svm import SVC
svm_model_linear = SVC(kernel = 'linear', C = 1).fit(X_train, y_train)
svm_predictions = svm_model_linear.predict(X_test)
# model accuracy for X_test
accuracy = svm_model_linear.score(X_test, y_test)
print accuracy
正如我从链接中了解到的那样: Which decision_function_shape for sklearn.svm.SVC when using OneVsRestClassifier?
对于多类分类,我应该使用 OneVsRestClassifier 和 decision_function_shape(使用 ovr 或 ovo 并检查哪一个效果更好)
svm_model_linear = OneVsRestClassifier(SVC(kernel = 'linear',C = 1, decision_function_shape = 'ovr')).fit(X_train, y_train)
主要问题是预测标签的时间对我来说确实很重要,但运行分类器和预测数据大约需要 1 分钟(这也需要添加到特征缩减中,例如 PCA,这也需要一些时间) ?有什么建议可以减少 svm 多分类器的时间吗?
【问题讨论】:
标签: machine-learning scikit-learn classification svm pca