假设我有一个包含以下数据的训练集:
Type | Size | Price | Rating | SUGGESTION
---------------------------------------------------
Shirt M Budget 0 Bad
Trouser L Budget 4.2 Good
Shirt M Expensive 2.3 Good
....etc....
在提供输入样本时,我们需要将SUGGESTION
作为我们需要建议的类。意味着,当给出输入样本(与训练数据集不同)时,我们需要确定它是Good
还是Bad
。
能够根据从互联网上找到的示例了解概率计算:
数据集:
计算输入样本:
我的数据集中的疑问是,我有一个名为Rating
的列。那么,对于那一列,我们也像其他列一样进行概率计算(如上面的截图所示)?或者我们需要考虑一个特定列的值的其他方式?说像平均值和标准偏差?
谢谢
答案 0 :(得分:0)
列“大小”和“价格”代表分类数据(实际上,有序,但这是另一点)。虽然你可以将“评级”建模为分类值,但这可能是个坏主意,将数据建模为数字会更好。这就是原因。
将数据视为分类和数字的差异具有不同的价值。假设您有3个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的概率。
所以,是的,您应该使用数值分布(例如Gaussian)来评估数据。我还建议做一些清理:显然,0表示“未评级”而不是“非常糟糕”,因此您可能想要告诉您的模型(例如,用平均评级替换0)。
答案 1 :(得分:0)
关于如何处理评级栏的答案通常是答案:取决于。
我首先会尝试确定评级的数字真正代表什么。我希望评级为整数值,例如为电影评论分配一些星星。在这种情况下,小数值表明评级是其他的。检查测试数据应该告诉您这些数据是否已经是离散值,或者它们是否可能落在数字线的任何位置。例如,如果唯一的值是0,1.1,2.3,3.5,4.2和5.6,那么就像处理大小的S,M和L一样处理它们。
如果等级值真的是数字并且落在0到10之间的任何地方,你能否在网球示例中处理它们与温度类似。温度可以测量为数值,但已经映射到Hot,Cool等组。
如果分组不起作用,您可能需要进行一些数学计算并根据数据的分布计算概率。
最后,您可以尝试使用其他算法,例如K Nearest Nebour