Линейная регрессия Sklearn (пошаговое объяснение)

Scikit-learn (Sklearn) — самый полезный и надежный пакет машинного обучения Python. Он предлагает набор быстрых инструментов для машинного обучения и статистического моделирования, таких как классификация, регрессия, кластеризация и уменьшение размерности, через интерфейс Python. Этот пакет, написанный в основном на Python, основан на NumPy, SciPy и Matplotlib. В этой статье вы узнаете больше о линейной регрессии sklearn.

Что такое линейная регрессия SKlearn?

Scikit-learn — это пакет Python, который упрощает применение различных алгоритмов машинного обучения (ML) для прогнозного анализа данных, например линейной регрессии.

Линейная регрессия определяется как процесс определения прямой линии, которая лучше всего соответствует набору разбросанных точек данных:

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

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore ProgrammeПоднимите свои навыки специалиста по данным на новый уровень

Sklearn концепции линейной регрессии

При работе с регрессионным подходом scikit-linear Learning вы столкнетесь со следующими фундаментальными концепциями:

  • Наилучшее соответствие: прямая линия на графике, которая минимизирует расхождение между связанными разбросанными точками данных.
  • Коэффициент: также известный как параметр, это коэффициент, который умножается на переменную. Коэффициент линейной регрессии представляет изменения в переменной отклика.
  • Коэффициент детерминации: это коэффициент корреляции. В регрессии этот термин используется для определения точности или степени соответствия.
  • Корреляция: измеримая интенсивность и степень связи между двумя переменными, часто известная как «степень корреляции». Значения варьируются от -1,0 до 1,0.
  • Зависимый признак: переменная, представленная как y в уравнении наклона y=ax+b. Также называется выходом или ответом.
  • Предполагаемая линия регрессии: прямая линия, которая лучше всего соответствует набору случайно распределенных точек данных.
  • Независимый признак: переменная, представленная буквой x в уравнении наклона y=ax+b. Также называется входом или предиктором.
  • Пересечение: это точка, в которой наклон пересекает ось Y, обозначенную буквой b в уравнении наклона y=ax+b.
  • Метод наименьших квадратов: метод расчета наилучшего соответствия данных путем минимизации суммы квадратов расхождений между наблюдаемыми и расчетными значениями.
  • Среднее: среднее значение группы чисел; тем не менее, в линейной регрессии среднее значение представлено линейной функцией
  • OLS (обычная регрессия наименьших квадратов): иногда известная как линейная регрессия.
  • Остаток: расстояние по вертикали между точкой данных и линией регрессии.
  • Регрессия: оценка прогнозируемого изменения переменной по отношению к изменениям других переменных.
  • Модель регрессии: оптимальная формула для аппроксимации регрессии.
  • Переменные ответа: эта категория охватывает как прогнозируемый ответ (значение, предсказанное регрессией), так и фактический ответ (фактическое значение точки данных).
  • Наклон: крутизна линии регрессии. Линейная связь между двумя переменными может быть определена с использованием наклона и точки пересечения: y=ax+b.
  • Простая линейная регрессия: линейная регрессия с одной независимой переменной.

Предварительные условия для линейной регрессии Sklearn

Прежде чем работать с линейной регрессией в Scikit-learn (sklearn), важно иметь базовое представление о следующих концепциях:

  • Линейная алгебра. Линейная регрессия предполагает решение системы линейных уравнений, поэтому важно иметь базовое понимание линейной алгебры, включая такие понятия, как матрицы, векторы и умножение матриц.
  • Статистика. Понимание основных статистических понятий, таких как среднее значение, дисперсия и стандартное отклонение, необходимо для работы с моделями линейной регрессии.
  • Программирование на Python: Scikit-learn — это библиотека Python, поэтому для работы с ней необходимо базовое понимание программирования на Python.
  • NumPy: NumPy — это фундаментальный пакет для научных вычислений на Python, который широко используется в научном обучении. Важно иметь базовое представление о массивах и операциях NumPy.
  • Pandas: Pandas — еще один важный пакет для манипулирования и анализа данных в Python. Он используется для чтения и предварительной обработки данных для использования в scikit-learn.
  • Визуализация данных. Прежде чем строить модель линейной регрессии, важно визуализировать и изучить данные. Matplotlib и Seaborn — популярные пакеты визуализации данных на Python.

Как только вы хорошо поймете эти концепции, вы сможете начать изучать и работать с линейной регрессией в Scikit-learn.

Как создать модель линейной регрессии Sklearn

Шаг 1. Импорт всех необходимых библиотек

импортировать numpy как np

импортировать панд как pd

импортировать seaborn как sns

импортировать matplotlib.pyplot как plt

из предварительной обработки импорта sklearn, svm

из sklearn.model_selection импорт train_test_split

из sklearn.linear_model импорт LinearReгрессия

Шаг 2: Чтение набора данных

