По сути, я хочу преобразовать показатели сходства в веса, которые используются в качестве предикторов. Сходства будут на [0,1], и я ограничу веса также на [0,1]. Мне бы хотелось, чтобы параметрическая функция выполняла это отображение, которое я, скорее всего, оптимизирую с помощью градиентного спуска. Требования состоят в том, чтобы 0 отображалось на 0, 1 отображалось на 1, и оно строго увеличивалось. Простая производная также приветствуется. заранее спасибо
Редактировать: Спасибо за ответы, они очень полезны. Чтобы сделать мою цель более ясной, задача - предсказание. Мои наблюдения представляют собой чрезвычайно разреженные векторы с одним измерением для прогнозирования. Мои входные размеры используются для вычисления сходства. Мой прогноз - это взвешенная сумма значений других наблюдений для предиктора, где вес является функцией подобия. Я ограничиваю свои веса на [0,1] для простоты. Надеюсь, теперь очевидно, почему мне требуется 0 для отображения на 0, 1 для отображения на 1, и чтобы оно строго увеличивалось. Как указал whuber, использование f (x) = x отвечает этим требованиям и на самом деле работает довольно хорошо. Однако он не имеет параметров для оптимизации. У меня много наблюдений, поэтому я могу терпеть множество параметров. Я буду вручную кодировать градиентный спуск, отсюда мое предпочтение простой производной.
Например, многие из приведенных ответов симметричны относительно .5. Было бы полезно иметь параметр для сдвига влево / вправо (например, с бета-распределением)
источник
Ответы:
Вот один из них:
где является > 0β > 0
] 2
источник
Как уже прокомментировал @whuber, функция удовлетворяет трем упомянутым вами требованиям (то есть 0 соответствует 0, 1 соответствует 1, и функция строго увеличивается). В заголовке вашего вопроса вы, кажется, указываете, что вас также интересует S-образная функция, как в сигмоидальной / логистической кривой. Это правильно? В этом случае вам непременно следует попробовать следующую логистическую функцию, которая будет приблизительно соответствовать всем 4 указанным вами критериям: 1е( х ) = х .
в этом уравнении будет контролировать наклон вашей кривой. Изменение k также позволит вам контролировать, насколько близко f ( 0 ) и f ( 1 ) к 0 и 1 соответственно. Например , для к = 20 , F ( 0 ) = 4.539787 е - 05 и F ( 1 ) = 0.9999546 .К К е( 0 ) е( 1 ) к = 20 е( 0 ) = 4.539787 е - 05 е( 1 ) = 0,99999546
Производная этой функции легко вычисляется как:
источник
Позвольте мне предложить наиболее общее решение, соответствующее требованиям: это даст вам максимальную гибкость при выборе и оптимизации.
Мы можем интерпретировать S-образную форму как монотонно возрастающую кривую (потому что преобразование должно быть взаимно однозначным), состоящую из одной части, которая является вогнутой вверх, и другой части, которая является вогнутой вниз. Мы можем сосредоточиться на том, чтобы сделать левую половину вогнутой вниз, потому что другой тип (с левой половиной вогнутой вверх) получается путем инвертирования таких преобразований.
Эта вторая производная может делать практически все : все, что нам нужно, это
это интегрируемо,
а также
R
источник
Для чего вы пытаетесь использовать это, мне не очень понятно, поэтому я не могу сказать, имеет ли смысл это делать, но выполнение всех ваших критериев кажется довольно тривиальным.
Так почему бы просто не взять какое-нибудь удобное конкретное семейство непрерывных унимодальных * распределений на [0,1], чей pdf "простой"? Это, кажется, выполняет каждую часть того, что вы перечисляете там.
* (режим которого ограничен от конечных точек)
S-образная кривая - гарантируется унимодальностью (с режимом не в конечных точках)
параметрический - путем указания любого конкретного семейства, имеющего параметры
0 отображает 0, 1 отображает 1, строго увеличивая - это то, что делают функции распределения в [0,1]; вам просто нужно, чтобы плотность была> 0 в (0,1)
Простая производная - это PDF, так что если PDF "простой" по любому критерию, вы готовы.
Существует (как сказал Алекс Р) их бесконечное множество. Бета, о которой он упоминает, очевидна, но cdf - это неполная бета-функция, поэтому вам нужно кое-что для ее оценки - это стандартная функция во многих пакетах (включая почти все пакеты приличной статистики), поэтому я сомневаюсь, что быть трудным Однако обратите внимание, что не все бета-версии являются унимодальными (с режимом не на концах), поэтому семейство также включает в себя cdf-файлы, которые не имеют «s» -образной формы.
Вот фотографии трех достаточно простых семей:
Есть много других вариантов, и новые могут быть легко построены.
-
В ответ на правку вопроса:
источник