需要帮助使用 keras 创建一个简单的 ml 模型

问题描述 投票:0回答:0

我正在尝试创建模型来预测这个的支出分数(200 行 - 我给出了前几行) 我使用了一种热编码,然后在 for 循环中使用 minmaxscalar 分别缩放每一列,然后 我使用 keras 创建了一个模型,我的损失函数正在迅速减少,但准确度很低 另外,如果我添加更多层,那么我可以获得准确性,但它在测试数据中惨遭失败。enter image description here

这是我的代码:

df=df.drop('CustomerID',axis=1)
df.head()
ohe=preprocessing.OneHotEncoder()
feature_array=ohe.fit_transform(df[['Genre']]).toarray()
feature_labels=np.array(ohe.categories_).ravel()

features=pd.DataFrame(feature_array,columns=feature_labels)
df=pd.concat([df,features],axis=1)
df=df.drop('Genre',axis=1) 

df=df[['Male','Female','Age','Annual Income (k$)','Spending Score (1-100)']]
df.head()

scaler = preprocessing.MinMaxScaler()

for col in df.columns:
    if col != 'Spending Score (1-100)':
        df[col] = scaler.fit_transform(df[[col]])

df.head()

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(df.drop('Spending Score (1-100)',axis=1),df['Spending Score (1-100)'],test_size=0.2)

model=keras.Sequential([
  keras.layers.Dense(50,input_shape=(4,),activation='relu'),
  keras.layers.Dense(75,activation='relu'),
  keras.layers.Dense(100,activation='sigmoid')

])

model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
                                    
model.fit(x_train,y_train,epochs=1000,batch_size=10)

我期待好的准确性,但它太低了,我什至缩放了数据:C

tensorflow machine-learning keras deep-learning tf.keras
© www.soinside.com 2019 - 2024. All rights reserved.