Почему примерка модели Риджа показывает предупреждение, когда мощность знаменателя в альфа-значении увеличивается до 13 или более? - PullRequest
0 голосов
/ 15 октября 2019

Я пытался создать цикл, чтобы выяснить различия в оценках точности набора поездов и тестов набора данных жилья в Бостоне, оснащенного регрессионной моделью Риджа.

Это был цикл for: дляi в диапазоне (1,20): хребет (альфа = 1 / (10 ** i)). fit (X_train, y_train)

Отображается предупреждение, начинающееся с i = 13.

Предупреждение:

LinAlgWarning: плохо подготовленная матрица (rcond = 6.45912e-17): результат может быть неточным. overwrite_a = True) .T

Что означает это предупреждение? И возможно ли от него избавиться?

Я проверил его выполнение отдельно без цикла, все равно не помогло.

#importing libraries and packages

import mglearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge

#importing boston housing dataset from mglearn
X,y = mglearn.datasets.load_extended_boston()

#Splitting the dataset
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)

#Fitting the training data using Ridge model with alpha = 1/(10**13)
rd = Ridge(alpha = 1/(10**13)).fit(X_train,y_train)

Не следует отображать предупреждение, упомянутое выше длялюбое значение i.

1 Ответ

0 голосов
/ 15 октября 2019

В Ridge Regression вы строите в Kernel Matrix, которая содержит сходства между всеми вашими метками обучения. Параметры подгонки хребта регрессии можно найти как в этой матрице ядра, так и на ваших тренировочных ярлыках. Если у вас есть, например, два очень похожих образца, решаемая матрица будет переопределена. Чтобы обойти это, к диагонали можно добавить небольшое значение, и это значение является параметром alpha, который вы задаете. Так что получается, что когда ваше значение alpha приближается к 0, матрица, скорее всего, будет переопределена (но зависит от характера ваших данных). Но это должно проявиться как низкая точность перекрестной проверки, так что вам не нужно слишком беспокоиться об этом.

В общем, если вы удерживаете alpha выше порога предупреждения, у вас все будет хорошо,и в процедуре перекрестной проверки значение alpha, скорее всего, будет выбрано выше этого порога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...