компакт-диск C:\Users\Dev\Desktop\Kaggle\Salinity

# Изменение места чтения файла на местоположение набора данных

df = pd.read_csv('bottle.csv')

df_binary = df(('Salnty', 'T_degC'))

# Берем только два выбранных атрибута из набора данных

df_binary.columns = («Сал», «Темп»)

# Переименование столбцов для облегчения написания кода

df_binary.head()

# Отображение только первых строк вместе с названиями столбцов

Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore ProgrammeПоднимите свои навыки специалиста по данным на новый уровень

Шаг 3. Исследование разброса данных

sns.lmplot(x =”Sal”, y =”Temp”, data = df_binary, order = 2, ci = None)

# Построение графика разброса данных

Шаг 4: Очистка данных

# Устранение NaN или отсутствующих входных чисел

df_binary.fillna(метод ='ffill', inplace = True)

Шаг 5. Обучение нашей модели

X = np.array(df_binary('Sal')).reshape(-1, 1)

y = np.array(df_binary('Temp')).reshape(-1, 1)

# Разделение данных на независимые и зависимые переменные

# Преобразование каждого кадра данных в массив numpy

# поскольку каждый кадр данных содержит только один столбец

df_binary.dropna(inplace = True)

# Удаление всех строк со значениями Nan

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0,25)

# Разделение данных на данные обучения и тестирования

regr = ЛинейнаяРегрессия()

regr.fit(X_train, y_train)

print(regr.score(X_test, y_test))

Шаг 6: Изучение наших результатов

y_pred = regr.predict(X_test)

plt.scatter(X_test, y_test, цвет ='b')

plt.plot(X_test, y_pred, цвет ='k')

plt.show()

# Разброс данных прогнозируемых значений

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

Шаг 7. Работа с меньшим набором данных

df_binary500 = df_binary(:)(:500)

# Выбор первых 500 строк данных

sns.lmplot(x =”Sal”, y =”Temp”, data = df_binary500,

порядок = 2, ci = нет)

Мы можем заметить, что первые 500 строк соответствуют линейной модели. Продолжаем в том же порядке, что и раньше.

df_binary500.fillna(метод ='ffill', inplace = True)

X = np.array(df_binary500('Sal')).reshape(-1, 1)

y = np.array(df_binary500('Temp')).reshape(-1, 1)

df_binary500.dropna(вместо = Истина)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0,25)

regr = ЛинейнаяРегрессия()

regr.fit(X_train, y_train)

print(regr.score(X_test, y_test))

y_pred = regr.predict(X_test)

plt.scatter(X_test, y_test, цвет ='b')

plt.plot(X_test, y_pred, цвет ='k')

plt.show()

Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore ProgrammeПоднимите свои навыки специалиста по данным на новый уровень

Теория линейной регрессии

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

Алгоритм находит наиболее подходящую линию, которая минимизирует сумму квадратов ошибок между прогнозируемыми значениями и фактическими значениями. Эта линия называется линией регрессии или линией наилучшего соответствия. Уравнение этой линии имеет вид:

y = β0 + β1 * x1 + β2 * x2 + … + βn * xn

где y — зависимая переменная, x1, x2, …, xn — независимые переменные, β0 — точка пересечения, а β1, β2, …, βn — коэффициенты.

Целью алгоритма линейной регрессии является оценка значений этих коэффициентов (β0, β1, β2,…, βn) таким образом, чтобы сумма квадратов ошибок была минимизирована. Этот процесс называется методом обычных наименьших квадратов (МНК).

Библиотека scikit-learn на Python реализует линейную регрессию через класс LinearReprofit. Этот класс позволяет нам подогнать линейную модель к набору данных, прогнозировать новые значения и оценивать производительность модели.

Чтобы использовать класс LinearReгрессия, нам сначала нужно импортировать его из модуля sklearn.linear_model. Затем мы можем создать экземпляр класса и вызвать его метод fit для обучения модели на наборе данных. Наконец, мы можем использовать метод прогнозирования для генерации прогнозов на основе новых данных.

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

Оценка модели

После того как мы обучили модель линейной регрессии с использованием набора данных, мы должны оценить ее производительность, чтобы определить, насколько хорошо она может прогнозировать новые значения. Есть несколько показателей, которые мы можем использовать для оценки производительности модели линейной регрессии:

  1. Среднеквадратическая ошибка (MSE): это наиболее часто используемый показатель для оценки модели линейной регрессии. Он измеряет среднее значение квадратов разностей между прогнозируемыми значениями и фактическими значениями. Более низкий MSE указывает на лучшую производительность.
  2. Среднеквадратическая ошибка (RMSE): это квадратный корень из MSE, который обеспечивает более интерпретируемый показатель, поскольку он находится в тех же единицах измерения, что и целевая переменная.
  3. R-квадрат (R2): этот показатель измеряет долю дисперсии целевой переменной, объясняемую моделью. Оценка R2, равная 1, указывает на идеальное соответствие, а оценка 0 указывает на то, что модель не лучше, чем прогнозирование среднего значения целевой переменной.
  4. Средняя абсолютная ошибка (MAE). Этот показатель измеряет среднюю абсолютную разницу между прогнозируемыми и фактическими значениями. Он менее чувствителен к выбросам, чем MSE.

