Готовы ли вы погрузиться в захватывающий мир логистической регрессии? Этот мощный алгоритм машинного обучения идеально подходит для задач классификации, и в этой статье мы шаг за шагом проведем вас через процесс построения модели логистической регрессии в 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. Конечно, это всего лишь простой пример, и есть много других функций и методов, которые вы можете использовать для повышения производительности модели. Но мы надеемся, что это послужило вам хорошей отправной точкой для дальнейшего изучения логистической регрессии.