【发布时间】:2020-02-27 06:46:01
【问题描述】:
我有一个大约 (35000 x 27) 的大型数据集。我在线性和多项式回归中运行 sklearn SVM。我的运行时间有时是 30 分钟或更长时间。有没有更有效的方法来运行我的 SVM?
我尝试删除不必要的数据显示,并尝试不同的测试和训练组合,但它总是接近相同的持续时间。然而,运行高斯或“RBF”大约需要 6 分钟,但准确度要低得多。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn import metrics
proteindata = pd.read_csv("data.csv")
np.any(np.isnan(proteindata))
print(proteindata.shape)
print(proteindata.columns)
print(proteindata.head())
X = proteindata.drop("Class", axis=1)
y = proteindata["Class"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.40)
Classifier = svm.SVC(kernel='poly')
Classifier.fit(X_train, y_train)
y_pred = Classifier.predict(X_test)
print("Accuracy:", metrics.accuracy_score(y_test, y_pred))
除了被告知手动设置伽玛之外,我没有收到任何错误。
【问题讨论】:
-
等等,你是回归还是分类?仅供参考,SVM 仅适用于二进制类。如果您有多个目标值,Sklearn 会为每对目标 (OVO) 训练一个模型。如果您有 5 个不同的类别,则需要训练 32 个不同的分类器。这或许可以解释。
-
这是一个 2 类分类,1 或 0。
标签: python python-3.x scikit-learn svm