gpt4 book ai didi

python - Kaggle 泰坦尼克号与 tflearn 神经网络

转载 作者:行者123 更新时间:2023-11-28 22:17:33 37 4
gpt4 key购买 nike

我已经用逻辑回归解决了泰坦尼克号问题,现在我想用神经网络解决这个问题。但是我的模型总是返回1,这意味着幸存。对于每个测试输入。也许我的模型有问题。我该如何解决这个问题?

train_data = pd.read_csv('data/train.csv')
test_data = pd.read_csv('data/test.csv')

#Some data cleaning process
#......


X_train = train_data.drop("Survived",axis=1).as_matrix()
Y_train = train_data["Survived"].as_matrix().reshape((891,1))
X_test = test_data.drop("PassengerId",axis=1).as_matrix()


net = tflearn.input_data(shape=[None, 6])
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 32)
net = tflearn.fully_connected(net, 1, activation='softmax')
net = tflearn.regression(net)
model = tflearn.DNN(net)
model.fit(X_train, Y_train, n_epoch=10, batch_size=16, show_metric=True)

pred = model.predict(X_test)
print pred

最佳答案

使用 softmax作为输出中的激活层确保该层中所有节点的输出总和为 1。由于您只有一个节点,并且输出总和必须为 1,因此根据定义它将始终输出 1

您永远不应该使用 softmax 作为二元分类任务的激活函数。更好的选择是 logistic function ,我认为 tensorflow 调用 sigmoid .

所以代替

net = tflearn.fully_connected(net, 1, activation='softmax')

尝试

net = tflearn.fully_connected(net, 1, activation='sigmoid')

关于python - Kaggle 泰坦尼克号与 tflearn 神经网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51281917/

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