Я думаю, что логистическая регрессия может использоваться для обеих регрессий (получить число от 0 до 1, например, с использованием логистической регрессии для прогнозирования вероятности между 0 и 1) и классификации. Вопрос в том, что после предоставления данных обучения и целевого показателя логистическая регрессия может автоматически определить, выполняем ли регрессию или делаем классификацию?Как scikit узнает логистическую регрессию для классификации или регрессии
Например, в приведенном ниже примере коде, логистическая регрессия выясняла нам нужна просто выход, чтобы быть один из 3 класса 0, 1, 2
, кроме любого числа между 0
и 2
? Просто любопытно, как логистическая регрессия автоматически выяснила, делает ли она регрессию (выход непрерывный) или классификация (выход дискретная)?
http://scikit-learn.org/stable/auto_examples/linear_model/plot_iris_logistic.html
print(__doc__)
# Code source: Gaël Varoquaux
# Modified for documentation by Jaques Grobler
# License: BSD 3 clause
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model, datasets
# import some data to play with
iris = datasets.load_iris()
X = iris.data[:, :2] # we only take the first two features.
Y = iris.target
h = .02 # step size in the mesh
logreg = linear_model.LogisticRegression(C=1e5)
# we create an instance of Neighbours Classifier and fit the data.
logreg.fit(X, Y)
# Plot the decision boundary. For that, we will assign a color to each
# point in the mesh [x_min, m_max]x[y_min, y_max].
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = logreg.predict(np.c_[xx.ravel(), yy.ravel()])
# Put the result into a color plot
Z = Z.reshape(xx.shape)
plt.figure(1, figsize=(4, 3))
plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)
# Plot also the training points
plt.scatter(X[:, 0], X[:, 1], c=Y, edgecolors='k', cmap=plt.cm.Paired)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
«Я думаю, что логистическая регрессия может использоваться как для регрессии [...], так и для классификации» - в принципе да, но если люди говорят о логистической регрессии, они всегда ссылаются на алгоритм классификации (да, это странно). Случай регрессии является частным случаем «обобщенных линейных моделей» с логической связью. – cel
@cel, приятно поймать и проголосовать. Если мне нужна логистическая регрессия для вывода значения от 0 до 1, как мне это сделать? Предположим, что 0 означает, что люди ничего не купили, 1 означает, что люди что-то покупают, я хочу предсказать вероятность покупки с использованием логистической регрессии. В моем случае цель имеет только 0 и 1, но я хочу предсказать число с плавающей точкой от 0 до 1 для вероятности. –
@LinMa использует logreg.predict_proba() http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html#sklearn.linear_model.LogisticRegression.predict_proba – joc