저는 기계 학습을 처음 사용했습니다. Scikit Learn SVM을 사용하여 분류 데이터를 준비 중입니다. 최고의 기능을 선택하기 위해 나는 다음과 같은 방법을 사용했다 : 내 데이터 세트가 음의 값으로 구성되어 있기 때문에, 나는 다음과 같은 오류 얻을scikit-learn을 사용한 기능 선택
SelectKBest(chi2, k=10).fit_transform(A1, A2)
:
이ValueError Traceback (most recent call last)
/media/5804B87404B856AA/TFM_UC3M/test2_v.py in <module>()
----> 1
2
3
4
5
/usr/local/lib/python2.6/dist-packages/sklearn/base.pyc in fit_transform(self, X, y, **fit_params)
427 else:
428 # fit method of arity 2 (supervised transformation)
--> 429 return self.fit(X, y, **fit_params).transform(X)
430
431
/usr/local/lib/python2.6/dist-packages/sklearn/feature_selection/univariate_selection.pyc in fit(self, X, y)
300 self._check_params(X, y)
301
--> 302 self.scores_, self.pvalues_ = self.score_func(X, y)
303 self.scores_ = np.asarray(self.scores_)
304 self.pvalues_ = np.asarray(self.pvalues_)
/usr/local/lib/python2.6/dist- packages/sklearn/feature_selection/univariate_selection.pyc in chi2(X, y)
190 X = atleast2d_or_csr(X)
191 if np.any((X.data if issparse(X) else X) < 0):
--> 192 raise ValueError("Input X must be non-negative.")
193
194 Y = LabelBinarizer().fit_transform(y)
ValueError: Input X must be non-negative.
누군가가 말해 줄래을 어떻게 할 수 내 데이터를 변환합니까?
미리 감사드립니다.
0에서 1 사이의 값으로 정규화하거나 아마도 절대 값을 취할 수 있습니다. – EdChum
데이터가 음수가 아닌 경우 chi2는 좋은 방법이 아닙니다. f_score를 사용할 수 있습니다. 데이터의 특성은 무엇입니까? –
EdChum 및 Andreas에 감사드립니다. 내 데이터는 가속도계 신호의 최소, 최대, 평균, 중앙값 및 FFT로 구성됩니다. – sara