Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否提供scikit学习分类器自定义训练数据?_Python_Scikit Learn_Training Data - Fatal编程技术网

Python 是否提供scikit学习分类器自定义训练数据?

Python 是否提供scikit学习分类器自定义训练数据?,python,scikit-learn,training-data,Python,Scikit Learn,Training Data,我已经为此工作了一整天(相当挣扎)。在阅读了文档和许多其他教程之后,由于我的经验不足,我不知道如何将自己的数据用于多项式NB分类器 以下是主教程中的代码: from sklearn.datasets import fetch_20newsgroups from sklearn.naive_bayes import MultinomialNB categories = ['alt.atheism', 'soc.religion.christian', 'comp.gr

我已经为此工作了一整天(相当挣扎)。在阅读了文档和许多其他教程之后,由于我的经验不足,我不知道如何将自己的数据用于多项式NB分类器

以下是主教程中的代码:

from sklearn.datasets import fetch_20newsgroups
from sklearn.naive_bayes import MultinomialNB

categories = ['alt.atheism', 'soc.religion.christian',
              'comp.graphics', 'sci.med']

text_clf = Pipeline([('vect', CountVectorizer()),
                     ('tfidf', TfidfTransformer()),
                     ('clf', MultinomialNB()),
])
twenty_train = fetch_20newsgroups(subset='train',
    categories=categories, shuffle=True, random_state=42)
text_clf.fit(twenty_train.data, twenty_train.target)  

docs_test = ['Graphics is love', 'the brain is part of the body']

predicted = text_clf.predict(docs_test)

for doc, category in zip(docs_test, predicted):
    print('%r => %s' % (doc, twenty_train.target_names[category]))
显然,它是有效的。但是我如何用自己的数据(存储在python字典或类似的东西中)替换fetch_20新闻组呢?以下培训数据中的每一项都被归类为一个类别,这是如何实现的


我明白这不是一个很好的问题,但在这个需要的时候,我只想了解一下它是如何工作的。感谢

几乎所有的sklearn
fit
方法都会将训练数据列表和标签列表作为输入。在您的情况下,训练数据列表将是字符串列表(您必须在其上训练模型的文本)。比如
[“这是我的第一个训练样本”,“这是第二个字符串”,“这是第三个”,…]
,还有另一个标签列表,比如
[“label1”,“label2”,“label1”,“…]

然后将这些列表传递给fit方法:

text_clf.fit(list_of_training_datas, list_of_labels)
predict
方法将保持不变,因为它还将获取要测试的样本列表,并将返回包含每个测试样本的预测标签的列表