2017-03-04 5 views
0

홍채에 train_test_split을 사용할 때 입력 모양 오류가 발생했습니다. 나는 왜 그런지 이해하지 못한다. 다른 데이터 세트를 테스트했습니다. train_test_split이이 모양을 처리해야합니다. 어떤 제안? 감사합니다ValueError : 잘못된 입력 모양 (60, 4) Iris dataset train_test_split

# Decision Tree Classifier 
from sklearn import datasets 
from sklearn import metrics 
from sklearn.tree import DecisionTreeClassifier 
from sklearn.linear_model import LogisticRegression 
from sklearn.model_selection import train_test_split 
# load the iris datasets 
iris = datasets.load_iris() 
#print(iris.data) 
#print(dataset) 
# fit a CART model to the data 
model = LogisticRegression() 
from sklearn.utils import shuffle 
import numpy as np 
#print(type(dataset.data)) 

#Xtrain = dataset.data[:int(0.8*len(dataset.data))] 
#Ytrain = dataset.target[:int(0.8*len(dataset.data))] 
#Xtest = dataset.data[int(0.8*len(dataset.data)):] 
#Ytest = dataset.target[int(0.8*len(dataset.data)):] 
Xtrain, Ytrain, Xtest, Ytest = train_test_split(iris.data.astype(np.float64), iris.target.astype(np.float64), test_size=0.4, train_size=0.6) 
model.fit(Xtrain,Ytrain) 
#print(model) 
# make predictions 
expected = Ytest 
predicted = model.predict(Xtest) 
# summarize the fit of the model 
print(metrics.classification_report(expected, predicted)) 
print(metrics.confusion_matrix(expected, predicted)) 

답변

0

코드에서 다음 줄을 변경하면 작동합니다! 에

Xtrain, Ytrain, Xtest, Ytest = train_test_split(iris.data.astype(np.float64), iris.target.astype(np.float64), test_size=0.4, train_size=0.6) 

:

Xtrain, Xtest, Ytrain, Ytest = train_test_split(iris.data.astype(np.float64), iris.target.astype(np.float64), test_size=0.4, train_size=0.6) 

이 허용되는 매개 변수의 순서가 올바르지 않습니다. 참조 : http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html

+0

대단히 감사합니다 TheChetan, 코딩 몇 시간 후 나는 나무 숲을 그리워. –