【问题标题】:Cross validation and standaridization in skitlearnsklearn 中的交叉验证和标准化
【发布时间】:2017-04-06 19:16:10
【问题描述】:

我想通过 K-cross 验证找到 sklearn 分类器的准确性。我可以在没有交叉验证的情况下正常估计准确性。但是,如何改进此代码以进行交叉验证并同时应用 StandardScaler?

from sklearn.datasets import load_iris
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import metrics
from sklearn.cross_validation import cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn import svm
from sklearn.pipeline import Pipeline
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4)
pipe_lrSVC = Pipeline([('scaler', StandardScaler()), ('clf', svm.LinearSVC())])
pipe_lrSVC.fit(X_train, y_train)
y_pred = pipe_lrSVC.predict(X_test)
print(metrics.accuracy_score(y_test, y_pred))

【问题讨论】:

    标签: python scikit-learn cross-validation


    【解决方案1】:

    只需使用管道作为cross_val_score 的估计器输入:

    cross_val_score(pipe_lrSVC, iris.data, iris.target, cv=5)
    

    【讨论】:

    • 非常感谢您的快速回答
    猜你喜欢
    • 2012-12-31
    • 2018-08-20
    • 2018-08-16
    • 2018-04-26
    • 2021-03-25
    • 2021-02-10
    • 2017-09-27
    • 2016-05-07
    • 2014-05-05
    相关资源
    最近更新 更多