0

Я пытаюсь понять пример кода Deep Neural Network Regression with Boston Data.Загрузка набора данных корпуса Boston с использованием TensorFlow

Данной набор данных here. Он имеет 14 атрибутов.

В примере используется следующий код для загрузки данных.

# Load dataset 
boston = learn.datasets.load_dataset('boston') 
x, y = boston.data, boston.target 

Когда я хочу знать больше о x и y, я следующее.

>>> type(x) 
<type 'numpy.ndarray'> 
>>> type(y) 
<type 'numpy.ndarray'> 
>>> x.shape 
(506, 13) 
>>> y.shape 
(506,) 
>>> 

Мои вопросы:

  1. Почему набор данных был разделен на два объекта одного с 13 атрибутов, а другой с 1?
  2. На каком основании это подразделение было создано?

ответ

1

13 столбцов в boston.data - ваши возможности. 1 столбец в boston.target - ваша цель. Причина, по которой происходит разделение, заключается в том, что большую часть времени алгоритмы машинного обучения требуют как функций, так и целей как отдельных структур данных. Функция load_datasets просто облегчает вам разделение столбца MDEV, потому что большую часть времени это функция, которую люди хотят предсказать. Другими словами, разработчики наборов load_data предполагают, что вы захотите найти медианные цены на жилье на основе других 13 функций.

Вам не обязательно это делать. Вы можете выбрать любую из функций в качестве своей цели. Скажем, вы хотели предсказать RM, среднее количество комнат на одно жилье. Просто объедините столбец MDEV обратно в boston.data и разделите RM. Затем используйте RM в качестве своей цели.

BTW, ссылка, которую вы предоставили, была сломана, поэтому я google и придумал это Boston Housing price tutorial. Он выглядит довольно полным, если вы хотите сделать регрессию в тензорном потоке