Чтобы оценить модель линейной регрессии с использованием этих показателей, мы можем использовать метод оценки класса линейной регрессии в scikit-learn. Например, чтобы вычислить оценку R2 на наборе тестов, мы можем сделать следующее:

из sklearn.linear_model импорт LinearReгрессия

из sklearn.metrics импорт r2_score

# Обучим модель

модель = ЛинейнаяРегрессия()

model.fit(X_train, y_train)

# Оцениваем модель на тестовом наборе

y_pred = model.predict(X_test)

r2 = r2_score(y_test, y_pred)

print(“Оценка R2:”, r2)

В дополнение к этим метрикам мы можем визуализировать производительность модели с помощью различных графиков, таких как диаграммы рассеяния прогнозируемых значений в сравнении с фактическими значениями, графики остатков и графики QQ. Эти графики могут помочь нам выявить закономерности или выбросы в данных, которые модель, возможно, не уловила.

Множественная линейная регрессия

Множественная линейная регрессия (MLR) — это статистический метод, который анализирует взаимосвязь между зависимыми и несколькими независимыми переменными. Это расширение простой линейной регрессии (SLR), в котором для прогнозирования зависимой переменной используется только одна независимая переменная.

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

Исследовательский анализ данных

Исследовательский анализ данных (EDA) анализирует и понимает набор данных, чтобы обобщить его основные характеристики и получить представление о его основных закономерностях и связях. EDA стремится раскрыть ценную информацию, обнаружить аномалии и выбросы, а также выявить любые проблемы или предвзятости, которые могут повлиять на качество данных.

Ниже приведены некоторые общие этапы EDA:

  1. Сбор данных: Сбор и сбор данных из различных источников.
  2. Очистка данных: проверка данных на наличие отсутствующих значений, выбросов и несоответствий и их соответствующая обработка. Это может включать в себя вменение пропущенных значений, удаление выбросов или преобразование данных.
  3. Визуализация данных: создание визуальных представлений данных с помощью графиков, диаграмм и других наглядных пособий. Это помогает выявить закономерности и взаимосвязи в данных и получить представление об их характеристиках.
  4. Исследование данных: анализ данных для выявления тенденций, взаимосвязей и закономерностей. Это может включать в себя вычисление сводных статистических данных, таких как среднее значение, медиана, стандартное отклонение и коэффициенты корреляции.
  5. Моделирование данных: создание статистических моделей или моделей машинного обучения для прогнозирования или выводов на основе данных.
  6. Передача данных: четкое и краткое представление результатов анализа заинтересованным сторонам.

Прогнозирование с помощью модели многомерной регрессии

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

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

Вот шаги для прогнозирования с помощью модели многомерной регрессии:

  • Подготовьте новые данные. Мы должны подготовить последние данные, создав новую матрицу дизайна с теми же столбцами, что и матрица дизайна, используемая для обучения модели. Значения независимых переменных должны быть теми значениями, для которых мы хотим делать прогнозы.
  • Загрузите модель регрессии. Нам нужно загрузить модель, которую мы ранее обучили на наших обучающих данных.
  • Прогнозирование зависимой переменной: теперь мы можем использовать функцию прогнозирования () объекта регрессионной модели, чтобы прогнозировать значения зависимой переменной для новых данных. Функция предсказывания() принимает новую матрицу плана в качестве входных данных и возвращает прогнозируемые значения зависимой переменной.
  • Интерпретируйте результаты: получив прогнозируемые значения зависимой переменной, мы можем интерпретировать их, чтобы получить представление о взаимосвязях между независимыми и зависимыми переменными. Мы можем сравнить прогнозируемые значения с фактическими значениями, чтобы оценить точность модели и определить области, где модель может нуждаться в улучшении.

Поднимите свои навыки специалиста по данным на новый уровень с помощью магистерской программы Data Scientist от IBMExplore ProgrammeПоднимите свои навыки специалиста по данным на новый уровень

  1. Модели регрессии Sklearn
  2. Кластеризация Склеарна
  3. Склеарн СВМ
  4. Деревья решений Sklearn
  5. Стохастический градиентный спуск в SKlearn

Заключение

Зарегистрируйтесь на программе PG в области науки о данных Simplilearn, чтобы узнать больше о применении Python и стать лучшими профессионалами в области Python и данных. Эта программа последипломного образования в области науки о данных по версии Economic Times занимает первое место в мире, предлагает более десятка инструментов, навыков и концепций и включает семинары ученых Purdue и специалистов IBM, а также частные хакатоны и сессии IBM Ask Me Anything.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *