在 sklearn 中 运行 宁 10 折交叉验证后如何 运行 SVC 分类器?
How to run SVC classifier after running 10-fold cross validation in sklearn?
我对机器学习比较陌生,希望在以下方面得到一些帮助:
我 运行 对我的数据使用支持向量机分类器 (SVC) 进行 10 折交叉验证,并计算出准确率得分(约为 89%)。我正在使用 Python 和 scikit-learn 来执行任务。这是一个代码片段:
def get_scores(features,target,classifier):
X_train, X_test, y_train, y_test =train_test_split(features, target ,
test_size=0.3)
scores = cross_val_score(
classifier,
X_train,
y_train,
cv=10,
scoring='accuracy',
n_jobs=-1)
return(scores)
get_scores(features_from_df,target_from_df,svm.SVC())
现在,我如何使用我的分类器(在 运行 10 倍 cv 之后)在 X_test 上测试它并将预测结果与 y_test 进行比较?您可能已经注意到,我在交叉验证过程中只使用了 X_train 和 y_train。
我注意到 sklearn 有 cross_val_predict:
http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html 我应该用 cross_val_predict 替换我的 cross_val_score 吗?仅供参考:我的目标数据列已二值化(值为 0 和 1)。
如果我的方法有误,请告诉我最好的方法。
谢谢!
你就快完成了:
# Build your classifier
classifier = svm.SVC()
# Train it on the entire training data set
classifier.fit(X_train, y_train)
# Get predictions on the test set
y_pred = classifier.predict(X_test)
此时,您可以使用 sklearn.metrics
模块中的任何指标来确定您的表现。例如:
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test, y_pred))
您只需要拆分 X 和 y。不要拆分火车和测试。
然后您可以将案例 svm 中的分类器传递给 cross_val_score
函数以获得每个实验的准确性。
仅需 3 行代码:
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, X, y, cv=10)
print scores
我对机器学习比较陌生,希望在以下方面得到一些帮助:
我 运行 对我的数据使用支持向量机分类器 (SVC) 进行 10 折交叉验证,并计算出准确率得分(约为 89%)。我正在使用 Python 和 scikit-learn 来执行任务。这是一个代码片段:
def get_scores(features,target,classifier):
X_train, X_test, y_train, y_test =train_test_split(features, target ,
test_size=0.3)
scores = cross_val_score(
classifier,
X_train,
y_train,
cv=10,
scoring='accuracy',
n_jobs=-1)
return(scores)
get_scores(features_from_df,target_from_df,svm.SVC())
现在,我如何使用我的分类器(在 运行 10 倍 cv 之后)在 X_test 上测试它并将预测结果与 y_test 进行比较?您可能已经注意到,我在交叉验证过程中只使用了 X_train 和 y_train。
我注意到 sklearn 有 cross_val_predict: http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html 我应该用 cross_val_predict 替换我的 cross_val_score 吗?仅供参考:我的目标数据列已二值化(值为 0 和 1)。
如果我的方法有误,请告诉我最好的方法。
谢谢!
你就快完成了:
# Build your classifier
classifier = svm.SVC()
# Train it on the entire training data set
classifier.fit(X_train, y_train)
# Get predictions on the test set
y_pred = classifier.predict(X_test)
此时,您可以使用 sklearn.metrics
模块中的任何指标来确定您的表现。例如:
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test, y_pred))
您只需要拆分 X 和 y。不要拆分火车和测试。
然后您可以将案例 svm 中的分类器传递给 cross_val_score
函数以获得每个实验的准确性。
仅需 3 行代码:
clf = svm.SVC(kernel='linear', C=1)
scores = cross_val_score(clf, X, y, cv=10)
print scores