Почему точность svm в python и Matlab различна? - PullRequest
0 голосов
/ 02 марта 2019

Я применяю SVM к набору данных, и я достиг точности 100%!но когда я использую приложение классификатора Matlab, я достигаю 98,8% точности.в обоих из них ядро ​​является RBF.в Python я использую 20 процентов данных в качестве теста и 80 процентов данных в качестве данных поезда.Кто-нибудь может объяснить это?

all_data = pd.read_csv('data.csv', header=0, lineterminator="\n")
all_data = shuffle(all_data,random_state= 20)
all_data = all_data.apply(LabelEncoder().fit_transform)
data = np.array(all_data.drop('g', axis=1), dtype=np.float32)
labels = np.array(all_data['g'])
train_data = data[:200]
train_lable = labels[:200]
test_data = data[200:]
test_lable = labels[200:]
class_names = [25]
clf = svm.SVC(gamma=0.001)
clf.fit(train_data, train_lable)
score = clf.score(test_data,test_lable)
print(score)

1 Ответ

0 голосов
/ 08 марта 2019
  1. Вполне возможно, что между двумя библиотеками Matlab и Python могут быть некоторые прикладные различия.
  2. SVM чувствителен к точности с плавающей точкой, поэтому, я думаю, это из-за разницы в числах с плавающей запятой в Matlab и Python.Если вы заставите matlab выполнять вычисления как uint64, вы, вероятно, найдете более точный ответ.

Лучше задавать вопросы на форуме данных .

...