Набор данных об автомобилях
- Подготовка набора данных
- name (A)
- fuel (O)
- seller_type (R)
- from dealer (S)
- from trustmark dealer (T)
- transmission (U)
- automatic (V)
- owner (W)
- 2nd owner (X)
- 3+ owners (X)
- mileage (Z)
- mileage_kmpl (AA)
- engine (AB)
- engine cc (AC)
- max_power (AD)
- max power bhp (AE)
- torque (AF)
- torque N·m (AG)
- max torque min RPM (AH)
- max torque max RPM (AI)
- seats (AJ)
- less than 5 seats (AK)
- more than 5 seats (AL)
- Заключение
Kaggle предоставляет набор данных об автомобилях (на английском), который отлично подходит для линейных регрессий и поэтому используется в данной документации в демонстрационных целях.
Однако нечисловые столбцы не могут использоваться в статистическом анализе. По этой причине была создана модифицированная версия набора данных, в которой текстовые значения преобразованы в числовые с помощью соответствующих формул Google Таблиц.
Если вы хотите экспериментировать с примерами, представленными в документации по функциям TableTorch, можно либо:
-
скачать и скопировать в Google Диск модифицированную копию набора данных со всеми дополнительными столбцами преобразования. Она лицензирована на тех же условиях Database Contents License (DbCL) v1.0 (на английском) от Open Data Commons, что и оригинал;
или
-
скачать исходный набор данных с Kaggle и воспользоваться приведёнными ниже инструкциями для внесения тех же самых изменений.
Подготовка набора данных
Архив содержит файл Car details v3.csv
со всей необходимой информацией. Такие столбцы, как
year, selling_price, km_driven, seats, имеют
числовой формат и не требуют дальнейших действий. Однако
столбцы name, fuel, seller_type, transmission, owner, mileage, engine,
max_power и torque имеют текстовый формат и требуют
преобразования.
В следующих разделах обсуждается преобразование каждого столбца;
буква в скобках — это идентификатор столбца на уровне листа.
Приведённые формулы предназначены для первой строки данных. Google Таблицы
обычно позволяют автоматически применить формулу к остальным строкам,
нажав Ctrl+Enter после ввода формулы для первой строки.
name (A)
name — это особенно интересный столбец, поскольку в нём нет
никаких чисел и модель автомобиля идентифицируется в произвольной форме. Однако,
поскольку признак модели автомобиля может быть значимым
в регрессии, было бы нерационально не пытаться извлечь из него
хотя бы некоторую числовую информацию. Один из способов сделать это —
выявить наиболее часто встречающиеся слова среди названий
и добавить столбец с бинарным значением, т.е. 1, если название
содержит слово, и 0, если нет.
Топ-10 таких слов для данного набора данных: Maruti, Hyundai, Swift, Mahindra, Tata, BSIV, Toyota, Honda, Alto, Ford. Для каждого из этих слов вставьте отдельный столбец с соответствующей формулой, как показано ниже:
Maruti (B)
=IF(ISNUMBER(FIND("Maruti", A2)), 1, 0)
Hyundai (C)
=IF(ISNUMBER(FIND("Hyundai", A2)), 1, 0)
Swift (D)
=IF(ISNUMBER(FIND("Swift", A2)), 1, 0)
Mahindra (E)
=IF(ISNUMBER(FIND("Mahindra", A2)), 1, 0)
Tata (F)
=IF(ISNUMBER(FIND("Tata", A2)), 1, 0)
BSIV (G)
=IF(ISNUMBER(FIND("BSIV", A2)), 1, 0)
Toyota (H)
=IF(ISNUMBER(FIND("Toyota", A2)), 1, 0)
Honda (I)
=IF(ISNUMBER(FIND("Honda", A2)), 1, 0)
Alto (J)
=IF(ISNUMBER(FIND("Alto", A2)), 1, 0)
Ford (K)
=IF(ISNUMBER(FIND("Ford", A2)), 1, 0)
Теперь лист содержит 10 дополнительных числовых столбцов, идентифицирующих производителей автомобилей.
fuel (O)
В наборе данных присутствует несколько видов топлива, однако подавляющее большинство записей относится к одному из двух: дизель или бензин. Создайте два столбца со следующими формулами:
diesel (P)
=IF(O2="Diesel", 1, 0)
petrol (Q)
=IF(O2="Petrol", 1, 0)
seller_type (R)
В наборе данных представлены три уникальных типа продавцов: Individual, Dealer и Trustmark Dealer. Большинство записей относится к типу Individual, поэтому имеет смысл извлечь два других варианта в отдельные столбцы. Вставьте два новых столбца:
from dealer (S)
=IF(R2="Dealer", 1, 0)
from trustmark dealer (T)
=IF(R2="Trustmark Dealer", 1, 0)
transmission (U)
Тип трансмиссии — либо Manual (механическая), либо Automatic (автоматическая), поэтому для извлечения числового значения достаточно одного дополнительного столбца.
automatic (V)
=IF(U2="Automatic", 1, 0)
owner (W)
Извлеките ещё два столбца из столбца owner для Second Owner и всех остальных, кроме First Owner и Second Owner. Редкие значения игнорируются для простоты.
2nd owner (X)
=IF(W2="Second Owner", 1, 0)
3+ owners (X)
=IF(OR(W2="First Owner", W2="Second Owner"), 0, 1)
mileage (Z)
Это первый столбец, в котором числовое значение объединено с единицей измерения. Кроме того, в части записей значение отсутствует, поэтому имеет смысл заменить пропуски медианным расходом топлива — чтобы не искажать регрессию.
Разницей между единицами kmpl и km/kg можно пренебречь для простоты, а числовое значение извлечь с помощью следующей формулы:
mileage_kmpl (AA)
=IF(ISNUMBER(FIND(" ", Z2)), VALUE(LEFT(Z2, FIND(" ", Z2))), 19.3)
engine (AB)
Вставьте столбец преобразования для рабочего объёма двигателя:
engine cc (AC)
=IF(ISNUMBER(FIND(" ", AB2)), VALUE(LEFT(AB2, FIND(" ", AB2))), 1248)
max_power (AD)
Преобразуйте максимальную мощность в числовой формат с помощью следующей формулы:
max power bhp (AE)
=IF(ISNUMBER(FIND(" ", AD2)), VALUE(LEFT(AD2, FIND(" ", AD2))), 82)
torque (AF)
Этот столбец имеет более сложный для разбора текстовый формат, поскольку в нём:
- используются две разные единицы измерения (N·m и kg·m);
- некоторые строки содержат диапазон об/мин, а другие — только одно значение;
- формат значительно варьируется от строки к строке.
Вставьте следующие три столбца, чтобы:
- привести все значения к единой единице (N·m);
- разобрать как минимальное, так и максимальное значения диапазона об/мин, используя одинаковые значения, если диапазон в исходном значении отсутствует;
- использовать медианные значения соответствующих столбцов там, где исходная информация отсутствует.
torque N·m (AG)
=IF(
ISNUMBER(SEARCH("kgm", AF2)),
VALUE(REGEXEXTRACT(AF2, "[\d\.,]+")) * 9.8,
IF(
ISNUMBER(SEARCH("Nm", AF2)),
VALUE(REGEXEXTRACT(AF2, "[\d\.,]+")),
170
))
max torque min RPM (AH)
=IF(
ISNUMBER(SEARCH("rpm", AF2)),
VALUE(REGEXEXTRACT(AF2, "(?i)[^\d\.,]*[\d\.,]+[^\d\.,]*([\d\.,]+)")),
2000)
max torque max RPM (AI)
=IF(
ISNUMBER(SEARCH("rpm", AF2)),
IF(REGEXMATCH(AF2, "\d-\d"),
VALUE(REGEXEXTRACT(AF2, "(?i)[^\d\.,]*[\d\.,]+[^\d\.,]*[\d\.,]+-([\d\.,]+)")),
VALUE(REGEXEXTRACT(AF2, "(?i)[^\d\.,]*[\d\.,]+[^\d\.,]*([\d\.,]+)"))
),
3000)
seats (AJ)
Хотя seats уже представлен в числовом формате, имеет смысл извлечь из него два дополнительных бинарных признака: цена автомобиля может зависеть от числа мест нелинейно — отклонения от привычной 5-местной компоновки часто стоит выделить отдельно.
less than 5 seats (AK)
=IF(AJ2 < 5, 1, 0)
more than 5 seats (AL)
=IF(AJ2 > 5, 1, 0)
Заключение
Теперь таблица состоит из 38 столбцов и больше не помещается в ширину экрана.
Теперь, когда из текстовых данных набора данных извлечены практически все возможные числовые детали, пришло время перейти к построению модели предсказания столбца selling_price. Обратитесь к страницам Корреляционная матрица и Линейная регрессия, чтобы узнать, как это сделать прямо в Google Таблицах с помощью TableTorch.
Смотрите также:
Google, Google Таблицы, Google Workspace и YouTube являются товарными знаками Google LLC. Gaujasoft TableTorch не связан с Google и не одобрен компанией Google.
Свяжитесь с нами!
Спасибо, что используете или рассматриваете TableTorch!
Точно и полно ли эта страница описывает соответствующую функцию? Действительно ли всё работает так, как здесь описано, или вы столкнулись с проблемой? Есть ли у вас предложения по улучшению?
Пожалуйста, свяжитесь с нами, если у вас есть вопросы.

