Как обеспечить правильное начальное предположение и границы логистической регрессии? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь реализовать логистическую регрессию, используя scipy.optimize в python. Когда я попытался использовать sklearn, я узнал о бета-значениях, которые можно использовать для прогнозирования для данного набора данных. Но когда я пытаюсь использовать его в функции оптимизации scipy, значение стоимости уходит в бесконечность или иногда значения в порядке, но перехвата нет. Причина в том, что границы и первоначальная догадка кажутся. Как это можно сформулировать? Если есть какой-либо другой метод, пожалуйста, дайте мне знать.

import scipy 
import numpy as np 


def sigmoid(x,beta):
    return((np.exp(np.dot(x, beta))/(1.0 + np.exp(np.dot(x, beta)))))

def mle(beta, x, y):
    return(-(np.sum(y*np.log(sigmoid(x, beta)) + (1-y)*(np.log(1-sigmoid(x,beta))))))

# x0 value ? and bounds ? 
result = scipy.optimize.minimize(mle, x0 = np.array([-.1]), args = (x,y))

В этом нет перехвата. Форма данных кадра (100,2). Пожалуйста, совет

1 Ответ

0 голосов
/ 09 ноября 2019

Я только что добавил x = np.hstack ((np.ones ((x.shape [0], 1)), x)), и это решило проблему.

...