如何处理机器学习算法中的定性数据

假设我正在尝试使用神经网络来预测我的跑步时间。我有过去跑步的大量数据,包括计划跑的里程数、总海拔变化(山丘)、温度以及天气:晴天、多云、下雨或下雪。

我对如何处理最后一个数据感到困惑。其他数据我可以在标准化后正常输入,但天气数据不行。我最初的想法是设置四个额外的变量,每种天气一个,并根据实际情况输入1或0。

这种方法是否合适?还有其他方法我应该尝试吗?


回答:

你有一个具有四个水平的分类变量。

编码这种值的一个非常典型的方法是为每个值使用一个单独的变量。或者,更常见的是使用“n-1”编码,其中使用少一个标志(第四个值由所有标志为0来表示)。

“n-1”编码用于需要数值输入的技术——包括逻辑回归和神经网络。对于“n”值较大的情况,这种方法是不合适的。问题在于它会产生许多稀疏数据的输入;稀疏数据具有高度相关性。更多的输入意味着网络中更多的自由度,使得网络更难训练。

在你的情况下,这个特定输入只有四个值。将其拆分为三个变量可能是合理的。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注