でてしまったエラー
ロジスティック回帰の実装中に以下のようなエラーが出てしまいました。
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) in 79 print(y_pred) 80 ---> 81 print('confusion matrix = ', confusion_matrix(y_true=y_test, y_pred=y_pred))#混合行列 82 print('accuracy = ', accuracy_score(y_true=y_test, y_pred=y_pred))#正解率 83 print('precision = ', precision_score(y_true=y_test, y_pred=y_pred))#適合率 ~\Anaconda3\lib\site-packages\sklearn\metrics\_classification.py in confusion_matrix(y_true, y_pred, labels, sample_weight, normalize) 266 267 """ --> 268 y_type, y_true, y_pred = _check_targets(y_true, y_pred) 269 if y_type not in ("binary", "multiclass"): 270 raise ValueError("%s is not supported" % y_type) ~\Anaconda3\lib\site-packages\sklearn\metrics\_classification.py in _check_targets(y_true, y_pred) 88 if len(y_type) > 1: 89 raise ValueError("Classification metrics can't handle a mix of {0} " ---> 90 "and {1} targets".format(type_true, type_pred)) 91 92 # We can't have more than one value on y_type => The set is no more needed ValueError: Classification metrics can't handle a mix of multilabel-indicator and binary targets
該当のソースコード
from __future__ import print_function import pandas as pd from pandas import Series,DataFrame from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score import numpy as np import matplotlib.pyplot as plt import keras from keras.datasets import fashion_mnist from keras.models import Sequential from keras.layers import Dense, Dropout from keras.optimizers import Adam from keras.optimizers import SGD csvdataset = pd.read_csv("Train_Random.csv",header=0) #説明変数 #ラベルを消すdrop x = DataFrame(csvdataset.drop("Result",axis=1)) #目的変数 y = DataFrame(csvdataset["Result"]) #説明変数・目的変数をそれぞれ訓練データ・テストデータに分割 x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.08) lr = LogisticRegression() # ロジスティック回帰モデルのインスタンスを作成 lr.fit(x_train, y_train) # ロジスティック回帰モデルの重みを学習 #データの整形 x_train = x_train.astype(np.float) x_test = x_test.astype(np.float) y_train = keras.utils.to_categorical(y_train,10) y_test = keras.utils.to_categorical(y_test,10) #ニューラルネットワークの実装① model = Sequential() model.add(Dense(100, activation='relu', input_shape=(59,))) model.add(Dropout(0.2)) model.add(Dense(100, activation='relu', input_shape=(59,))) model.add(Dropout(0.2)) model.add(Dense(100, activation='relu', input_shape=(59,))) model.add(Dropout(0.2)) model.add(Dense(10, activation='softmax')) model.summary() print("\n") sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) #ニューラルネットワークの実装② model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy']) #ニューラルネットワークの学習 history = model.fit(x_train, y_train,batch_size=11040,epochs=100,verbose=0,validation_data=(x_test, y_test)) #ニューラルネットワークの推論 score = model.evaluate(x_test,y_test,verbose=1) print("\n") print("Test 損失値:",score[0]) print("Test 正解率:",score[1]) print("coefficient = ", lr.coef_) print("intercept = ", lr.intercept_) y_pred = lr.predict(x_test) print(y_pred) print('confusion matrix = ', confusion_matrix(y_true=y_test, y_pred=y_pred))#混合行列 print('accuracy = ', accuracy_score(y_true=y_test, y_pred=y_pred))#正解率 print('precision = ', precision_score(y_true=y_test, y_pred=y_pred))#適合率 print('recall = ', recall_score(y_true=y_test, y_pred=y_pred))#再現率 print('f1 score = ', f1_score(y_true=y_test, y_pred=y_pred))#F1スコア
補足情報
ソースコードにあるとおりに混合行列、正解率、適合率、再現率、F1スコアを表示したいです。よろしくお願いします。
また、初心者なためできるだけ具体的な回答をいただけるととても助かります。
返信遅れてすみません。
print(y_test)の結果
[[0. 1. 0. ... 0. 0. 0.] [1. 0. 0. ... 0. 0. 0.] [1. 0. 0. ... 0. 0. 0.] ... [1. 0. 0. ... 0. 0. 0.] [1. 0. 0. ... 0. 0. 0.] [1. 0. 0. ... 0. 0. 0.]]
print(y_pred)の結果
[0 0 1 ... 1 0 0]
省略されてしまいましたがすべて表示する方法がわからなかったためそのまま張っておきます。
これだけでは0または1しかないようです。
y_predも表示しようとしたのですがエラーが出てしまって表示できませんでした。
回答2件
あなたの回答
tips
プレビュー