Междисциплинарная область науки о данных может извлекать глубокие идеи и знания из структурированных и неструктурированных данных. Он объединяет концепции статистики, анализа данных и машинного обучения, а также другие связанные концепции для понимания и анализа реальных явлений с данными. Машинное обучение (ML) позволяет компьютерам учиться и интерпретировать без явного программирования. Методы машинного обучения широко используются в финансах, здравоохранении, материаловедении, транспорте, нефтегазовой отрасли и т. Д.
В этом исследовании мы проводим анализ набора данных Airbnb из района Берлина [1] и прогнозируем цены Airbnb с помощью регрессионного анализа. Мы использовали модель регрессии случайного леса [2], доступную в библиотеке scikit-learn [3] платформы анализа данных с открытым исходным кодом на основе Python, и графики были созданы с помощью Matplotlib.
Форма набора данных Airbnb - (22552, 96). Многие из 96 функций не являются числовыми, и многие функции имеют пропущенные значения. Некоторые из нечисловых функций были преобразованы в числовые с помощью Label Encoder. Пропущенные значения были заполнены методом прямого заполнения, а определенные функции были очищены от символов «$», «» и т. Д. С использованием метода полосы. Кроме того, мы создали новую функцию «расстояние» Airbnb от центра Берлина с использованием долготы и широты Airbnb. Затем эта новая функция была добавлена к исходному набору данных. После завершения обработки данных мы использовали «выбор функций», доступный в scikit-learn, чтобы выбрать важные функции. Мы вычисляем χ2 между каждой функцией и целью и выбираем желаемое количество функций с лучшими показателями χ2. 25 лучших функций и оценка χ2 приведены в таблице 1 ниже.
Table 1. Best 25 features of the dataset and their corresponding χ2 scores. Features χ2 scores maximum_nights 2.152729e+10 minimum_nights 8.856912e+05 security_deposit 7.716334e+05 number_of_reviews 8.341015e+04 square_feet 2.982368e+04 property_type 2.222414e+04 calculated_host_listings_count 1.072021e+04 neighbourhood_cleansed 1.071895e+04 accommodates 7.771539e+03 room_type 4.234147e+03 neighbourhood 3.254091e+03 guests_included 3.061216e+03 bedrooms 2.380380e+03 cancellation_policy 1.444670e+03 distance 9.580979e+02 host_is_superhost 6.349556e+02 neighbourhood_group_cleansed 5.957898e+02 instant_bookable 3.502228e+02 bathrooms 3.290317e+02 review_scores_rating 2.151681e+02 is_location_exact 9.053878e+01 review_scores_cleanliness 5.194306e+01 review_scores_accuracy 2.410470e+01 bed_type 7.055763e+00 longitude 1.016177e-01
Затем были отобраны только пять лучших характеристик. Это подмножество было разделено на данные для обучения и тестирования. «Цена» была установлена в качестве целевой функции. Подмножество обучающих данных использовалось для подбора случайного леса, в то время как тестовое подмножество использовалось для прогноза. Это было повторено с использованием различных подмножеств, в которые были включены десять, пятнадцать, двадцать и двадцать пять основных характеристик. Для каждого случая мы рассчитали значение, которое определяется как
adjusted R^2 = 1-R^2(N-1)/(N-M-1)
где N - количество точек в наборе данных, а M - количество независимых функций, в то время как это мера качества соответствия. увеличивается с количеством функций модели. Поскольку всегда увеличивается и никогда не уменьшается, может показаться, что он лучше соответствует большему количеству членов, добавленных к модели. При регрессионном анализе может возникнуть соблазн добавить к данным больше переменных, которые могут ввести в заблуждение. Некоторые из этих переменных могут иметь значение, но нельзя быть уверенным в том, что это значение случайно. Компенсируют это штрафом за эти дополнительные переменные. Соответствующий график показан на рисунке 1.
Рис. 1. График количества функций и соответствующего скорректированного R²
Вывод:
Исследовательский анализ данных (EDA) с помощью графиков определенно полезен и важен. Однако для больших наборов данных становится чрезвычайно сложно применить EDA, поскольку существует большое количество графиков для анализа. Таким образом, выбор функций с помощью метода SelectKBest из scikit learn предоставляет четко определенный способ выбора функций, как показано здесь.