2016-11-28 61 views
1

我有一個名爲one_dataset.py的文件,其中包含一個用於生成合成數據集的函數。這是代碼:ValueError:要在sklearn.make_classification中解壓的值太多

#Generating synthetic datasets 
from sklearn import datasets 

def create_dataset(): 
    data, labels = datasets.make_classification(n_samples=200,n_features=4,n_classes=2,flip_y=0.01,shuffle=True) 
    return data 
    return labels 

if __name__ == "__main__": 
    create_dataset() 

我進口one_dataset.py名爲two_split.py另一個文件,這樣我可以在這裏使用創建的數據集,並將其分割爲訓練和測試data.The文件two_split.py看起來是這樣的:

import one_dataset 
import sklearn 

try: 
    data, labels = one_dataset.create_dataset() 
    print data 
    print labels 

except ValueError: 
    print "Oops! Too many values to unpack! Lighten up, please!" 

它捕獲值太多的ValueError解壓縮。 另外,當我嘗試在one_dataset.py中打印datalabels時,沒有顯示此類錯誤。

我想知道爲什麼會發生這種情況,以及如何解決這個問題。 謝謝。

回答

1

嘗試將您的create_dataset函數中的返回更改爲return data, labels

理由: 你的第一回後create_dataset退出功能,只返回data。當您在try/catch塊中調用函數時,您期待有兩個值,即datalabels,但只返回data

希望這會有所幫助。

相關問題