基于不完全d的人口统计用户分类

2024-04-20 06:47:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些包含用户名和他们各自性别的数据。 例如,我的数据列表中的条目可能如下所示: {用户:'abc123',性别:'M'}

对于每个用户名,我也会得到一包文本、图像和附加到每个用户名的位置,尽管用户不必至少有一个文本、一个图像和附加到每个用户名的位置。你知道吗

对于每个数据源,我可以将它们转换为特征向量,然后将其输入分类器。然后我可以通过10倍交叉验证来确认分类器是否有效。你知道吗

我想结合所有分类器的一些输出,这样我就可以将它们输入到元分类器中,希望能够提高准确度。你知道吗

问题是,由于数据是不完整的,我不能简单地组合从每个数据源生成的所有向量并将它们输入一个分类器。一些用户可能没有图像数据,或者其他用户可能没有位置数据。你知道吗

我目前的想法是使用每个分类器为每个用户获得一些类别概率集,比如从每个数据源的分类器中获得[Male:0.75,Female:0.25],乘以所有类别的值,并使用最高的值作为程序的预测类别。你知道吗

因此,如果每个数据源(文本、图像、位置)有一个分类器,那么我总共有3个分类器。即使某些用户缺少一个或两个数据源,我仍然可以获得这些用户的类别概率集。你知道吗

scikit learn是否有任何算法可以输出用户是某个性别的概率权重,而不只是对他们进行分类?你知道吗

或者有其他的算法可以满足我的需要?你知道吗

谢谢你通过我的文字墙!你知道吗


Tags: 数据用户图像文本算法列表分类器条目
1条回答
网友
1楼 · 发布于 2024-04-20 06:47:38

我认为您可以在这里使用“naivebayes”分类器。在这种情况下,类(M或F)概率是项的乘积,每个可用的特征集对应一个项,您只需忽略(从乘积中排除)缺少的任何特征集。你知道吗

这就是理由。假设特征集是X1,X2,X3。每一个都是特征向量。朴素贝叶斯假设特征集是独立的,即P(X1,X2,X3 | C)=P(X1 | C)P(X2 | C)P(X3 | C)。(请记住,这只是一个简化的假设,可能是真的,也可能不是真的!)当所有特征集都存在时,后验类概率仅为P(C | X1,X2,X3)=P(X1,X2,X3 | C)P(C)/Z=P(X1 | C)P(X2 | C)P(X3 | C)P(C)/Z,其中Z是使两个类的概率相加为1的归一化常数。所以要利用这个公式,你需要为每个特征集建立一个密度模型;如果这个方法对你有意义,我们可以讨论这些密度模型。你知道吗

如果一个特性集(比如X3)丢失了呢?这意味着我们需要计算P(C | X1,X2)=P(X1,X2 | C)P(C)/Z。但是注意,P(X1,X2 | C)=积分P(X1,X2,X3 | C)dX3=积分P(X1 | C)P(X2 | C)P(X3 | C)dX3=P(X1 | C)P(X2 | C)积分P(X3 | C)dX3。请注意,积分P(X3 | C)dX3=1,因此P(X1,X2 | C)=P(X1 | C)P(X2 | C),也就是说,朴素贝叶斯假设仍然只适用于观察到的特征集,因此您可以继续计算P(C | X1,X2)=P(X1 | C)P(X2 | C)P(C)/Z,也就是说,当朴素贝叶斯模型中缺少某些特征集时,只需忽略它。你知道吗

相关问题 更多 >