未知标签类型sklearn

问题描述:

我是sklearn中的新人。我试图做到这一点的代码未知标签类型sklearn

data = pandas.read_csv('titanic.csv') 
data= data[data['Pclass'].notnull() & data['Sex'].notnull() &   data['Age'].notnull() & data['Fare'].notnull()] 
test = data.loc[:,['Pclass','Sex','Age','Fare']] 
target = data.loc[:,['Survived']] 
test = test.replace(to_replace=['male','female'],value=[1,0]) 
clf=DecisionTreeClassifier(random_state=241) 
clf.fit(target,test) 

我看到这个错误

ValueError: Unknown label type: array([[ 22. , 3. , 7.25 ,  1. ], 
    [ 38. , 1. , 71.2833, 0. ], 
    [ 26. , 3. , 7.925 , 0. ], 
    ..., 
    [ 19. , 1. , 30. , 0. ], 
    [ 26. , 1. , 30. , 1. ], 
    [ 32. , 3. , 7.75 , 1. ]]) 

什么是问题?

您目前正在提供一个数据框,而不是它作为fit方法的训练输入的numpy数组表示。代之以:

clf.fit(X=test.values, y=target.values) 
# Even .asmatrix() works but is not generally recommended 
+3

感谢您的回答! –

+0

为什么不推荐as_matrix? – ruselli

+2

我找到了我的问题的答案,坦克https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html – ruselli