51
 правка
Изменения
Добавление известного набора данных для регрессии
  print("Classification report for classifier %s:\n%s\n"
   % (clf, metrics.classification_report(expected, predicted)))
==Boston Housing Dataset==
===Описание===
Boston Housing Dataset содержит данные, собранные Службой переписи населения США (англ. ''U.S Census Service''), касающиеся недвижимости в районах Бостона. Набор данных состоит из 13 признаков и 506 строк и также предоставляет такую информацию, как уровень преступности (CRIM), ставка налога на недвижимость (TAX), возраст людей, которым принадлежит дом (AGE), индекс доступности к автомагистралям (RAD), соотношение числа учащихся и преподавателей в районе (PTRATIO) и другие. Данный набор данных используется для предсказания следующих целевых переменных: средняя стоимость дома (MEDV) и уровень закиси азота (NOX).
===Результаты===
Для решения задачи предсказания средней стоимости дома используется множественная линейная регрессия. Метрикой качества модели выступает корень из среднеквадратичной ошибки (англ. ''root-mean-square error, RMSE''). В среднем, значение RMSE на данном наборе данных находится в районе 3,5-5 в зависимости от выбранной модели. Однако на соревновании на сайте [https://www.kaggle.com/sagarnildass/predicting-boston-house-prices Kaggle] пользователь [https://www.kaggle.com/c/boston-housing/leaderboard MayankSatnalika] получил результат 1.33055.
===Код===
Простой код, загружающий набор данных из библиотеки skleran с использованием NumPy и Pandas и запускающий на нем алгоритм линейной регрессии.
  import pandas as pd
  import numpy as np
  from sklearn.datasets import load_boston
  from sklearn.model_selection import train_test_split
  from sklearn.linear_model import LinearRegression
  from sklearn.metrics import mean_squared_error
  boston_dataset = load_boston()
  boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names)
  boston['MEDV'] = boston_dataset.target
  X = pd.DataFrame(np.c_[boston['LSTAT'], boston['RM']], columns=['LSTAT', 'RM'])
  Y = boston['MEDV']
  X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=5)
  lin_model = LinearRegression()
  lin_model.fit(X_train, Y_train)
  y_train_predict = lin_model.predict(X_train)
  rmse = (np.sqrt(mean_squared_error(Y_train, y_train_predict)))# 5.6371293350711955
  y_test_predict = lin_model.predict(X_test)
  rmse = (np.sqrt(mean_squared_error(Y_test, y_test_predict)))# 5.13740078470291
==См.также==
