Python
feature_df01 = get_train("OpenBCI-RAW-ita01.txt", 6.67, list01) feature_df02 = get_train("OpenBCI-RAW-ita02.txt", 7.14, list02) feature_df03 = get_train("OpenBCI-RAW-ita03.txt", 7.52, list03) train_feature = pd.concat([feature_df01, feature_df02]) labels_t = feature_df03['labels'] labels_t = np.array(labels_t.values.flatten()) del feature_df03['labels'] labels = train_feature['labels'] labels = np.array(labels.values.flatten()) del train_feature['labels'] y_train = labels[:90] y_test = labels_t pca = PCA(n_components=50) pca.fit(train_feature) X_train = pca.transform(train_feature) train_feature = pd.DataFrame(train_feature) lda = LDA(n_components=2) lda.fit(X_train, y_train) X_train = lda.transform(X_train) X_test = np.empty((45, 2), dtype='float32') for i in range(1, 45): X = feature_df03.ix[i, :] X = X.reshape(1, -1) X = pca.transform(X) X = lda.transform(X) np.append(X_test, X) X_test1 = X_test[:15, :] y_test1 = y_test[:15] X_test2 = X_test[15:30, :] y_test2 = y_test[15:30] X_test3 = X_test[30:45, :] y_test3 = y_test[30:45] print(X_test1.shape,X_test2.shape,X_test3.shape) print(len(y_test1),len(y_test2),len(y_test3)) forest = RandomForestClassifier(n_estimators=300, min_samples_split=2, max_depth=3, max_features='auto') forest.fit(X_train, y_train) w1 = f1_score(y_test1, forest.predict(X_test1),average = 'micro') w2 = f1_score(y_test2, forest.predict(X_test2),average = 'micro') w3 = f1_score(y_test3, forest.predict(X_test3),average = 'micro') print(w1,w2,w3)
以上のようなコードを書いたのですが、
Traceback (most recent call last): File "forest_pca1.4.py", line 376, in <module> w1 = f1_score(y_test1, forest.predict(X_test1),average = 'micro') File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/ensemble/forest.py", line 538, in predict proba = self.predict_proba(X) File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/ensemble/forest.py", line 578, in predict_proba X = self._validate_X_predict(X) File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/ensemble/forest.py", line 357, in _validate_X_predict return self.estimators_[0]._validate_X_predict(X, check_input=True) File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/tree/tree.py", line 373, in _validate_X_predict X = check_array(X, dtype=DTYPE, accept_sparse="csr") File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/utils/validation.py", line 453, in check_array _assert_all_finite(array) File "/Users/beta/.pyenv/versions/anaconda3-4.1.1/lib/python3.5/site-packages/sklearn/utils/validation.py", line 44, in _assert_all_finite " or a value too large for %r." % X.dtype) ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
以上のようなエラーが出たり出なかったりします。
どのようなことが原因なのでしょうか。
よろしくお願いいたします。
まだ回答がついていません
会員登録して回答してみよう