MultinomialNB错误:"未知标签类型"

 手机用户2702938061 发布于 2023-02-08 17:37

我有两个numpy数组,X_train和Y_train,其中第一个维度(700,1000)由值0,1,2,3,4和10填充.第二个维度(700,)填充为由于我正在使用烂番茄的API,因此我认为这些值是"新鲜的"或"腐烂的".出于某种原因,当我执行时:

nb = MultinomialNB()
nb.fit(X_train, Y_train)

我明白了:

ValueError: Unknown label type

我尝试构建一对较小的数组:

print xs, '\n', ys

[[0 0 0 0 1]
 [1 0 0 2 5]
 [3 2 5 5 0]
 [3 2 0 0 1]
 [1 5 1 0 0]]

['rotten' 'fresh' 'fresh' 'rotten' 'fresh']

并且多项NB适合不会出现未知标签错误.有关为什么会发生这种情况的任何想法?

我还用numpy.unique检查了X_train,Y_train中的唯一值,看起来好像没有任何奇怪或错误的标签 - 它们都是'新鲜'或'烂'.

我生成X_train和Y_train的代码:

def make_xy(critics, vectorizer=None):
    stext = critics['quote'].tolist() # need to have a list
    if vectorizer == None:
        vectorizer = CountVectorizer(min_df=0)
    vectorizer.fit(stext)
    X = vectorizer.transform(stext).toarray() # this is X
    Y = np.asarray(critics['fresh'])
    return X[0:1000,0:1000], Y[0:1000] # this is X_train, Y_train

其中'评论家'是从CSV文件(https://www.dropbox.com/s/0lu5oujfm483wtr/critics.csv)导入的pandas数据框,并清除了所有丢失的数据:

critics = pd.read_csv('critics.csv')
critics = critics[~critics.quote.isnull()]
critics = critics[critics.fresh != 'none']
critics = critics[critics.quote.str.len() > 0]

M4rtini.. 16

问题似乎是y的类型.看起来像numpy没有设法弄清楚它是一个字符串.所以它被设置为通用对象.如果你改变:
Y = np.asarray(critics['fresh'])Y = np.asarray(critics['fresh'], dtype="|S6")我认为它应该工作.

1 个回答
  • 问题似乎是y的类型.看起来像numpy没有设法弄清楚它是一个字符串.所以它被设置为通用对象.如果你改变:
    Y = np.asarray(critics['fresh'])Y = np.asarray(critics['fresh'], dtype="|S6")我认为它应该工作.

    2023-02-08 17:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有