【问题标题】:How can I convert a numpy array containing a list of strings into an array containing a list of zeros and ones?如何将包含字符串列表的 numpy 数组转换为包含零和一列表的数组?
【发布时间】:2018-12-30 01:52:56
【问题描述】:

现在我有这个 numpy 数组,其中包含对电子邮件是 'spam' 还是 'ham' 的预测。所以基本上是垃圾邮件预测模型的结果。我想与一个包含所用测试集类的数组进行比较。当我对它们使用MultinominalNB.score() 方法时,我收到一个错误,因为它是为了比较浮点值而不是字符串。

那么如何根据列表条目是 'spam' 还是 'ham' 将这两个数组更改为浮点值?更好的是,还有其他更好的方法来定量衡量模型的质量吗?

【问题讨论】:

  • 你能举一些例子数据吗?
  • array(['ham', 'spam', 'ham', 'spam', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham' , '火腿', '火腿', '火腿', '火腿', '火腿', '火腿', '火腿', '火腿', '火腿', '垃圾邮件', '火腿', '火腿', ' spam', 'ham', 'ham', 'spam', 'ham', 'ham', 'ham', 'ham', 'ham'....], dtype=object)例如, 是预测数组(['ham', 'spam', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', “火腿”、“火腿”、“火腿”、“火腿”、“火腿”、“火腿”、“火腿”、“火腿”、“火腿”、“垃圾邮件”、“火腿”、“火腿”、“垃圾邮件” '....], dtype='
  • a == 'ham' 呢?
  • 我尝试使用 for a 循环迭代地更改它们,如下所示:for c, x in test_classes: if x == 'ham': test_classes[c] = 0,但我得到一个 ValueError:需要解压的值太多(预期为 2)
  • @AhmedSamir 如果您有其他信息,请编辑您的问题。人们倾向于忽略 cmets,您无法在评论中正确格式化代码。

标签: numpy scikit-learn data-science bayesian


【解决方案1】:

假设你已经获得了y_truey_predicted然后使用这个:

import numpy as np


y_test = np.array(['ham', 'spam', 'ham', 'spam', 'ham', 'ham', 'ham', 'ham', 
                   'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 
                   'ham', 'ham', 'ham', 'spam','ham', 'ham', 'spam'], dtype=object)

y_predicted = np.array(['ham', 'spam', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham',
                        'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 'ham', 
                        'ham', 'ham', 'ham', 'spam','ham', 'ham', 'spam'], dtype=object)

y_test[y_test == 'ham']=0
y_test[y_test == 'spam']=1

y_predicted[y_predicted == 'ham']=0
y_predicted[y_predicted == 'spam']=1

结果:

print(y_test=
#array([0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], dtype=object)

print(y_predicted)
#array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1], dtype=object)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-05
    • 2021-07-23
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2018-06-15
    • 2022-12-11
    • 2013-08-04
    相关资源
    最近更新 更多