У меня есть массив Python, содержащий дат, представляющих количество явлений явления в конкретный год. Этот вектор содержит 200 разных дат, повторяющихся определенное количество раз каждый. Повторения - это количество явлений явления. Мне удалось вычислить и построить накопленную сумму с matplotlib
с в следующем фрагменте кода:Параметры сигмоидальной регрессии в Python + scipy
counts = arange(0, len(list_of_dates))
# Add the cumulative sum to the plot (list_of_dates contains repetitions)
plt.plot(list_of_dates, counts, linewidth=3.0)
В синий, вы можете увидеть, кривая, изображающая накопленную сумму, в других цветах параметры, которые я хотел чтобы получить. Однако Мне нужно математическое представление синей кривой, чтобы получить эти параметры. Я знаю, что этот тип кривых можно настроить с использованием логистической регрессии, однако я не понимаю, как это сделать в Python.
Сначала я пытался использовать
LogisticRegression
из Scikit учиться, но потом я понял, что они, кажется, использует эту модель для машинного обучения classification (и другие вещи), так , который не является то, что я хочу.Тогда я подумал, что могу перейти непосредственно к определению логистической функции и попытаться построить ее самостоятельно. Я нашел this thread, где для расчета кривой рекомендуется использовать
scipy.special.expit
. Кажется, эта функция уже реализована, поэтому я решил ее использовать. Так что я сделал это:target_vector = dictionary.values() Y = expit(target_vector) plt.plot(list_of_dates, y, linewidth=3.0)
Я получил вектор обратно с 209 элементами (так же, как target_vector
), которые выглядят следующим образом: [ 1. 0.98201379 0.95257413 0.73105858 ... 0.98201379 1. ]
. Тем не менее, графический вывод выглядит, если ребенок царапал бумагу, а не как хорошую сигмовидную кривую, как на картинке.
Я также проверил другие потоки переполнения стека (this, this), но я думаю, что мне нужно сделать только игрушечный пример по сравнению с ними. Мне нужна математическая формула для вычисления некоторых быстрых и простых параметров.
Есть ли способ сделать это и получить математическое представление сигмоидальной функции?
спасибо!
Логистическая регрессия действительно является проблемой классификации. Я думаю, вы ищете обобщенную линейную модель с функцией логической ссылки. Я никогда не делал этого в python, но 'statsmodels' предлагает реализации GLM для ряда различных функций ссылок. Я уверен, что вы найдёте модель для регрессии логита. – cel
Я проверяю пакет, который вы упоминаете в категории «Логистическая регрессия», и на мои (плохие) знания, кажется, больше ориентирован на «классификацию машинного обучения», больше, чем на проблему «кривой подгонки», которая до сих пор, я думаю то, что мне нужно: математическое описание кривой. Возможно, я неправильно использовал условия моего первоначального сообщения. :) – iamgin