Учебник по Python

ДОМАШНЯЯ СТРАНИЦА ПИТОН Введение в Python Python для начала Синтаксис Python Комментарии Python Переменные Python Типы данных Python Числа Python Кастинг Python Строки Python Логические значения Python Операторы Python Списки Python Кортежи Python Наборы Python Словари Python Python, если...иначе Циклы Python в то время как Python для циклов Функции Python Python лямбда Массивы Python Классы/объекты Python Наследование Питона Итераторы Python Объем Python Модули Python Даты Python Математика Python Python JSON регулярное выражение Python Картинка в картинке Python Python Попробуйте... Кроме Пользовательский ввод Python Форматирование строк Python

Работа с файлами

Обработка файлов Python Файлы чтения Python Python Запись/создание файлов Удалить файлы Python

Модули Python

Учебник по NumPy Прохождение панды Учебник по Сципи

Python Matplotlib

Введение в Matplotlib Matplotlib Начать Пилот Matplotlib Графики Matplotlib Маркеры Matplotlib Линия Matplotlib Метки Matplotlib Сетка Matplotlib Подсюжеты Matplotlib Матплотлиб Скаттер Бары Matplotlib Гистограммы Matplotlib Круговые диаграммы Matplotlib

Машинное обучение

Начиная Средняя медиана режима Среднеквадратичное отклонение Процентиль Распределение данных Нормальное распределение данных Точечная диаграмма Линейная регрессия Полиномиальная регрессия Множественная регрессия Масштаб Поезд/тест Древо решений

Python MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу Вставка MySQL Выбор MySQL MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Python MongoDB

Начать работу с MongoDB MongoDB Создать базу данных MongoDB Создать коллекцию Вставка MongoDB MongoDB Найти Запрос MongoDB Сортировка MongoDB MongoDB Удалить Коллекция MongoDB Drop Обновление MongoDB Лимит MongoDB

Справочник по Python

Обзор Python Встроенные функции Python Строковые методы Python Методы списка Python Словарные методы Python Методы кортежей Python Методы набора Python Файловые методы Python Ключевые слова Python Исключения Python Глоссарий Python

Справочник по модулям

Случайный модуль Модуль запросов Модуль статистики Математический модуль cМатематический модуль

Python Как

Удалить дубликаты списка Перевернуть строку Добавить два числа

Примеры Python

Примеры Python Компилятор Python Упражнения на Python Питон Викторина Сертификат Python

Машинное обучение — множественная регрессия


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

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

Взгляните на набор данных ниже, он содержит некоторую информацию об автомобилях.

Машина Модель Объем Масса СО2
Тойота Айго 1000 790 99
Мицубиси Космическая звезда 1200 1160 95
Шкода Ситиго 1000 929 95
Фиат 500 900 865 90
Мини Купер 1500 1140 105
Фольксваген Вверх! 1000 929 105
Шкода Фабия 1400 1109 90
Мерседес Класс 1500 1365 92
Форд Фиеста 1500 1112 98
Ауди А1 1600 1150 99
Хендай I20 1100 980 99
Сузуки Быстрый 1300 990 101
Форд Фиеста 1000 1112 99
Хонда Гражданский 1600 1252 94
Хендай I30 1600 1326 97
Опель Астра 1600 1330 97
БМВ 1 1600 1365 99
Мазда 3 2200 1280 104
Шкода Стремительный 1600 1119 104
Форд Фокус 2000 г. 1328 105
Форд Мондео 1600 1584 94
Опель Знак отличия 2000 г. 1428 99
Мерседес С-Класс 2100 1365 99
Шкода Октавия 1600 1415 99
Вольво S60 2000 г. 1415 99
Мерседес CLA 1500 1465 102
Ауди A4 2000 г. 1490 104
Ауди А6 2000 г. 1725 114
Вольво V70 1600 1523 109
БМВ 5 2000 г. 1705 г. 114
Мерседес Е-Класс 2100 1605 115
Вольво ХС70 2000 г. 1746 117
Форд B-макс. 1600 1235 104
БМВ 2 1600 1390 108
Опель Зафира 1600 1405 109
Мерседес СЛК 2500 1395 120

Мы можем предсказать выброс CO2 автомобиля на основе размера двигателя, но с помощью множественной регрессии мы можем добавить больше переменных, например вес автомобиля, чтобы сделать прогноз более точным.


Как это работает?

В Python у нас есть модули, которые сделают всю работу за нас. Начните с импорта модуля Pandas.

import pandas

Узнайте о модуле Pandas в нашем учебном пособии по Pandas .

Модуль Pandas позволяет нам читать CSV-файлы и возвращать объект DataFrame.

Файл предназначен только для тестирования, вы можете скачать его здесь: cars.csv

df = pandas.read_csv("cars.csv")

Затем составьте список независимых значений и вызовите эту переменную X.

Поместите зависимые значения в переменную с именем y.

X = df[['Weight', 'Volume']]
y = df['CO2']

Совет: Обычно список независимых значений обозначается буквой X в верхнем регистре, а список зависимых значений — буквой y в нижнем регистре.

Мы будем использовать некоторые методы из модуля sklearn, поэтому нам также придется импортировать этот модуль:

from sklearn import linear_model

Из модуля sklearn мы будем использовать LinearRegression()метод для создания объекта линейной регрессии.

У этого объекта есть вызываемый метод fit(), который принимает независимые и зависимые значения в качестве параметров и заполняет объект регрессии данными, описывающими взаимосвязь:

regr = linear_model.LinearRegression()
regr.fit(X, y)

Теперь у нас есть объект регрессии, который готов прогнозировать значения CO2 на основе веса и объема автомобиля:

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

Пример

Посмотрите весь пример в действии:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

print(predictedCO2)

Результат:

[107.2087328]

Мы предсказали, что автомобиль с 1,3-литровым двигателем и массой 2300 кг будет выделять примерно 107 граммов CO2 на каждый пройденный километр.



Коэффициент

Коэффициент – это фактор, описывающий связь с неизвестной переменной.

Пример: если xпеременная, то 2xдва xраза. x— неизвестная переменная, а число 2— коэффициент.

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

Пример

Выведите значения коэффициентов объекта регрессии:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

print(regr.coef_)

Результат:

[0.00755095 0.00780526]

Объяснение результата

Массив результатов представляет значения коэффициентов веса и объема.

Вес: 0,00755095
Объем: 0,00780526

Эти значения говорят нам о том, что при увеличении веса на 1 кг выбросы CO2 увеличиваются на 0,00755095 г.

А если объем двигателя (Объем) увеличить на 1 см 3 , выброс СО2 увеличится на 0,00780526 г.

Я думаю, что это справедливое предположение, но давайте проверим его!

Мы уже предсказывали, что если автомобиль с двигателем объемом 1300 см 3 весит 2300 кг, выброс CO2 составит примерно 107 г.

Что, если мы увеличим вес на 1000 кг?

Пример

Скопируйте предыдущий пример, но измените вес с 2300 на 3300:

import pandas
from sklearn import linear_model

df = pandas.read_csv("cars.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

predictedCO2 = regr.predict([[3300, 1300]])

print(predictedCO2)

Результат:

[114.75968007]

Мы предсказали, что автомобиль с 1,3-литровым двигателем и массой 3300 кг будет выделять примерно 115 граммов CO2 на каждый пройденный километр.

Что показывает, что коэффициент 0,00755095 правильный:

107,2087328 + (1000 * 0,00755095) = 114,75968