我有一个如图所示的数据。它大约是25,000行。该数据包含过去4年中12个月的详细信息。我想预测特定月份和特定职位的客户和职位空缺。
from sklearn.cross_validation import train_test_split
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
df_final['Clientname_numeric'] = le.fit_transform(df_final['ClientName'])
X = df_final[['MONTH','JobTitleID']]
y = df_final[['PositionsOpened','Clientname_numeric']]
x_train,x_test,y_train,y_test = train_test_split(X,y,test_size = 0.05 )
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
clf = RandomForestClassifier()
clf.fit(x_train, y_train)
predictions = clf.predict(x_test)
predictions = predictions.astype(int)
accuracy = accuracy_score(y_test,predictions)
我使用上面的代码并收到错误 ValueError:不支持多类多输出
答案 0 :(得分:1)
您可以使用包scikit learn
和random forest classifier。我应该指出,我对机器学习只有非常肤浅的知识,所以对于你的具体案例,这可能只是错误的。然而,RandomForestClassifier
允许一次预测多个输出。
一般情况下,根据您的数据,您可以这样处理(使用Scikit Learn):
pandas
包最容易地完成。然后将它们分成训练和测试子集。 Scikit提供off-the-shelf solution for this。RandomForestClassifier
的分类器实例,并使用训练集中的输入和输出数据(classifier.train(inputs_train, outputs_train)
)classifier.predict(inputs_predict)
)。决定您是否对分类器的预测质量感到满意。答案 1 :(得分:0)