2017-03-21 1 views
2

4 가지 기능으로 교육 데이터에 대한 예측을 실행하려고합니다. 내 코드 : 내 예측 줄에여러 기능이있는 Python sklearn 결정 트리 분류 자?

from sklearn.cross_validation import train_test_split 

X = iris.data 
y = iris.target 

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=42) 

# Train 
clf = DecisionTreeClassifier() 
clf.fit(X_train, y_train) 

# Plot the decision boundary 
plt.subplot(2, 3, pairidx + 1) 

x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 
xx, yy = np.meshgrid(np.arange(x_min, x_max, plot_step), 
        np.arange(y_min, y_max, plot_step)) 

Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) 
Z = Z.reshape(xx.shape) 
cs = plt.contourf(xx, yy, Z, cmap=plt.cm.Paired) 

plt.xlabel(iris.feature_names[pair[0]]) 
plt.ylabel(iris.feature_names[pair[1]]) 
plt.axis("tight") 

# Plot the training points 
for i, color in zip(range(n_classes), plot_colors): 
    idx = np.where(y == i) 
    plt.scatter(X[idx, 0], X[idx, 1], c=color, label=iris.target_names[i], 
       cmap=plt.cm.Paired) 

plt.axis("tight") 

plt.suptitle("Decision surface of a decision tree using paired features") 
plt.legend() 
plt.show() 

: Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) 나는 다음과 같은 오류가 발생합니다 :

Number of features of the model must match the input. Model n_features is 4 and input n_features is 2

홍채 데이터는 150x4 데이터 집합입니다. 이 기능을 4 가지 기능에 적용하려면 어떻게해야합니까? 당신이 제공하는 기능의 수를 훈련하는 동안

+0

수있다 (). 웹 튜토리얼을 따르고 있습니까? 링크를 게시하십시오. 'plot_step','pairidx' 란 무엇입니까? –

답변

0
  • 4
  • 입니다하지만 당신은 당신이 기능의
  • 수는 당신이 훈련에 사용되는 예측하는이 개 기능을 가진 샘플을 제공하고 예측하는 경우 당신의 plot_step 1
  • NumPy와 배열 일 경우 (30, 2) : 다음과 같은 경우는 예측
  • 을 때 동일한 기능 번호를 사용 : print(np.c_[xx.ravel(), yy.ravel()]) 그것은 당신의 모양을 줄 것이다 당신이 예측 기능 제공에 인수 모양이어야로 : x는 양의 정수 있지만 NumPy와 배열의 열 수를 할 수 있습니다 (x, 4)가 왜 라벨을 사용하고 반드시 4