Python
1forest = RandomForestClassifier(min_samples_leaf=3, random_state=0) 2forest.fit(train_features, train_labels) 3 4print('f1 score: {:.3f}'.format(f1_score(test_labels, forest.predict(test_features), average = 'micro'))) 5 6# ハイパーパラメータ 7forest_grid_param = { 8 'n_estimators': [100], 9 'max_features': [1, 'auto', None], 10 'max_depth': [1, 5, 10, None], 11 'min_samples_leaf': [1, 2, 4,] 12} 13 14# スコア方法をF1に設定 15f1_scoring = make_scorer(f1_score, pos_label=1) 16 17# グリッドサーチで学習 18forest_grid_search = GridSearchCV(RandomForestClassifier(random_state=0, n_jobs=-1), forest_grid_param, scoring=f1_scoring, cv=4) 19forest_grid_search.fit(train_features, train_labels) 20 21# 結果 22print('Best parameters: {}'.format(forest_grid_search.best_params_)) 23print('Best score: {:.3f}'.format(forest_grid_search.best_score_))
このようなコードを実行したとき、
forest_grid_search.fit(train_features, train_labels)
以上の部分で、エラーがでました。
Traceback (most recent call last): File "zyan05.py", line 120, in <module> forest_grid_search.fit(train_features, train_labels) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/model_selection/_search.py", line 945, in fit return self._fit(X, y, groups, ParameterGrid(self.param_grid)) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/model_selection/_search.py", line 564, in _fit for parameters in parameter_iterable File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/parallel.py", line 758, in __call__ while self.dispatch_one_batch(iterator): File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/parallel.py", line 608, in dispatch_one_batch self._dispatch(tasks) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/parallel.py", line 571, in _dispatch job = self._backend.apply_async(batch, callback=cb) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 109, in apply_async result = ImmediateResult(func) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 326, in __init__ self.results = batch() File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/parallel.py", line 131, in __call__ return [func(*args, **kwargs) for func, args, kwargs in self.items] File "/Users/anaconda/lib/python3.6/site-packages/sklearn/externals/joblib/parallel.py", line 131, in <listcomp> return [func(*args, **kwargs) for func, args, kwargs in self.items] File "/Users/anaconda/lib/python3.6/site-packages/sklearn/model_selection/_validation.py", line 260, in _fit_and_score test_score = _score(estimator, X_test, y_test, scorer) File "/Users/anaconda/lib/python3.6/site-packages/sklearn/model_selection/_validation.py", line 288, in _score score = scorer(estimator, X_test, y_test) File "/Users//anaconda/lib/python3.6/site-packages/sklearn/metrics/scorer.py", line 98, in __call__ **self._kwargs) TypeError: 'numpy.float64' object is not callable
原因が不明です。
どのように改善したら良いでしょうか。
よろしくお願い致します。
#train_featureのひとつ [[ 1.29289835e-04 1.17485219e-04 1.19890843e-04 ..., 9.05183214e-05 8.27563718e-05 8.78005056e-05] [ 1.49255279e-04 1.35313449e-04 1.36294066e-04 ..., 8.62639847e-05 9.09304063e-05 7.84873169e-05] [ 1.88674124e-04 1.92549213e-04 1.94561864e-04 ..., 1.27251725e-04 1.32504809e-04 1.19707440e-04] ..., [ 1.16313098e-05 2.90295617e-05 3.99510497e-05 ..., 1.52137304e-05 1.43487523e-05 3.92287642e-05] [ 1.58036700e-05 3.00034379e-05 3.78270972e-05 ..., 1.91663956e-05 2.44618265e-05 2.47100536e-05] [ 5.88701713e-05 3.20351268e-05 1.23424729e-05 ..., 2.63503805e-05 4.25346609e-05 3.44451908e-05]] # test_label test_labels = [2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3]
以上のようなデータで行っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/07 03:01
2018/01/07 03:25
2018/01/07 17:16
2018/01/08 01:50
2018/01/12 06:34
2018/01/12 13:48
2018/01/13 07:03