Готовы ли вы погрузиться в захватывающий мир логистической регрессии? Этот мощный алгоритм машинного обучения идеально подходит для задач классификации, и в этой статье мы шаг за шагом проведем вас через процесс построения модели логистической регрессии в Python.

Но прежде чем мы углубимся в тонкости кодирования, давайте начнем с обзора некоторых ключевых понятий. Логистическая регрессия — это контролируемый алгоритм обучения, который используется для прогнозирования бинарного результата, например, уйдет ли клиент или нет. Он работает, оценивая вероятность принадлежности экземпляра к определенному классу (в данном случае «положительному» классу).

Теперь, когда у нас есть общее представление о логистической регрессии, давайте перейдем к самому интересному: созданию нашей модели на Python. Мы начнем с импорта необходимых библиотек и загрузки наших данных. В этом примере мы будем использовать популярный набор данных Iris, который содержит 150 наблюдений цветков ириса, включая длину и ширину чашелистиков и лепестков.

Далее нам нужно разделить наши данные на обучающие и тестовые наборы. Это важный шаг, чтобы убедиться, что наша модель не подходит для обучающих данных и хорошо обобщается для невидимых данных. Для этого мы будем использовать функцию train_test_split scikit-learn.

Теперь, когда наши данные готовы, пришло время подогнать нашу модель логистической регрессии. Для этого мы будем использовать функцию LogisticRegression scikit-learn. Но прежде чем мы это сделаем, нам нужно указать некоторые гиперпараметры, такие как сила регуляризации и используемый решатель. Не волнуйтесь, если эти термины вам незнакомы — мы объясним их более подробно чуть позже.

Теперь, когда наша модель подходит, мы можем использовать ее для прогнозирования нашего тестового набора. Для этого мы воспользуемся функцией прогнозирования scikit-learn и оценим производительность модели с использованием таких показателей, как точность, достоверность и полнота.

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

Теперь, когда вы хорошо понимаете ключевые концепции и гиперпараметры логистической регрессии, давайте рассмотрим конкретный пример на Python. Мы будем использовать тот же набор данных Iris, что и раньше, но на этот раз мы будем использовать только две функции — длину чашелистика и ширину чашелистика — для простоты.

Во-первых, давайте импортируем необходимые библиотеки и загрузим данные:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# Load the Iris dataset
df = pd.read_csv("iris.csv")
# Select only the sepal length and sepal width columns
X = df[["sepal_length", "sepal_width"]]
y = df["species"]

Далее мы разделим данные на обучающие и тестовые наборы, используя функцию scikit-learn train_test_split:

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

Теперь пришло время подогнать нашу модель логистической регрессии. Мы будем использовать решатель по умолчанию (Liblinear) и силу регуляризации 0,5:

model = LogisticRegression(C=0.5)
model.fit(X_train, y_train)

С нашей подходящей моделью мы можем использовать ее для прогнозирования тестового набора:

y_pred = model.predict(X_test)

Наконец, давайте оценим производительность модели, используя точность, точность и полноту:

acc = accuracy_score(y_test, y_pred)
print("Accuracy:", acc)

Вот и все! Вы успешно построили модель логистической регрессии в Python. Конечно, это всего лишь простой пример, и есть много других функций и методов, которые вы можете использовать для повышения производительности модели. Но мы надеемся, что это послужило вам хорошей отправной точкой для дальнейшего изучения логистической регрессии.