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

Классификация машинного обучения по сравнению с регрессией

питон. Tagged с Python, Machineleasning.

Вы слышали о Машинное обучение ? Классификация? Регрессия?

В чем разница между этими задачами?

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

Компьютеры все время обрабатывают номера, поэтому любая информация, которую вы имеете, необходимо представлена в виде номеров. В самой основной форме каждая запись показана как пара (x, y) в двухмерной плоскости.

Классификация против регрессии

Тогда задача классификации состоит из новой точки данных, принадлежит ли она к классу Blue или Class Red? Его вывод является дискретным значением.

Для регрессии он пытается предсказать непрерывную ценность. Вот почему есть только один цвет.

Трудно реализовать? Не совсем. Модуль Sklearn Поставляется с алгоритмами из коробки. Для классификация или Регрессия Есть много примеров.

Программа ниже создает сюжеты

#!/usr/bin/python3 
import matplotlib.pyplot as plt
import numpy as np

from sklearn.datasets import make_blobs, make_regression
from sklearn.svm import LinearSVC, LinearSVR


title_size = 14
axis_label_size = 12

params = {'legend.fontsize': 7,
          'figure.figsize': (7, 3),
          'axes.labelsize': 8,
          'axes.titlesize': 9,
          'xtick.labelsize': 10,
          'ytick.labelsize': 10}
plt.rcParams.update(params)


def make_classification_example(axis, random_state):
    X, y = make_blobs(n_samples=100, n_features=2, centers=2, cluster_std=2.7, random_state=random_state)

    axis.scatter(X[y == 0, 0], X[y == 0, 1], color="red", s=10, label="Disease")
    axis.scatter(X[y == 1, 0], X[y == 1, 1], color="blue", s=10, label="Healthy")

    clf = LinearSVC().fit(X, y)

    # get the separating hyperplane
    w = clf.coef_[0]
    a = -w[0] / w[1]
    xx = np.linspace(-5, 7)
    yy = a * xx - (clf.intercept_[0]) / w[1]

    # plot the line, the points, and the nearest vectors to the plane
    axis.plot(xx, yy, 'k-', color="black", label="Model")

    ax1.tick_params(labelbottom='off', labelleft='off')
    ax1.set_xlabel("Gene 1")
    ax1.set_ylabel("Gene 2")
    ax1.legend()


def make_regression_example(axis, random_state):
    X, y = make_regression(n_samples=100, n_features=1, noise=30.0, random_state=random_state)

    axis.scatter(X[:, 0], y, color="blue", s=10, label="Patients")

    clf = LinearSVR().fit(X, y)
    axis.plot(X[:, 0], clf.predict(X), color="black", label="Model")

    ax2.tick_params(labelbottom='off', labelleft='off')
    ax2.set_xlabel("Gene 1")
    ax2.set_ylabel("Survived (years)")
    ax2.legend()



random_state = np.random.RandomState(42)

f, (ax1, ax2) = plt.subplots(ncols=2)

ax1.set_title("Classification")
make_classification_example(ax1, random_state)

ax2.set_title("Regression")
make_regression_example(ax2, random_state)

plt.savefig("classification.vs.regression.png", bbox_inches="tight")

Ресурсы машинного обучения:

Оригинал: “https://dev.to/petercour/machine-learning-classification-vs-regression-1gn”