由于缺乏机器学习数据,精度较低

时间:2016-08-10 15:02:44

标签: python machine-learning tensorflow

我目前正在将Tensorflow应用于Kaggle的泰坦尼克号机器学习问题:https://www.kaggle.com/c/titanic

我的训练数据是891乘8(891个数据点和8个特征)。目标是预测泰坦尼克号上的乘客是否幸存。所以这是一个二元分类问题。

我正在使用单层神经网络。这是我的成本函数:

cost = tf.reduce_mean( tf.nn.softmax_cross_entropy_with_logits(prediction,y))

这是我的优化器:

optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=momentum).minimize(cost)

这是我的问题/问题:

我尝试将神经网络的一些预测提交给Kaggle,到目前为止我的所有尝试都有0%的准确率。然而,当我将前10名乘客的预测替换为来自sk-learn的RandomForestClassifier()的预测时,准确率飙升至50%..

我对神经网络无能的猜测是它是由训练数据不足引起的。所以我在考虑为输入数据添加噪声,但我真的不知道如何。

我的训练数据的8个特征是:['Pclass','Sex','Age','Fare','Child','Fam_size','Title','Mother']。有些是绝对的,有些是连续的。

非常感谢任何想法/链接!非常感谢。

编辑:

我发现提交内容有什么问题。出于某种原因,我的预测都是浮点数而不是整数。所以我就这样做了:

result_df.astype(int)

感谢大家指出我的提交格式错误。

1 个答案:

答案 0 :(得分:0)

尝试在本地交叉验证培训数据,看看您获得的准确度。 sklearn软件包有一个简单的k-fold交叉验证实用程序(here),用于在训练和测试折叠中划分样本。你获得了什么准确度?

请记住,二元分类的准确率为50%。如果k倍CV精度高于50%,则提交时可能会出现问题。