В прошлой статье мы сделали некоторые математические выводы о статистике простой линейной регрессии, а также немного закодировали. Теперь мы покажем три различных подхода к оценке модели линейной регрессии: оценщик, реализованный с нуля, 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₀,независимо от того, как мы их получили.
Из соображений производительности для больших наборов данных вам следует чаще использовать собственные решения/библиотеки, а не реализовывать свои вручную.
Спасибо.
Вы идентифицируете себя как латиноамериканца и работаете в области искусственного интеллекта или знаете кого-то из латиноамериканца и работает в области искусственного интеллекта?
- Зарегистрируйтесь в нашем каталоге и станьте участником форума наших участников: https://lxai.app/
- Станьте автором публикации LatinX в AI: http://bit.ly/LXAI-Volunteer
- Узнайте больше на нашем сайте: http://www.latinxinai.org/
Не забудьте нажать 👏 ниже, чтобы поддержать наше сообщество — это очень много значит!
Спасибо :)