假设我有一个训练集,包含以下数据:
Type | Size | Price | Rating | SUGGESTION---------------------------------------------------Shirt M Budget 0 BadTrouser L Budget 4.2 GoodShirt M Expensive 2.3 Good....etc....
这里我将SUGGESTION
视为当提供输入样本时需要建议的类别。也就是说,当给定一个与训练数据集不同的输入样本时,我们需要判断它是Good
还是Bad
。
我能够理解基于互联网上找到的示例进行的概率计算:
数据集:
输入样本的计算:
在我的数据集中存在疑问的是,我有一个名为Rating
的列。对于该列,我们也像其他列(如上面的截图所示)那样进行概率计算吗?还是需要为这一特定列的值考虑其他方法?比如使用均值和标准差?
谢谢
回答:
“Size”和“Price”列表示分类数据(实际上是序数数据,但这是另一个话题)。虽然你也可以将“Rating”建模为分类值,但这可能不是一个好主意,最好将你的数据建模为数值数据。原因如下。
将数据视为分类和数值的区别在于不同的值。假设你有三个x的观测值:x=12
,x=13
,x=1344
。问题是:P(x=12)
,P(x=1344)
和P(x=13)
的概率差异有多大?答案在很大程度上取决于这些值代表的数据类型。
例如,如果x
表示用户ID或其他排序无关紧要的东西,这些概率可以任意不同。但如果x
表示,例如,支付率,那么显然12和13之间的差异与第三个值相比并不大。
这也有助于你推断更多关于数据的知识。例如,数据集中可能没有4.9的值,但有很多4.8和5.0。你的模型会在这两者之间“插值”,即使数据集中没有4.9,也会为其提供一个概率。
因此,是的,你应该为评级数据使用数值分布(例如高斯分布)。我还建议进行一些清理:显然,0代表“未评级”而不是“极差”,所以你可能需要告诉你的模型这一点(例如,用平均评级替换0)。