python
1import numpy as np 2import pandas as pd 3 4import matplotlib.pyplot as plt 5 6pd.options.display.max_rows = 8 7state = np.random.RandomState(1) 8# csv からデータ読み込み 9names = ['Hue', 'Hue_figures', 'Value', 'Chroma','season'] 10coloer = pd.read_csv('personal_coloer_data2.csv', header=None, names=names) 11df=coloer 12label=df[['season']] 13data=df[['Hue', 'Hue_figures', 'Value', 'Chroma']] 14 15X=data 16T=label 17 18 19#訓練データとテストデータに分割 20from sklearn.model_selection import StratifiedKFold 21 22 23skf = StratifiedKFold(n_splits=6) 24for train_index, test_index in skf.split(X,T): 25 print("train_index:", train_index, "test_index:", test_index) 26 X_train=X.values[train_index] 27 T_train=T.values[train_index] 28 X_test=X.values[test_index] 29 T_test=T.values[test_index] 30 T_train=np.ravel(T_train) 31 T_test=np.ravel(T_test) 32 T_train_array=np.identity(4)[T_train] 33 T_test_array=np.identity(4)[T_test] 34 35 epochs=10 36 batch_size=120 37 38 #モデル作成 39 from keras.models import Sequential 40 from keras.layers import Dense, Activation 41 from keras.optimizers import SGD 42 43 model = Sequential() 44#入力が4つの特徴、4つのラベルに分類なので出力ユニット4 45 model.add(Dense(input_dim=4, units=4)) 46 model.add(Activation('softmax')) 47 model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.1),metrics=['accuracy']) 48 49#トレーニング 50 history=model.fit(X_train, T_train_array, epochs=epochs, batch_size=batch_size,validation_data=(X_test, T_test_array)) 51 52#学習済みモデルでデータ分類 53Y = model.predict_classes(X_test, batch_size=batch_size,) 54 55 56plt.plot(range(1, epochs+1), Y.history['acc'], label="training") 57plt.plot(range(1, epochs+1), Y.history['val_acc'], label="validation") 58plt.xlabel('Epochs') 59plt.ylabel('Accuracy') 60plt.legend() 61plt.show() 62 63#結果検証 64_, T_index = np.where(T_test_array > 0) # to_categorical の逆変換 65print() 66print('RESULT') 67print(Y == T_index) 68
#エラーコード
'numpy.ndarray' object has no attribute 'history'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/25 08:34
2019/10/25 08:52
2019/10/25 08:58