Я пытаюсь реализовать логистическую регрессию, используя 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). Пожалуйста, совет