【问题标题】:How can I made Backpropagation algorithm for Titanic [closed]如何为泰坦尼克号制作反向传播算法 [关闭]
【发布时间】:2017-01-22 14:05:03
【问题描述】:

我想为泰坦尼克号(Kaggle 的比赛)制作反向传播算法。

这很容易做到,但我有一个问题。反向传播算法是关于数字的。但是我们在泰坦尼克号中有字符串类型。例如,

我们有一个列“性别”(男性或女性),“登船”(S、C 或 Q)。我不会使用“姓名”和“票证”。我不知道我可以用“Sex”和“Embarked”栏做什么。我如何将这些东西用于反向传播算法。

我的想法如何解决这个问题 我想我可以将 number int=1 用于男性,将 number int=2 用于女性。我也可以将数字 1 用于 S,将 2 用于 C,将 3 用于 Q。

你觉得我的想法怎么样?如何为泰坦尼克号制作反向传播算法? (可能我的想法不是很好)。

【问题讨论】:

  • 我同意你的想法,只需将 Sex and Embarked 功能转换为数字,并为每个数字分配一个数字。

标签: python machine-learning neural-network backpropagation


【解决方案1】:

我想如何解决这个问题我想我可以使用 number int=1 表示男性,使用 number int=2 表示女性。我也可以将数字 1 用于 S,将 2 用于 C,将 3 用于 Q。

这是几乎正确的。对于只有两个用 0 和 1 编码的值的特征是可以的。但是,如果您有超过 2 个可能值的分类特征,则永远不应将它们编码为单个数字。这种编码只能用于 ordinal 特征,这意味着尽管它们“不是数字”,但它们确实有顺序。例如,如果您有“小、大、巨大”,那么您可以将它们编码为 1、2、3,但如果您的值完全无序,您应该一个热编码它们,这意味着具有 K可能的值在您的表示中变为 K 位,您只需将 1 放在给定位置(导致(红色、蓝色、绿色)编码为 [1 0 0]、[0 1 0]、[0 0 1]。

如果您不遵守此规则会怎样?假设您的特征是一个名称,并且您有四种可能性“James, Mark, Eve, Kate”,您将其编码为 1、2、3、4。然后,如果您的模型得知 James 和 Eve 获得了好分数,而Kate 没有,它会(或者至少有相当大的概率会)推断出 Mark 也有很好的分数,因为从模型的角度来看,没有名字,只是任意特征,值为 1 的人是好,值 3 是好的,而 4 是坏的,所以假设“2”也是好的是一个不错的推理。请注意,这只是编码的结果,如果您只是以不同的方式排序名称 - 您会得到不同的结果。单热编码不会发生这种情况。

如果您想使用仅在 R^d 空间上定义的方法,这通常在 ML 中完成。当然,如果你对这个特性了解得更多,你有时可以提出更好的编码,例如颜色可以分解为它们的 RGB 表示,这样你就可以直接对红色、橙色和黄色之间的相似性进行编码。一般来说 - 一种热编码是 最安全 方法,任何其他方法都会引入一些可能误导您的模型的假设(如果它们是错误的)。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2016-06-19
    • 2020-10-25
    • 2019-03-01
    • 1970-01-01
    • 2017-06-27
    • 2018-10-24
    • 2022-07-25
    • 2021-07-29
    相关资源
    最近更新 更多