我一直在使用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
如果预测可用于对单个记录进行分类,那么该怎么做?
答案 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
也期望一个数组,但你可以传递一个样本数组。