Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
9 / 5 / 4
Регистрация: 11.12.2016
Сообщений: 166

Различия Matlab и Python

22.02.2022, 15:56. Показов 1339. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, добрый день!

Не подскажите, почему при обучении и тестировании модели SVM в Matlab и в Python - получаются разные результаты? В Matlab Acc ± 95%, а в Python ± 85%, что более-менее, но при тестировании на данных, записанных потом, Matlab выдает так же около 90%, точность же питона резко падает вниз и составляет около 10%

Код Python (Обучение):
Python
1
2
3
4
5
6
7
8
9
10
11
12
scaler = StandardScaler().fit_transform(features)
train, test, train_labels, test_labels = train_test_split(scaler, labels, test_size=0.3, random_state=100)
 
svm = svm.SVC(kernel='rbf', gamma=1, C=1, cache_size=1024, max_iter=1000000)
model_svm = svm.fit(train, train_labels)
preds_svm = svm.predict(test)
acc_svm = accuracy_score(test_labels, preds_svm)
 
print(f'SVM accuracy is: {acc_svm * 100}')
 
with open('../../models/model.pkl', 'wb') as f:
    pickle.dump(model_svm, f)
Код Python (Использование):
Python
1
2
3
4
5
6
    with open("models/model.pkl", "rb") as f:
        model = pickle.load(f)
 
    from sklearn.preprocessing import StandardScaler
 
    pred = model.predict(data.reshape(1, -1)) # data - массив размерностью 1 строчка и 25 столбцов

Код Matlab:
Matlab M
1
2
SVMModel = fitcsvm(X,Y, 'Standardize',true, 'KernelFunction','rbf');
[~,scoreT] = predict(SVMModel,X);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2022, 15:56
Ответы с готовыми решениями:

Различия между версиями в python
изучаю питон, хочу решить легенькую задачку по спискам, найти сумму элементов нечетных(четных) чисел в списке. знаю , как ответ будет во...

MatLab to Python
Доброго времени суток. Помогите, пожалуйста, с кодом на Pyton. Я его не знаю, а с меня требуют. Суть в том, что у меня есть...

Интеграция MATLAB-Python
Добрый вечер! Есть задача в цикле работы программы на python 3.6 периодически обращаться к проекту в MATLAB, результат работы которого...

4
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
22.02.2022, 18:30
У вас в коде не видно, чтобы data нормализировалась. Импорт StandartScaler есть, а его использования использования нет...
Если хотите чтобы вам помогли, выкладывайте рабочий код с данными, чтобы можно было проверить.
0
9 / 5 / 4
Регистрация: 11.12.2016
Сообщений: 166
23.02.2022, 15:40  [ТС]
u235,

Добрый день, благодарю за ответ
Файл для обучения модели
initial_model.py
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pickle
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn import svm
from libsvm.svmutil import *
 
vectors_0 = np.loadtxt('../vector_0.txt')
vectors_1 = np.loadtxt('../vector_1.txt')
 
label_names = list()
labels = list()
for i in range(24):
    label_names.append('0')
    labels.append(0)
for i in range(18):
    label_names.append('1')
    labels.append(1)
 
feature_names = ['Vector activity']
features = np.vstack([vectors_0, vectors_1])
 
scaler = StandardScaler().fit_transform(features)
train, test, train_labels, test_labels = train_test_split(scaler, labels, test_size=0.3, random_state=100)
 
svm = svm.SVC(kernel='rbf', gamma=1, C=1, cache_size=1024, max_iter=1000000)
model_svm = svm.fit(train, train_labels)
preds_svm = svm.predict(test)
acc_svm = accuracy_score(test_labels, preds_svm)
 
print(f'SVM accuracy is: {acc_svm * 100}')
 
with open('../../models/svm_model.pkl', 'wb') as f:
    pickle.dump(model_svm, f)
Файлы vector_0.txt и vector_1.txt - набор векторов признаков (Приложил)


Использование модели, тут используются новые данные файл vector_new.txt - приложил
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def predictions():
    vector_new = np.loadtxt('calculations/vector_new.txt', float)
 
    with open("models/svm_model.pkl", "rb") as f:
        model = pickle.load(f)
 
    vectors_0 = np.loadtxt('../vector_0.txt')
    vectors_1 = np.loadtxt('../vector_1.txt')
 
    features = np.vstack([vectors_0, vectors_1])
    scaler = StandardScaler().fit(features)
    features = scaler.transform(vector_new)
 
    for el in features:
        preds = model.predict(el)
        print(preds[0])
Вложения
Тип файла: txt vector_0.txt (15.1 Кб, 2 просмотров)
Тип файла: txt vector_1.txt (11.1 Кб, 2 просмотров)
Тип файла: txt vector_new.txt (16.6 Кб, 2 просмотров)
0
9 / 5 / 4
Регистрация: 11.12.2016
Сообщений: 166
23.02.2022, 15:48  [ТС]
На выходе ± должно получится так [1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0]
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
24.02.2022, 11:01
W0rtX, думаю что у вас слишком маленький датасет и слишком много признаков. Это будет показательно, если убрать random_state и запустить несколько раз. Кроме того, не факт, что на этих данных SVM или какой-то другой метод выдаст удовлетворительный результат.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.02.2022, 11:01
Помогаю со студенческими работами здесь

Конвертирование кода Matlab на Python
Добрый день! Есть программа в Матлабе, хотелось бы ее переделать под питон, у меня ничего с этим не получилось. Буду рад помощи! ...

Matlab ->python адаптация кода
Как выглядит код полностью: spectrum_x = fz*(0:(L/2))/L; x=0:(1/fz):time; y=amp*cos(2*3.14*f*x+faz); amp_spec =...

Различия между языками C++, C#, Python и Java
Разница простая - С++ универсальный язык предназначенный прежде всего для cоздания нативного кода и полной свободы программиста. Т.е....

Сравнить две строки на различия не учитывая кол-во пробелов и такие различия в буквах как о-и, н-т, в-д.
Здравствуйте. Помогите пожалуйста дополнить программу. Суть программы - нужно сравнить две строки на различия не учитывая кол-во...

Переход от Python к Matlab
Господа, доброго времени суток. Интересует такой вопрос. Есть ли в matlab-е аналог такой формы из python-а "for input_stat,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru