Рубрики
Без рубрики

Время веселиться! Классифицируйте данные с поддержкой векторной машины

Классификация Python SVM. Теги с Python, MachineLearning.

Готов к музыке?

Классификация данных – это общая задача в машинном обучении. Вектор поддержки (SVM) – одна из моделей, которые могут сделать это.

Что такое классификация?

Учитывая новые данные, принять решение, к которому он принадлежит классу. Как Гарфилд ниже:

Это был бы классификатор, который не использует данные. Программисты пытаются быть умными и использовать исторические данные в своем алгоритме

Данные?

Поезда SVM по данным (ML Algorithms поезду на данные). Эти данные маркируются данными, для каждого входа есть выход.

Что касается терминологии. Ученые называют этому «контролируемое обучение». Программисты вызывают эти (помеченные) данные.

Все ваши байты принадлежат нам

Так как вы загружаете эти данные? где вы можете найти его? Модуль обучения машины Sklearn поставляется с некоторыми наборами данных, такими как набор данных IRIS. Этот набор данных имеет несколько столбцов, поэтому принимайте только первые два.

#!/usr/bin/python3
iris = datasets.load_iris()
X = iris.data[:, :2]

# we only take the first two features. We could
# avoid this ugly slicing by using a two-dim dataset

Y = iris.target

Затем нанесите SVM и постройте вывод. Теперь, не входя в большие детали, алгоритм ML создан и обучен функцией FIT (). Переменные x и y – данные, которые мы загружены ранее.

Помните, что мы сказали: «Для каждого ввода есть выход». Итак, каждый Y – выход для входного вектора X.

Из набора данных, загруженных выше.

#!/usr/bin/python3
clf = svm.SVC(kernel=my_kernel)
clf.fit(X, Y) 

Таким образом, алгоритм тренируется X и Y. Эти алгоритмы только цель – делать прогнозы: в которую вписаны новые данные.

clf.fit(X, Y) 

Запустите код

Это все. Теперь остальные детали. Полный код:

#!/usr/bin/python3
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets


# import some data to play with
iris = datasets.load_iris()
X = iris.data[:, :2]

# we only take the first two features. We could
# avoid this ugly slicing by using a two-dim dataset

Y = iris.target

def my_kernel(X, Y):
    """
    We create a custom kernel:

                 (2  0)
    k(X, Y) = X  (    ) Y.T
                 (0  1)
    """ 
    M = np.array([[2, 0], [0, 1.0]])
    return np.dot(np.dot(X, M), Y.T)

h = .02 

# step size in the mesh 
# we create an instance of SVM and fit out data.
clf = svm.SVC(kernel=my_kernel)
clf.fit(X, Y) 

# Plot the decision boundary. For that, we will assign a color to each 
# point in the mesh [x_min, x_max]x[y_min, y_max].
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) 
# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired) 
# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, cmap=plt.cm.Paired, edgecolors='k')
plt.title('3-Class classification using Support Vector= Machine with custom' ' kernel')
plt.axis('tight')
plt.show()

Ссылки по теме:

Оригинал: “https://dev.to/petercour/party-time-classify-data-with-support-vector-machine-2jmj”