От новичка до гуру: Курсы программирования на CyberDuff

Одноклассовая классификация

У меня есть более 2500 образцов, на которых был выполнен статический анализ, и из каждого образца было извлечено более 300 признаков.

Среди этих образцов я выделил более 10 APT классов, и моя цель состоит в том, чтобы построить для каждого класса одноклассовый классификатор.

Я использую библиотеку python scikit для машинного обучения, и, в частности, я сталкиваюсь с SVM одного класса.

Первый вопрос: существует ли какой-нибудь другой хороший одноклассовый классификатор для этого подхода?

Второй вопрос: я должен придумать некоторые показатели, которые могут определить своего рода «точность» классификатора. Теперь я знаю, что для одноклассового SVM понятие точности не так четко определено. Я сообщаю свой код и свою концепцию:

import numpy as np
import pandas as pd
from sklearn import svm
from sklearn.model_selection import train_test_split


df = pd.read_csv('features_labeled_apt17.csv')

X = df.ix[:,1:341].values



X_train, X_test = train_test_split(X,test_size = 0.3,random_state = 42)



clf = svm.OneClassSVM(nu=0.1,kernel = "linear", gamma =0.1)
y_score = clf.fit(X_train)

pred = clf.predict(X_test)


print(pred)

Они представляют собой вывод кода:

[ 1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
1  1   1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1 
1  1 -1   1  1  1  1  1  1  1  1  1  1  1  1  1 -1  1  1  1  1  1  1  1  1  1 -1  1   1  1  1  1  1  1  1 -1  1  1  1  1  1  1  1  1 -1  1  1  1
1 1  1  1  1   1  1  1  1  1 -1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  
1  1  1  1  1   1  1  1  1  1  1]

1 представляет, конечно, хорошо помеченный образец, а -1 представляет неправильный.

Во-первых: как вы думаете, может ли это быть хорошим подходом? Второе: для метрик, если я разделю общий элемент в тестовом наборе на неправильную маркировку?

11.02.2018

Ответы:


1

Насколько я понимаю алгоритмы машинного обучения, ваш вариант использования не подходит для применения классификатора oneclass-SVM.

Обычно oneclass-svm используется для решения проблем обнаружения выбросов без присмотра. Перейдите на эту страницу, чтобы увидеть реализация oneclass-svm для обнаружения выбросов.

Просто покажите свой data-frame, я найду любой новый подход к решению вашей проблемы.

12.02.2018
  • Доброе утро и спасибо за интересное. Мой .csv содержит 200 записей, каждая из которых содержит 341 функцию плюс метка класса, которая не представляет интереса для одного класса. Я обучил SVM одного класса и протестировал более 30% обучающих данных, и точность, которую я создал (well_classified/total element), составляет около 95%. Все в порядке, пока я не возьму 15 элементов другого класса, принадлежащих другому файлу .csv, но вывод, который, как я ожидаю, будет равен -1 для большинства из 15 элементов, вместо этого будет всем 1. Есть ли способ выписать вас из StackOverflow для лучшего понимания? Все равно спасибо, Лука 13.02.2018
  • Новые материалы

    Итак, что такое MLOps?
    Согласно Представляя MLOps: «MLOPs — это стандартизация и оптимизация управления жизненным циклом машинного обучения». Это особенно интересное определение, потому что его разделение..

    Прогрессивная транспиляция
    В последние годы программисты JavaScript (он же EcmaScript) часто используют компиляторы исходного кода , также известные как транспиляторы , для преобразования более усовершенствованной или..

    Алиса в стране машинного обучения — инициатива «100 дней кода машинного обучения»
    Covnets, регрессия, классификация, ReLU, предвзятость… — все это интригующие жаргоны, которые я слышал от своих сверстников, выбравших курс машинного обучения, по касательной во время обычного..

    Иногда учитель, всегда ученик
    Учение Йоды в применении к развитию разработчиков «Делай или не делай. Нет никакой попытки.” Обучение программированию превратилось в современное «создание группы» или «написание книги»...

    Как создать файл конфигурации сборки в Xcode | Серия настроек проекта Xcode
    Эта статья шаг за шагом расскажет вам, как создать новый файл конфигурации сборки в вашем проекте Xcode. Что такое файл конфигурации сборки? Файл конфигурации сборки — это обычный..

    Venv против Virtualenv в Python  — что использовать?
    Когда дело доходит до создания виртуальных сред в Python, есть два популярных варианта: venv и virtualenv. Оба инструмента служат одной цели — созданию изолированных сред для ваших проектов..

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