One-Hot Encoding
Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 53 из 64.
У инструментов нет порядка: если пронумеровать их 1, 2, 3, пианино считалось бы больше барабанов. One-hot-кодирование вместо этого отводит каждой категории отдельный столбец со значением 0/1:
Это делает pd.get_dummies, а dtype=int запрашивает значения 1 и 0 вместо True и False:
pupils = pd.DataFrame({"instrument": ["piano", "drums", "piano", "cello"],
"weeks": [4, 3, 6, 10]})
encoded = pd.get_dummies(pupils, columns=["instrument"], dtype=int)
print(encoded)Будет выведено:
weeks instrument_cello instrument_drums instrument_piano
0 4 0 0 1
1 3 0 1 0
2 6 0 0 1
3 10 1 0 0Новые столбцы добавляются в конец, по одному для каждого значения в алфавитном порядке. Цена — увеличение ширины: 500 различных значений добавят 500 столбцов.
Задание
СреднеНа сайте для отдыха перечислены домики в cabins.csv. Программа считывает имя столбца: area или heat. В исходном коде ему присваивается числовое значение для вычисления корреляции с ценой, но ни один из столбцов не имеет порядка: эта r выдумана.
- Замени его строки: закодируй столбец методом one-hot (0 и 1).
- Выведи, на сколько столбцов он разбился, а затем каждый новый столбец с количеством единиц в нём.
Для пяти домиков и ввода heat:
heat became 2 columns:
heat_gas: 3 cabins
heat_wood: 2 cabinsПопробуйте сами
import pandas as pd
cabins = pd.read_csv("cabins.csv")
column = input()
# Напишите свой код ниже
# Эти строки присваивают номера районам и типам отопления, у которых нет естественного порядка: замените их
numbers = {"coast": 1, "hills": 2, "lake": 3, "woods": 4, "gas": 1, "solar": 2, "wood": 3}
cabins[column] = cabins[column].map(numbers)
print(f"{column} against price: r = {round(cabins[column].corr(cabins['price']), 2)}")
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Статистика для машинного обучения
1Центр и разброс
Среднее и медианаПроцентили и квартилиДисперсия и стандартное отклонениеВыборка или генеральная совокупность?Самое частое значениеПовторение: сроки доставки4Выборки и генеральные совокупности
Генеральная совокупность и выборкаСредние значения выборок различаютсяРаспределение выборочных среднихЧем больше выборка, тем меньше шумИтоги: опрос жителей города7Линии тренда
ОстаткиМетод наименьших квадратовПостроение линии аппроксимацииПредсказания с помощью линииНасколько хороша аппроксимация?Повторение: часы практики10Кодирование категорий
Категории в виде чиселOne-Hot EncodingРазбиение чисел на интервалыПовторение: объявления о продаже автомобилей2Распределения
Гистограммы плотностиФормы распределения данныхНормальная криваяПравило 68–95–99,7Z-оценкиПовторение: время работы батареи3Вероятность с помощью моделирования
Вероятность как частотаЗакон больших чиселСуммы значений на кубикахМатематическое ожиданиеУсловная вероятностьПовторение: шансы в игре в кости6Взаимосвязи
Чтение диаграмм рассеянияКорреляцияМатрица корреляцийТепловые карты корреляцийКорреляция не означает причинностьПовторение: мороженое и солнцеПотренируйтесь самостоятельно: Онлайн-компилятор Python