2016-11-21 4 views
2

Я calcualting весов для linear regression with weight-decay, т.е. обычно я пытаюсь найти beta = (X'X + lambda I)^-1 X'Y где X имеет n ряды D особенности каждого и Y вектор выходов для каждая строка X.Установка смещения в регрессии веса распада с использованием наименьших квадратов

Я был фитинг без термина смещения с помощью:

def wd_fit(A, y, lamb=0): 
    n_col = A.shape[1] 
    return np.linalg.lstsq(A.T.dot(A) + lamb * np.identity(n_col), A.T.dot(y)) 

Я хотел бы также вычислить термин смещения или перехватывать для посадки, вместо того, чтобы она проходит через начало координат. Я хотел бы сохранить тот же вызов в lstsq, поэтому, если есть какой-то матричный преобразование, которое я могу выполнить, это было бы идеально. Моя склонность заключается в том, чтобы добавить столбец 1s где-то, так что X_mod скажет, что у него будут D+1 функции, в которых последнее относится к значению перехвата, но я не совсем уверен, где это должно быть или даже если это правильно.

+0

Можете ли вы дать дополнительную информацию об уравнении, которое вы пытаетесь реализовать? (отредактируйте ваш вопрос) – Hida

+0

@Hida Я добавил некоторую информацию, дайте мне знать, если вам нужно больше. Благодарю. – Jaxter

ответ

0

Если вы не хотите ссылаться на свои переменные, то добавление столбца из них будет работать и является вполне приемлемым решением.

Термин смещения будет просто коэффициентом в позиции добавленного столбца.

+0

Спасибо. Как насчет того, должен ли я означать, что центр ввода? Есть ли другой метод? – Jaxter

+0

Если вы центрируете данные, нет необходимости в столбце из них. – broncoAbierto