np.unique(y_train) array([ 60, 80, 100, 120, 140, 160])

提供していただいた情報によれば、訓練データの目的変数 y_train には6つの異なるクラスが存在し、それぞれのクラスは [60, 80, 100, 120, 140, 160] のいずれかの値を持っています。

エラーメッセージによると、sparse_categorical_crossentropyのエラーが発生しているため、モデルが予測されるクラスの範囲と実際のクラスの範囲が一致していない可能性があります。モデルの出力層のノード数をクラスの数に合わせる必要があります。

具体的には、モデルの最後のDense層のユニット数をクラスの数に合わせる必要があります。したがって、次のように修正する必要があります:

python
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(64, activation='relu'), Dense(len(np.unique(y_train)), activation='softmax') # ユニークなクラスの数に合わせる ])

このように変更することで、モデルが正常に動作するはずです。必要に応じて、他の部分にも適切な修正が必要になるかもしれませんが、まずはこれを試してみてください。

未分類

Posted by ぼっち