- Я работал с этим пользовательским набором данных, который должен предсказывать 4 варианта (A, B, C, D).
- Набор обучающих и тестовых данных содержит четное количество каждого из 4 возможных результатов.
- Этот набор данных затем передается в модель sklearn.svm.LinearSVC () для прогнозирования.
- По какой-то причине в большинстве случаев, когда я запускаю модель в наборе тестовых данных, я часто получаю отчеты, которые либо прогнозируют один и тот же результат исключительно, либо в лучшем случае вообще не прогнозируют один из результатов, в то время как остальные прогнозы распределены равномерно .
- Редко (один из 3-х) я получаю отчет, в котором (как и должно быть) прогнозы распределяются равномерно среди всех 4 результатов.
X = trainer.drop(['TResult'], axis = 1)
y = trainer['TResult']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
newModel = LinearSVC()
newModel.fit(X_train, y_train)
pred = newModel.predict(X_test)
rep = classification_report(y_test, pred)
print(rep)
Отчет / Прогон 1:
precision recall f1-score support
A 0.00 0.00 0.00 56 <Nothing here
B 0.00 0.00 0.00 79 <Nothing here
C 0.24 1.00 0.38 66
D 0.00 0.00 0.00 78 <Nothing here
avg / total 0.06 0.24 0.09 279
Отчет / Прогон 2:
precision recall f1-score support
A 0.20 0.18 0.19 65
B 0.32 0.17 0.22 78 ]expected
C 0.22 0.59 0.32 51
D 0.50 0.26 0.34 85
avg / total 0.33 0.28 0.27 279
Отчет / Прогон 3:
precision recall f1-score support
A 0.32 0.75 0.45 67
B 0.00 0.00 0.00 79 <Nothing here
C 0.00 0.00 0.00 68 <Nothing here
D 0.33 0.62 0.43 65
avg / total 0.15 0.32 0.21 279
Отчет / Прогон 4:
precision recall f1-score support
A 0.23 0.08 0.12 59
B 0.24 0.75 0.36 69
C 0.00 0.00 0.00 73 <Nothing here
D 0.39 0.21 0.27 78
avg / total 0.22 0.26 0.19 279
Отчет / Прогон 5:
precision recall f1-score support
A 1.00 0.02 0.03 66
B 0.25 0.73 0.38 63 ]expected
C 0.60 0.04 0.08 71
D 0.37 0.43 0.40 79
avg / total 0.55 0.30 0.23 279