В прошлой статье мы сделали некоторые математические выводы о статистике простой линейной регрессии, а также немного закодировали. Теперь мы покажем три различных подхода к оценке модели линейной регрессии: оценщик, реализованный с нуля, sklearn's linear_model класс и scipy.linalg.lstqd функция. Кроме того, мы собираемся использовать коэффициент Пирсона R для проверки линейной корреляции наших данных и коэффициент определения R² для проверки и сравнения всех наших трех моделей.

И помните, что, в конце концов, под всем кодом и математикой мы будем решать только уравнение

для гиперпараметров W₁ и W₀ таким образом, чтобы сумма квадратов отклонений была минимизирована при наборе данных x.

Мы собираемся использовать набор данных Kaggle о погодных условиях во время Второй мировой войны, чтобы оценить максимальную дневную температуру в городе Париж на основе минимальной температуры.

Пойдем!

Коэффициент R

В последней статье упоминался коэффициент линейной корреляции. Теперь, назвав его коэффициентом корреляции R (который также можно назвать коэффициентом R Пирсона или ρкоэффициента корреляции Пирсона или продукт-момент… статистиками, верно?), мы снова посмотрю, как это работает.

Как указывалось ранее, коэффициент R — это число, которое говорит нам об очень важном поведении набора данных:

The R correlation coefficient is a number that measures how strong is
the linear relationship between two features of a dataset.

This number varies from -1 to 1, where:

  r ≥ 0.9 is a very strong linear correlation
  r ≥ 0.7 is a strong      linear correlation
  r ≥ 0.5 is a moderate    linear correlation
  r ≥ 0.3 is a weak        linear correlation 
  else, it is a negligible LINEAR correlation

The same can be stated for negative values.

А R можно легко вычислить по формуле

Проверьте это, чтобы понять дисперсию var и ковариацию cov. Опирайтесь на концепции, а не только на математику.

Коэффициент R²

Вы знаете, Р. Уравняйте это.

Вроде, как бы, что-то вроде.

На данный момент все, что нам нужно знать, это то, что говорит нам коэффициент R², также известный как коэффициент детерминации.

В следующих статьях (о множественной регрессии) мы можем провести математические расчеты R². Прямо сейчас мы собираемся понять информацию, которую он передает, и применить ееfrom sklearn.metrics import r2_score.

Таким образом, этот коэффициент определяет точность нашей модели или насколько хорошо линейная оценка работает с некоторыми данными.

'''
The R² coefficient is a number between 0 and 1 that evaluates in percentages
how much the linear estimator explains the predicted data. For example:

  Given a dataset, we want to predict the feature Y based on the variable X;
  After the calculations, we want to know if the predictions of Y are good;
  To perform this validation we ask python to compute the R² score.
  If the value is 100%, the estimator precisely predicts all the values.
  If the value is 0.0%, the estimator misses all the values.
'''

from sklearn.metrics import r2_score

true_Y      = [1, 6, 11, 16, 21, 26] #true data
predicted_Y = [0, 4,  9, 17, 21, 25] #data predicted by our model

r2_score(true_Y, predicted_Y)
[Out] 0.9748571428571429

#the model explains and correctly predicts 97.49% of the data.
#the other 2.51% is left unexplained by our linear approximation.

Хватит теории, давайте кодить.

Код

В следующих трех совместных лабораториях три разных подхода применялись в одном и том же контексте: Набор климатических данных Второй мировой войны от Kaggle. Этот набор данных содержит данные о погоде по всему миру, но нас интересуют только те, которые представляют температуру в городе Париж, Франция.

Реализация линейной оценки с нуля

Реализация линейной оценки через библиотеку sklearn

Реализация линейной оценки через библиотеку scipy

Вы можете проверить в документации и в репозитории GitHub, что класс sklearn's LinearRegression() внутренне использует scipy's функции, обернутые как объект linear_model, и именно поэтому я показываю вам, как его использовать.

Заключение

Таким образом, все подходы имеют одинаковые коэффициенты и все подходы имеют одинаковую оценку R². Таким образом, мы можем показать, что в данном случае оценка R² является функцией W₁ и W₀,независимо от того, как мы их получили.

Из соображений производительности для больших наборов данных вам следует чаще использовать собственные решения/библиотеки, а не реализовывать свои вручную.

Спасибо.

Вы идентифицируете себя как латиноамериканца и работаете в области искусственного интеллекта или знаете кого-то из латиноамериканца и работает в области искусственного интеллекта?

Не забудьте нажать 👏 ниже, чтобы поддержать наше сообщество — это очень много значит!

Спасибо :)