0
내 모델에 Kfold
교차 사용을 시도하고 있지만이 오류가 발생합니다. 나는 KFold
이 1D 배열 만 받아들이는 것을 알고 있지만 길이 입력을 배열로 변환 한 후에도이 문제를 일으킨다.TypeError : 길이가 1 인 배열 만 Kfold 교차 사용시 Python 스칼라로 변환 될 수 있습니다.
from sklearn.ensemble import ExtraTreesClassifier, RandomForestClassifier
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import KFold
if __name__ == "__main__":
np.random.seed(1335)
verbose = True
shuffle = False
n_folds = 5
y = np.array(y)
if shuffle:
idx = np.random.permutation(y.size)
X_train = X_train[idx]
y = y[idx]
skf = KFold(y, n_folds)
models = [RandomForestClassifier(n_estimators=100, n_jobs=-1, criterion='gini'),ExtraTreesClassifier(n_estimators=100, n_jobs=-1, criterion='entropy')]
print("Stacking in progress")
A = []
for j, clf in enumerate(models):
print(j, clf)
for i, (itrain, itest) in enumerate(skf):
print("Fold :", i)
x_train = X_train[itrain]
x_test = X_train[itest]
y_train = y[itrain]
y_test = y[itest]
print(x_train.shape, x_test.shape)
print(len(x_train), len(x_test))
clf.fit(x_train, y_train)
pred = clf.predict_proba(x_test)
A.append(pred)
"skf = KFold(y, n_folds)
"줄에 오류가 표시됩니다. 이것에 대한 도움을 주시면 감사하겠습니다.
'y'정의 방법은 무엇입니까? 또한 예제가 최소한이어야합니다. 4 개의 분류자를 포함하는 것이 정말 유용합니까? –
y는 교육 집합의 대상 변수로 정의됩니다. 아니 내가 그것을 편집합니다. – Sahil
그래서 더 이상 모델과 j 루프가 필요 없습니다. 간단한 예제는 우리가 이해하기가 더 쉽고 오류를 발견하는 것이 더 빠릅니다. KFold 사용에 대한 내 대답을보십시오. –