是否有Scikit学习分类器的分类功能?

时间:2018-03-15 09:50:19

标签: python machine-learning scikit-learn classification

我一直在使用NTLK分类器训练数据集并对单个记录进行分类。 为了训练记录,我使用了这个功能,

nltk.NaiveBayesClassifier.train(train_set)

对于单个记录的分类,

nltk.NaiveBayesClassifier.classify(record)

其中,“record”是变量名。

在Scikit分类器中,对于训练数据集,使用的函数是

from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier()
classifier.fit(X_train, y_train)

在scikit学习分类器中对单个记录进行分类的功能是什么?即,是否有类似这样的classifier.classify()?

预测方法仅对转换为稀疏矩阵向量的整个测试集进行分类,如y_pred = classifier.predict(X_test)

y_pred = classifier.predict(X_test)

我无法对单个记录进行分类;我收到这个错误:

File "C:\Users\HSR\Anaconda2\lib\site-packages\sklearn\utils\validation.py", 
line 433, in check_array array = np.array(array, dtype=dtype, order=order, 
copy=copy) ValueError: could not convert string to float: This is a bot

如果预测可用于对单个记录进行分类,那么该怎么做?

2 个答案:

答案 0 :(得分:2)

如果您正在寻找一种可以帮助您预测数据属于哪个类的方法,我相信,

from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier()
classifier.fit(X_train, y_train)
classifier.predict(record)

会有所帮助。要了解有关可用API的更多信息,请遵循此link to the documentation

看起来,您正在寻找文本分类器。这是文本分类器的scikit-learn example。该页面详细介绍了如何使用scikit-learn中的文本数据。

答案 1 :(得分:0)

您需要应用所有应用于训练数据的相同预处理,sklearn分类器不知道您将文本转换为训练数据所做的工作。但是,这可以使用sklearn的管道来完成。 predict也期望一个数组,但你可以传递一个样本数组。