0
내 KNN 분류기의 결과에 교차 유효성 검사를 구현하려고합니다. 형식 오류를 반환하는 다음 코드를 사용했습니다.SKLearn 교차 유효성 검사 오류 - 유형 오류
문맥을 위해 이미 SciKit Learn, Numpy 및 Pandas 라이브러리를 가져 왔습니다.
from sklearn.cross_validation import cross_val_score, ShuffleSplit
n_samples = len(y)
knn = KNeighborsClassifier(3)
cv = ShuffleSplit(n_samples, n_iter=10, test_size=0.3, random_state=0)
test_scores = cross_val_score(knn, X, y, cv=cv)
test_scores.mean()
반환 값 :
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-139-d8cc3ee0c29b> in <module>()
7 cv = ShuffleSplit(n_samples, n_iter=10, test_size=0.3, random_state=0)
8
9 test_scores = cross_val_score(knn, X, y, cv=cv)
10 test_scores.mean()
//anaconda/lib/python2.7/site-packages/sklearn/cross_validation.pyc in cross_val_score(estimator, X, y, scoring, cv, n_jobs, verbose, fit_params, score_func, pre_dispatch)
1150 delayed(_cross_val_score)(clone(estimator), X, y, scorer, train, test,
1151 verbose, fit_params)
1152 for train, test in cv)
1153 return np.array(scores)
1154
//anaconda/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.pyc in __call__(self, iterable)
515 try:
516 for function, args, kwargs in iterable:
517 self.dispatch(function, args, kwargs)
518
519 self.retrieve()
//anaconda/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.pyc in dispatch(self, func, args, kwargs)
310 """
311 if self._pool is None:
312 job = ImmediateApply(func, args, kwargs)
313 index = len(self._jobs)
314 if not _verbosity_filter(index, self.verbose):
//anaconda/lib/python2.7/site-packages/sklearn/externals/joblib/parallel.pyc in __init__(self, func, args, kwargs)
134 # Don't delay the application, to avoid keeping the input
135 # arguments in memory
136 self.results = func(*args, **kwargs)
137
138 def get(self):
//anaconda/lib/python2.7/site-packages/sklearn/cross_validation.pyc in _cross_val_score(estimator, X, y, scorer, train, test, verbose, fit_params)
1056 y_test = None
1057 else:
1058 y_train = y[train]
1059 y_test = y[test]
1060 estimator.fit(X_train, y_train, **fit_params)
TypeError: only integer arrays with one element can be converted to an index
y 변수가 pandas.DataFrame인지 여부를 지정하십시오. – eickenberg