Набор данных об автомобилях

Kaggle предоставляет набор данных об автомобилях (на английском), который отлично подходит для линейных регрессий и поэтому используется в данной документации в демонстрационных целях.

Однако нечисловые столбцы не могут использоваться в статистическом анализе. По этой причине была создана модифицированная версия набора данных, в которой текстовые значения преобразованы в числовые с помощью соответствующих формул Google Таблиц.

Если вы хотите экспериментировать с примерами, представленными в документации по функциям TableTorch, можно либо:

Подготовка набора данных

Архив содержит файл 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!

Точно и полно ли эта страница описывает соответствующую функцию? Действительно ли всё работает так, как здесь описано, или вы столкнулись с проблемой? Есть ли у вас предложения по улучшению?

Пожалуйста, свяжитесь с нами, если у вас есть вопросы.