2016-11-08 57 views
-1

我不明白什么时候我必须使用scikit学习的拟合方法。我什么时候必须使用scikit的fit方法学习?

在这个网页:http://machinelearningmastery.com/automate-machine-learning-workflows-pipelines-python-scikit-learn/ 有一个管道+ StandardScaler的例子。不使用拟合方法。

但在这另一个:http://scikit-learn.org/stable/auto_examples/svm/plot_rbf_parameters.html 还有一个StandardScaler,并有一个适合的方法。

这是我的代码:管道+ Robustscaler:

result_list = [] 

for name in ["AWA","Rem","S1","S2","SWS","SX", "ALL"]: 
    x=sio.loadmat('/home/{}_E.mat'.format(name))['x'] 
    s_y=sio.loadmat('/home/{}_E.mat'.format(name))['y'] 
    y=np.ravel(s_y) 

    print(name, x.shape, y.shape) 
    print("") 

    #Create a pipeline 
    clf = make_pipeline(preprocessing.RobustScaler(), SVC(cache_size=1000, kernel='rbf')) 


    ###################10x20 SSS################################## 
    print("10x20") 
    xSSSmean20 = [] 
    for i in range(10): 
     sss= StratifiedShuffleSplit(y, 20, test_size=0.1, random_state=i) 
     scoresSSS=cross_validation.cross_val_score(clf, x, y, cv=sss) 

     xSSSmean20.append(scoresSSS.mean()) 

    result_list.append(xSSSmean20) 

    print("") 
+0

为什么这是一个糟糕的问题? – Aizzaac

+1

因为'没有使用合适的方法.'是错误的陈述。它用在'cross_val_score'中。 – MMF

+0

好的。谢谢。我不知道。 – Aizzaac

回答

1

火车你的分类,你必须适合它到你的训练数据集。

第一个环节做也行,不是因为它不会在片段,它不这样做明确出现:

的方法cross_val_score使用model这是估计到适合它的数据。

看看方法'cross_val_score'的实现,并试图理解它是如何工作的,而不用理解它是如何工作的。

Here是功能的文档和hereGitHub的实现来参考。

建议海贼王:

尝试去挖掘代码,当你不明白的东西。你会学到很多!

相关问题