Добавьте все целочисленные объекты в строке набора данных в словарь объектов - PullRequest
0 голосов
/ 15 апреля 2020

Я прохожу курс «Прикладное машинное обучение: отраслевое исследование» с курсом TensorFlow на educative.io. Я проследовал до этой части, где застрял (для тех, у кого есть доступ к сайту https://www.educative.io/courses/industry-case-study-tensorflow/xlZx6MYVRRB). Курс основан на наборе данных продаж Walmart (https://www.kaggle.com/c/walmart-recruiting-store-sales-forecasting/rules). Какие аргументы я должен передать, чтобы заставить функцию служить своей цели?

def add_int_features(dataset_row, feature_dict):
    int_vals = ['Store', 'Dept', 'IsHoliday', 'Size']
    for feature_name in int_vals:
        list_val = tf.train.Int64List(value=[dataset_row[feature_name]])
        feature_dict[feature_name] = tf.train.Feature(int64_list=list_val)

Инструкция по написанию этой функции гласит:

В этой главе вы завершите функция add_int_features, которая добавляет все целочисленные объекты в строке набора данных в словарь объектов.

Объектами, которые содержат целочисленные значения, являются: «Store», «Dept», «IsHoliday» и «Size».

Установить int_vals равным списку, содержащему имена объектов с целочисленными значениями.

Для каждого целочисленного объекта мы создадим Int64List, содержащий значение объекта из dataset_row.

Создайте для l oop, который перебирает int_vals, используя переменную с именем feature_name. Внутри for для l oop, установите list_val равным tf.train.Int64List, инициализированным с аргументом ключевого слова value, установленным в одноэлементный список, содержащий dataset_row [feature_name].

Теперь мы можем сопоставить имя объекта с TensorFlow Объект объекта, представляющий его целочисленное значение.

Внутри for для l oop установите имя_функции как ключ в feature_dict. Значение, которому оно соответствует, будет tf.train.Feature, инициализированным с аргументом ключевого слова int64_list, равным list_val.

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

merged_features = features_df.merge(stores_df, on='Store')
features = ['Store', 'Date', 'IsHoliday']
final_dataset = train_df.merge(merged_features, on=features)
final_dataset = final_dataset.drop(columns=['Date'])
...