gpt4 book ai didi

python - Wine 质量数据集的训练准确率无法超过 55%

转载 作者:行者123 更新时间:2023-11-30 09:45:29 25 4
gpt4 key购买 nike

我尝试过逻辑回归模型,只是将神经网络做得更大一点,尝试调整学习率,排除一些无用的特征,但我仍然无法获得超过 0.55 的训练精度。这是我的一些代码:

导入文件

df_red = pd.read_csv('winequality-red.csv', sep=';')
df_white = pd.read_csv('winequality-white.csv', sep=';')

df = df_red.append(df_white, ignore_index=True)

排除异常值

from scipy import stats

df_new = df[(np.abs(stats.zscore(df)) < 3).all(axis=1)]

缩放数据

Y = df_new['quality']

df_new = df_new.drop(['quality'], axis=1)

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

df_new = scaler.fit_transform(df_new)

X = df_new[:, 0:11]
Y = Y.reshape(-1, 1)

分割数据

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20)

One-hot 编码

Y_train = to_categorical(Y_train)
print(Y_train[0:7])
Y_test = to_categorical(Y_test)
print(Y_test[0:7])

型号

# Define our model
def model(X_train, Y_train, X_test, Y_test):
global network_history
model = Sequential()
model.add(Dense(10, input_shape=(11,), activation='relu'))
model.add(Dense(9, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

network_history = model.fit(X_train, Y_train, batch_size=64, epochs=200, shuffle=True, validation_data=(X_test, Y_test))

score = model.evaluate(X_test, Y_test)

print("Test score ", score[0])
print("Test accuracy ", score[1])

return model

我可以做些什么来改善这个问题?

最佳答案

问题是,你使用真实的测试数据进行验证,这是不行的!验证数据集是训练数据的一部分。

我建议你使用:

validation_split = 0.1

使用 10% 的训练数据进行验证。

其中一个选项是您的网络过度拟合。尝试添加 Dropout 层,这可能会有所帮助。此外,您是否尝试过带有异常值的非缩放数据?

此外,纪元的数量似乎太高了。对于初学者来说,对于这样简单的数据集尝试 5 或 10 个 epoch。同样,批量大小可以进一步试验。

关于python - Wine 质量数据集的训练准确率无法超过 55%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53156985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com