Учебник по 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

Машинное обучение — Масштаб


Особенности шкалы

Когда ваши данные имеют разные значения и даже разные единицы измерения, их может быть сложно сравнивать. Что такое килограммы по сравнению с метрами? Или высота по сравнению со временем?

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

Взгляните на таблицу ниже, это тот же набор данных, который мы использовали в главе о множественной регрессии , но на этот раз столбец объема содержит значения в литрах вместо см 3 (1,0 вместо 1000).

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

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

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

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

Метод стандартизации использует эту формулу:

z = (x - u) / s

Где zновое значение, xисходное значение, uсреднее значение и sстандартное отклонение.

Если вы возьмете столбец веса из набора данных выше, первое значение будет 790, а масштабированное значение будет:

(790 - ) / = -2.1

Если вы возьмете столбец объема из набора данных выше, первое значение равно 1,0, а масштабированное значение будет:

(1.0 - ) / = -1.59

Теперь вы можете сравнивать -2,1 с -1,59 вместо сравнения 790 с 1,0.

Вам не нужно делать это вручную, в модуле Python sklearn есть вызываемый метод, StandardScaler() который возвращает объект Scaler с методами преобразования наборов данных.

Пример

Масштабируйте все значения в столбцах «Вес» и «Объем»:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

print(scaledX)

Результат:

Обратите внимание, что первые два значения равны -2,1 и -1,59, что соответствует нашим расчетам:

[[-2.10389253 -1.59336644]
 [-0.55407235 -1.07190106]
 [-1.52166278 -1.59336644]
 [-1.78973979 -1.85409913]
 [-0.63784641 -0.28970299]
 [-1.52166278 -1.59336644]
 [-0.76769621 -0.55043568]
 [ 0.3046118  -0.28970299]
 [-0.7551301  -0.28970299]
 [-0.59595938 -0.0289703 ]
 [-1.30803892 -1.33263375]
 [-1.26615189 -0.81116837]
 [-0.7551301  -1.59336644]
 [-0.16871166 -0.0289703 ]
 [ 0.14125238 -0.0289703 ]
 [ 0.15800719 -0.0289703 ]
 [ 0.3046118  -0.0289703 ]
 [-0.05142797  1.53542584]
 [-0.72580918 -0.0289703 ]
 [ 0.14962979  1.01396046]
 [ 1.2219378  -0.0289703 ]
 [ 0.5685001   1.01396046]
 [ 0.3046118   1.27469315]
 [ 0.51404696 -0.0289703 ]
 [ 0.51404696  1.01396046]
 [ 0.72348212 -0.28970299]
 [ 0.8281997   1.01396046]
 [ 1.81254495  1.01396046]
 [ 0.96642691 -0.0289703 ]
 [ 1.72877089  1.01396046]
 [ 1.30990057  1.27469315]
 [ 1.90050772  1.01396046]
 [-0.23991961 -0.0289703 ]
 [ 0.40932938 -0.0289703 ]
 [ 0.47215993 -0.0289703 ]
 [ 0.4302729   2.31762392]]


Прогнозировать значения CO2

Задача в главе «Множественная регрессия » состояла в том, чтобы предсказать выбросы CO2 от автомобиля, когда вы знали только его вес и объем.

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

Пример

Рассчитайте выбросы CO2 от автомобиля объемом 1,3 литра и весом 2300 кг:

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

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

scaled = scale.transform([[2300, 1.3]])

predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

Результат:

[107.2087328]