from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.ensemble import RandomForestClassifier
pipeline = Pipeline([
('features', FeatureUnion([
('Comments',Pipeline([
('selector',ItemSelector(column = "Comments")),
('tfidf',TfidfVectorizer(use_idf=False,ngram_range=(1,2),max_df=0.95, min_df=0,sublinear_tf=True)),
])),
('Vendor', Pipeline([
('selector',ItemSelector(column = "Vendor Name")),
('tfidf',TfidfVectorizer(use_idf=False)),
]))
])),
('clf',RandomForestClassifier(n_estimators =200, max_features='log2',criterion = 'entropy',random_state = 45))
#('clf',LogisticRegression())
])
X_train, X_test, y_train, y_test = train_test_split(X,
df['code Description'],
test_size = 0.3,
train_size = 0.7,
random_state = 100)
model = pipeline.fit(X_train, y_train)
s = pipeline.score(X_test,y_test)
pred = model.predict(X_test)
predicted =model.predict_proba(X_test)
для некоторых классификаций мой predict
совпадает с оценкой прогноза. но в некоторых случаях
proba_predict = [0.3,0.18,0.155]
но вместо того, чтобы классифицировать его как класс A, он классифицируется как класс B.
Класс прогноза: B
Фактический класс: A
Правый столбец - мои метки, а левый столбец - мои входные текстовые данные: