Алгоритмы регрессии — это тип алгоритма машинного обучения, используемый для прогнозирования числовых значений на основе входных данных. Алгоритмы регрессии пытаются найти взаимосвязь между входными и выходными переменными, подгоняя математическую модель к данным. Цель регрессии — найти математическую взаимосвязь между входными признаками и целевой переменной, которую можно использовать для точного прогнозирования новых, невидимых данных.
Существует множество различных типов алгоритмов регрессии, в том числе:
- Линейная регрессия. Линейная регрессия — это простой и широко используемый алгоритм. Он предполагает линейную связь между независимыми переменными и целевой переменной. Алгоритм оценивает коэффициенты линейного уравнения, которое лучше всего соответствует данным. Уравнение может иметь вид: y= m x +c, где y — целевая переменная, x — входной объект, m — наклон, а c — точка пересечения.
Пример: приложения включают прогнозирование цен на жилье на основе таких характеристик, как площадь в квадратных футах и количество спален, или оценку продаж на основе расходов на рекламу.
- Логистическая регрессия.Логистическая регрессия — это популярный алгоритм, используемый для задач бинарной классификации, когда целевая переменная имеет два возможных результата (например, да/нет, истина/ложь, 0/1). Несмотря на свое название, логистическая регрессия — это алгоритм классификации, а не алгоритм регрессии. Он моделирует взаимосвязь между независимыми переменными (входными функциями) и бинарной целевой переменной с помощью логистической функции, также известной как сигмовидная функция.
Пример: прогнозирование того, уйдет ли клиент (т. е. прекратит ли он сотрудничество с компанией) на основе его демографической информации и истории покупок. - Полиномиальная регрессия. Полиномиальная регрессия — это расширение линейной регрессии, в котором взаимосвязь между переменными моделируется с помощью полиномиального уравнения. Это обеспечивает большую гибкость при захвате нелинейных отношений между входными объектами и целевой переменной. Он включает в себя добавление полиномиальных членов, таких как x² или x³, к линейному уравнению. Полиномиальная регрессия полезна, когда данные демонстрируют криволинейные закономерности.
Пример: прогнозирование урожайности на основе таких факторов, как температура, влажность и количество осадков. - Регрессия гребня. Регрессия гребня — это метод регуляризации, который решает проблему переобучения в линейной регрессии. Он добавляет штрафной член к уравнению линейной регрессии, чтобы контролировать сложность модели. Этот штрафной член помогает предотвратить слишком большие коэффициенты, снижая чувствительность модели к обучающим данным. Гребневая регрессия особенно полезна при работе с многомерными данными или когда среди входных признаков существует мультиколлинеарность (высокая корреляция).
Пример: прогнозирование цены акции на основе финансовых показателей, таких как прибыль на акцию и отношение цены к прибыли. - Лассо-регрессия. Лассо-регрессия, аналогичная гребневой регрессии, представляет собой метод регуляризации, используемый для борьбы с переоснащением. Он добавляет штрафной член к уравнению линейной регрессии, но в этом случае в качестве штрафа используется норма коэффициентов L1. Лассо-регрессия имеет свойство выбора признаков, которое может обнулить некоторые коэффициенты, эффективно выполняя автоматический выбор признаков. Это делает его полезным при работе с наборами данных со многими функциями или при поиске наиболее влиятельных переменных.
Пример: прогнозирование вероятности того, что клиент купит продукт, на основе истории просмотров и покупок на веб-сайте. - Регрессия ElasticNet. Регрессия ElasticNet сочетает в себе методы регуляризации гребня и лассо. Он добавляет штрафной член, который представляет собой линейную комбинацию L1 (лассо) и L2 (гребень) норм коэффициентов. Этот гибридный подход позволяет выбирать признаки, а также обеспечивает стабильность и снижает влияние мультиколлинеарности. Регрессия ElasticNet полезна, когда имеется много коррелирующих функций, и цель состоит в том, чтобы выбрать соответствующие функции и смягчить мультиколлинеарность.
Пример: прогнозирование спроса на продукт на основе таких факторов, как цена, расходы на рекламу и активность конкурентов.
Почему мы используем регрессионный анализ?
Регрессионный анализ — это статистический метод, используемый для изучения взаимосвязи между зависимой переменной и одной или несколькими независимыми переменными. Он используется для различных целей, в том числе:
- Прогноз. Регрессионный анализ можно использовать для прогнозирования значений зависимой переменной на основе значений независимых переменных. Например, если мы хотим предсказать продажи продукта на основе расходов на рекламу и размера рынка, мы можем использовать регрессионный анализ, чтобы определить взаимосвязь между этими переменными и предсказать продажи на основе значений независимых переменных.
- Проверка гипотез. Регрессионный анализ можно использовать для проверки гипотез о связи между зависимыми и независимыми переменными. Например, мы можем проверить, существует ли значительная связь между курением и раком легких, используя регрессионный анализ.
- Контрольные переменные. Регрессионный анализ можно использовать для контроля других переменных, которые могут повлиять на взаимосвязь между зависимыми и независимыми переменными. Например, если мы хотим изучить взаимосвязь между доходом и здоровьем, мы можем захотеть контролировать такие переменные, как возраст, пол и образование.
- Прогнозирование. Регрессионный анализ можно использовать для прогнозирования будущих тенденций на основе исторических данных. Например, мы можем использовать регрессионный анализ для прогнозирования спроса на продукт на основе данных о прошлых продажах и других соответствующих переменных.
В целом, регрессионный анализ является полезным инструментом для анализа и понимания взаимосвязи между переменными, а также для прогнозирования и обоснованных решений на основе этой взаимосвязи.
Как открыть блокнот Jupyter
Все коды доступны в моем репозитории GitHub: https://github.com/arunsinp/Machine-Learning/
- Откройте в Google Colab (https://colab.research.google.com/) и войдите в аккаунт Google. Создайте новый блокнот и смонтируйте Google Диск (чтобы сохранить блокнот на Google Диске), используя
from google.colab import drive drive.mount('/content/drive')
Следуйте инструкциям, чтобы авторизовать доступ к вашему Google Диску.
Получите блокнот из GitHub: в новой ячейке кода в блокноте Colab используйте следующий код, чтобы получить блокнот из репозитория GitHub и загрузить его в Colab:
!pip install gitpython import git # Clone the repository git.Repo.clone_from('https://github.com/arunsinp/Machine-Learning.git', '/content/Machine-Learning') # Load the notebook into Colab from google.colab import files files.open('/content/Machine-Learning/ML-Fundamental/0.2-Regression.ipynb')
2. Клонируйте репозиторий:в указанный каталог (предположим, что он клонирован в каталог «Документы»)
Путь:
- Windows: \name\Personal\Documents\
- MacOs X: /Пользователи/имя/Документы/
- Linux: Пользователи/имя/Документы/
git clone https://github.com/arunsinp/Machine-Learning.git
Перейдите в папку Документы с помощью cd Documents/ML-Learning/ML-Fundamental/, а затем откройте файл 0.2-Regression.ipynb с помощью редактора кода, например VSCODE или в Anaconda откройте Jupyter Notebook и загрузите файл 0.2-Regression.ipynb.
ПРИМЕЧАНИЕ. В своем следующем сообщении в блоге я напишу о линейной регрессии (как простой, так и множественной линейной регрессии) и небольшом проекте.
Ссылка
- Мой репозиторий GitHub (Jupyter Notebook): https://github.com/arunsinp/Machine-Learning/blob/main/ML-Fundamental/0.2-Regression.ipynb (чтобы открыть его, можете открыть его в Google Colab или скачать и открыть с помощью )