修正してコードちょうだい

目的変数であるサイズ(y)が連続的な数値である場合、回帰タスクとして扱う必要があります。その場合、出力層の活性化関数は線形(Linear)となります。

以下は、修正されたコードです。

python
from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from keras.models import Sequential from keras.layers import Dense # データをトレーニングセットとテストセットに分割 X_train, X_test, y_train, y_test = train_test_split(X_combined, y, test_size=0.2, random_state=42) # データの標準化 scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_test_scaled = scaler.transform(X_test) # モデルの作成 model = Sequential([ Dense(64, activation='relu', input_shape=(X_train_scaled.shape[1],)), Dense(64, activation='relu'), Dense(1, activation='linear') # 線形活性化関数 ]) # モデルのコンパイル model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae']) # 回帰タスクのため、損失関数は平均二乗誤差を使用 # モデルのトレーニング history = model.fit(X_train_scaled, y_train, epochs=10, batch_size=32, validation_data=(X_test_scaled, y_test)) # テストデータでの予測と評価 y_pred = model.predict(X_test_scaled) # モデルの評価 loss, mae = model.evaluate(X_test_scaled, y_test) print("Mean Absolute Error:", mae)

このコードでは、Sequentialモデルを使用してニューラルネットワークを構築し、回帰タスクに適した活性化関数と損失関数を選択しています。また、トレーニングとテストデータの標準化も行っています。

未分類

Posted by ぼっち