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