Транслирование
Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 13 из 60.
Модели обучаются лучше, когда значение каждого признака находится около 0. Поэтому вычитаете среднее значение каждого столбца из значений этого столбца, а NumPy копирует средние значения во все строки:
В коде для роста и веса трёх человек:
data = np.array([[170, 60],
[180, 80],
[160, 70]])
print(data - data.mean(axis=0))Это выводит:
[[ 0. -10.]
[ 10. 10.]
[-10. 0.]]Это копирование называется стандартизацией. Теперь таблица центрирована: каждое значение показывает, насколько оно отклоняется от среднего значения своего столбца.
Средние имеют форму (2,): по одному значению на каждый столбец таблицы (3, 2). Любая другая длина приведёт к ошибке.
Задание
ЛегкоФитнес-приложение центрирует каждую таблицу перед тренировкой. В начальном коде вызывается center для двух таблиц: users (3 признака) и workouts (2), а затем выводятся результаты. Сейчас center возвращает таблицу без изменений.
Дополните center, чтобы она вычитала среднее значение каждого столбца из этого столбца независимо от количества столбцов. Оставьте строки ниже без изменений.
Для двух пользователей и двух тренировок вывод будет выглядеть так:
Centered users:
[[-6. 7. -5.]
[ 6. -7. 5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
[ 10. 90.]]
Column means after centering: [0. 0.]Попробуйте сами
import numpy as np
def center(table):
# Верните table, вычтя из каждого столбца его среднее значение
# Напишите свой код ниже
return table
# Одна строка на пользователя: возраст, пульс в покое, минуты упражнений в день
users = np.array([[25, 62, 30],
[31, 70, 45],
[40, 58, 20],
[29, 66, 25]])
# Одна строка на тренировку: продолжительность в минутах, сожжённые калории
workouts = np.array([[30, 240],
[45, 410],
[20, 150],
[60, 520],
[35, 300]])
# Не изменяйте строки ниже
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Данные и графики
4Преобразование данных
Изменение формы массивовОбъединение массивовСлучайные числаПовторение: симуляция броска кубика2Массивы NumPy
Создание массивовФорма и размерДиапазоны чиселИндексация и срезыПовторение: температурная сетка5Линейные графики и диаграммы рассеяния
Подписи и заголовкиДиаграммы рассеянияНесколько линий и легендыЦвета и маркерыФигуры и осиПовторение: шаги за неделю8Фильтрация и сортировка
Выбор строкФильтрация строкСортировка значенийНовые столбцыПовторение: лучшие товары3Математика массивов
Математика над целыми массивамиСводная статистикаСтатистика по осямТранслированиеБулевы маскиПовторение: результаты экзамена6Графики для данных
Столбчатые диаграммыГистограммыНесколько графиков в одномИзображения как массивыПовторение: отчёт об осадках9Группировка и очистка данных
Подсчёт значенийГруппировка данныхНесколько сводокПропущенные значенияПовторение: результаты опроса12Заключительные задания
Отчёт о продажахПоказания датчиковЦифры с первого взглядаИсследователь-пингвинПотренируйтесь самостоятельно: Онлайн-компилятор Python