Готов к музыке?
Классификация данных – это общая задача в машинном обучении. Вектор поддержки (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()
Ссылки по теме:
- Модуль Sklearn
- Машина обучения новичкам курса и примеры
- Машинные учебные изделия
- Что под наблюдением обучения
- Почему Python для машинного обучения
- Машинное обучение классификатора
Оригинал: “https://dev.to/petercour/party-time-classify-data-with-support-vector-machine-2jmj”