前提・実現したいこと
教師あり学習をしているときにエラーが出ました。
エラー箇所と改善方法を教えてください
発生している問題・エラーメッセージ
Traceback (most recent call last): File "test4.py", line 39, in <module> clf.fit(train_X, train_y) File "C:\Users\Anaconda3\lib\site-packages\sklearn\model_selection\_search.py", line 639, in fit cv.split(X, y, groups))) File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 779, in __call__ while self.dispatch_one_batch(iterator): File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 625, in dispatch_one_batch self._dispatch(tasks) File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 588, in _dispatch job = self._backend.apply_async(batch, callback=cb) File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\_parallel_backends.py", line 111, in apply_async result = ImmediateResult(func) File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\_parallel_backends.py", line 332, in __init__ self.results = batch() File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 131, in __call__ return [func(*args, **kwargs) for func, args, kwargs in self.items] File "C:\Users\Anaconda3\lib\site-packages\sklearn\externals\joblib\parallel.py", line 131, in <listcomp> return [func(*args, **kwargs) for func, args, kwargs in self.items] File "C:\Users\Anaconda3\lib\site-packages\sklearn\model_selection\_validation.py", line 458, in _fit_and_score estimator.fit(X_train, y_train, **fit_params) File "C:\Users\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py", line 1222, in fit self.dual) File "C:\Users\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py", line 438, in _check_solver_option "a multinomial backend." % solver) ValueError: Solver liblinear does not support a multinomial backend.
該当のソースコード
python
1from sklearn.datasets import load_digits 2from sklearn.model_selection import train_test_split 3from sklearn.svm import SVC 4from sklearn.tree import DecisionTreeClassifier 5from sklearn.ensemble import RandomForestClassifier 6from sklearn.model_selection import RandomizedSearchCV 7from sklearn.metrics import f1_score 8from sklearn.svm import LinearSVC 9from sklearn.linear_model import LogisticRegression 10 11data = load_digits() 12train_X, test_X, train_y, test_y = train_test_split( 13 data.data, data.target, random_state=42) 14 15best_score = 0 16best_model = None 17best_param = None 18 19models_name = ["SVM", "決定木", "ランダムフォレスト","線形SVM","ロジスティク回帰"] 20models = [SVC(), DecisionTreeClassifier(), RandomForestClassifier(), LinearSVC(),LogisticRegression()] 21params = [{"C": [0.01, 0.1, 1.0, 10, 100], 22 "kernel": ["linear", "rbf", "poly", "sigmoid"], 23 "random_state": [42], 24 "decision_function_shape":["ovo","ovr"]}, 25 {"max_depth": [i for i in range(1, 10)], 26 "random_state": [i for i in range(100)]}, 27 {"n_estimators": [i for i in range(10, 20)], 28 "max_depth": [i for i in range(1, 10)], 29 "random_state": [i for i in range(100)]}, 30 {"C": [0.01, 0.1, 1.0, 10, 100], 31 "random_state": [42], 32 "multi_class":["crammer_singer","ovr"]}, 33 {"C": [0.01, 0.1, 1.0, 10, 100], 34 "random_state": [42], 35 "multi_class":["multinomial","ovr"]}] 36for name, model, param in zip(models_name, models, params): 37 clf = RandomizedSearchCV(model, param) 38 clf.fit(train_X, train_y) 39 pred_y = clf.predict(test_X) 40 score = f1_score(test_y, pred_y, average="micro") 41 42 if best_score < score: 43 best_score = score 44 best_model = name 45 best_param = clf.best_params_ 46 47print("学習モデル:{},\nパラメーター:{}".format(best_model, best_param)) 48 49print(best_score) 50 51
試したこと
Solver liblinear does not support a multinomial backend.
=>ソルバーliblinearは、多項式バックエンドをサポートしません
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/12 09:15
2019/02/12 09:16
2019/02/12 09:21