具有大量字符串变量的数据帧上的Scikitlearn Gaussiannb

2024-09-30 20:30:14 发布

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

所以我一直试图在这样的数据帧上建立一个朴素的Baynes预测,根据3个分类变量预测目标(1/0):

Target  ConsumerType    MostSigWeekday  MostSigDayPart
  1             c             Monday           Morning
  1             y             Friday           Morning
  0             bb            Sunday           Morning
  1             ki           Thursday          Evening
  0            yoe            Monday           Evening

我的问题是GaussianNB()函数不喜欢字符串:

^{pr2}$

因此,我试图通过将所有这些变量叠加成一个-['MostSig']来构建一个CountVector:

MostSigonly = pivoted_data['MostSig']
count_vect = CountVectorizer()
vect = CountVectorizer() 
train = vect.fit_transform(MostSigonly)

这个向量化步骤是可行的,GaussianNB确实给出了一些结果,但是没有比较所有三个列,模型预测的是单个变量,我得到了这样一个不合理的结果:

model2 = GaussianNB()
trained = model2.fit(train_data,target)
c_pred = trained.predict(train_data)

print("Number of mislabeled points out of a total %d points : %d" \
      % (train_data.shape[0],(target != c_pred).sum()))

总共47121个点中错误标记的点数:30839

我的问题是,如何正确地矢量化变量? 或者更广泛地问,我应该如何处理这个问题?在

抱歉,我已经搜索了好几天了,但仍然没有解决问题的线索。在

先谢谢你!在


Tags: targetdatatrainfitmondaymorningpredtrained