Я читаю эту книгу ( NLTK ), и это сбивает с толку. Энтропия является определяется как :
Энтропия - это сумма вероятностей каждой метки, умноженная на логарифмическую вероятность той же самой метки.
Как я могу применить энтропию и максимальную энтропию с точки зрения интеллектуального анализа текста? Может ли кто-нибудь дать мне простой, простой пример (визуальный)?
Ответы:
Я предполагаю, что энтропия упоминалась в контексте построения деревьев решений .
Для иллюстрации, представьте себе задачу обучения , чтобы классифицировать первоклассник имен в мужские / женские группы. Это дает список имен, каждое из которых помечено либо,
m
либоf
, мы хотим изучить модель, которая соответствует данным и может использоваться для прогнозирования пола нового невидимого имени.Первый шаг - это решить, какие особенности данных относятся к целевому классу, который мы хотим предсказать. Некоторые примеры функций включают в себя: первую / последнюю букву, длину, количество гласных, заканчивается ли это гласной и т. Д. Итак, после извлечения признаков наши данные выглядят следующим образом:
Цель состоит в том, чтобы построить дерево решений . Примером дерева будет:
в основном каждый узел представляет тест, выполненный для одного атрибута, и мы идем влево или вправо в зависимости от результата теста. Мы продолжаем обходить дерево, пока не достигнем конечного узла, который содержит прогноз класса (
m
илиf
)Поэтому, если мы запустим имя Amro по этому дереву, мы начнем с проверки « есть длина <7? » И ответ « да» , поэтому мы идем по этой ветви. После ветки следующий тест « количество гласных <3? » Снова оценивается как true . Это приводит к листовому узлу, помеченному
m
, и, таким образом, предсказание является мужским (что, как мне показалось, является таким, поэтому дерево предсказало результат правильно ).Дерево решений построено в нисходящем порядке , но вопрос в том, как выбрать, какой атрибут разделить на каждом узле? Ответ заключается в том, чтобы найти функцию, которая наилучшим образом разбивает целевой класс на самые чистые из возможных дочерних узлов (то есть: узлы, которые не содержат смесь как мужского, так и женского, довольно чистые узлы только с одним классом).
Эта мера чистоты называется информацией . Он представляет ожидаемый объем информации , который потребуется для указания того, должен ли новый экземпляр (имя) быть классифицирован как мужской или женский, учитывая пример, который достиг узла. Мы рассчитываем это на основе количества мужских и женских классов в узле.
С другой стороны, энтропия - это мера нечистоты (противоположность). Он определен для двоичного класса со значениями
a
/b
как:Эта двоичная энтропийная функция изображена на рисунке ниже (случайная величина может принимать одно из двух значений). Он достигает своего максимума, когда вероятность равна
p=1/2
, что означает, чтоp(X=a)=0.5
или аналогичным образом вероятностьp(X=b)=0.5
50% / 50% может быть равнойa
илиb
(неопределенность максимальна). Энтропийная функция находится на нулевом минимуме, когда вероятность равнаp=1
илиp=0
с полной уверенностью (p(X=a)=1
или,p(X=a)=0
соответственно, последнее подразумеваетp(X=b)=1
).Конечно, определение энтропии можно обобщить для дискретной случайной величины X с N результатами (а не только двумя):
(
log
в формуле обычно берется логарифм к основанию 2 )Возвращаясь к нашей задаче классификации имен, давайте рассмотрим пример. Представьте себе, что в какой-то момент в процессе построения дерева мы рассматривали следующее разбиение:
Как видите, до раскола у нас было 9 мужчин и 5 женщин, т.е.
P(m)=9/14
иP(f)=5/14
. Согласно определению энтропии:Далее мы сравним это с энтропией, вычисленной после рассмотрения разделения, рассматривая две дочерние ветви. В левой ветке
ends-vowel=1
мы имеем:и правильная ветвь
ends-vowel=0
, мы имеем:Мы объединяем левую / правую энтропию, используя количество экземпляров по каждой ветви в качестве весового коэффициента (7 экземпляров пошли влево, а 7 экземпляров - вправо), и получаем окончательную энтропию после разделения:
Теперь, сравнивая энтропию до и после разделения, мы получаем показатель прироста информации , или сколько информации мы получили, выполнив разделение, используя эту особенность:
Вы можете интерпретировать приведенный выше расчет следующим образом: выполнив разделение с помощью
end-vowels
функции, мы смогли уменьшить неопределенность в результате прогнозирования поддерева на небольшое значение 0,1518 (измеряется в битах как единица информации ).В каждом узле дерева этот расчет выполняется для каждого объекта, и объект с наибольшим выигрышем информации выбирается для разделения жадным образом (таким образом, отдавая предпочтение объектам, которые производят чистое разделение с низкой неопределенностью / энтропией). Этот процесс применяется рекурсивно от корневого узла и останавливается, когда конечный узел содержит экземпляры, имеющие один и тот же класс (нет необходимости разбивать его дальше).
Обратите внимание, что я пропустил некоторые детали, которые выходят за рамки этого поста, в том числе о том, как обрабатывать числовые функции , пропущенные значения , переоснащение и обрезку деревьев и т. Д.
источник
Для начала было бы лучше понять
the measure of information
.Как мы
measure
информацию?Когда случается что-то невероятное, мы говорим, что это большая новость. Кроме того, когда мы говорим что-то предсказуемое, это не очень интересно. Таким образом, чтобы определить это
interesting-ness
, функция должна удовлетворятьone bit
информацию.Одна естественная мера, которая удовлетворяет ограничениям
где р - вероятность события
X
. И устройство находится вbit
том же битовом компьютере. 0 или 1.Пример 1
Честная монета
Сколько информации мы можем получить за один бросок монеты?
Ответ :
-log(p) = -log(1/2) = 1 (bit)
Пример 2
Если метеорит обрушится на Землю завтра,
p=2^{-22}
тогда мы сможем получить 22 бита информации.Если Солнце встает завтра,
p ~ 1
тогда это 0 бит информации.Энтропия
Так что если мы рассчитываем на
interesting-ness
событиеY
, то это энтропия. т. е. энтропия - это ожидаемое значение интересности события.Более формально, энтропия - это ожидаемое количество битов события.
пример
Y = 1: событие X происходит с вероятностью p
Y = 0: событие X не происходит с вероятностью 1-р
Журнал базы 2 для всего журнала.
источник
Я не могу дать вам графику, но, возможно, я могу дать четкое объяснение.
Предположим, у нас есть информационный канал, например, индикатор, который мигает один раз в день, красный или зеленый. Сколько информации это передает? Первое предположение может быть один бит в день. Но что, если мы добавим синий, чтобы у отправителя было три варианта? Мы хотели бы иметь информацию, которая может обрабатывать вещи, отличные от степеней двух, но все же быть аддитивной (способ, которым умножение количества возможных сообщений на два добавляет один бит). Мы могли бы сделать это, взяв журнал 2 (количество возможных сообщений), но оказалось, что есть более общий способ.
Предположим, мы вернулись к красному / зеленому, но красная лампочка перегорела (это общеизвестно), поэтому лампа всегда должна мигать зеленым. Канал теперь бесполезен, мы знаем, какая будет следующая вспышкапоэтому вспышки не передают никакой информации, никаких новостей. Сейчас мы ремонтируем лампочку, но навязываем правило, что красная лампочка не может мигать два раза подряд. Когда лампа мигает красным, мы знаем, какая будет следующая вспышка. Если вы попытаетесь отправить поток битов по этому каналу, вы обнаружите, что должны кодировать его с большим количеством вспышек, чем у вас есть битов (на самом деле на 50% больше). И если вы хотите описать последовательность вспышек, вы можете сделать это с меньшим количеством битов. То же самое применимо, если каждая вспышка независима (не зависит от контекста), но зеленые вспышки встречаются чаще, чем красные: чем больше искажена вероятность, тем меньше битов необходимо для описания последовательности и чем меньше информации она содержит, вплоть до полностью зеленый, сгоревший предел лампы.
Оказывается, есть способ измерить количество информации в сигнале, основываясь на вероятностях различных символов. Если вероятность получения символа x i равна p i , то рассмотрим величину
Чем меньше p i , тем больше это значение. Если x i становится вдвое маловероятным, это значение увеличивается на фиксированную величину (log (2)). Это должно напомнить вам о добавлении одного бита к сообщению.
Если мы не знаем, каким будет символ (но мы знаем вероятности), то мы можем вычислить среднее значение этого значения, сколько мы получим, суммируя различные возможности:
Это информационный контент в один миг.
Это информационное содержание или энтропия сообщения. Максимально, когда разные символы равновероятны. Если вы физик, вы используете натуральный журнал, если вы информатик, вы используете журнал 2 и получаете биты.
источник
Я действительно рекомендую вам прочитать о теории информации, байесовских методах и MaxEnt. Начнем с этой книги Дэвида Маккея (свободно доступной в Интернете):
http://www.inference.phy.cam.ac.uk/mackay/itila/
Эти методы вывода на самом деле гораздо более общие, чем просто анализ текста, и я не могу придумать, как можно научиться применять это к НЛП, не изучив некоторые общие основы, содержащиеся в этой книге или других вводных книгах по машинному обучению и байесовскому макс. методы.
Связь между энтропией и теорией вероятностей для обработки и хранения информации действительно очень глубока. Чтобы дать представление об этом, есть одна теорема Шеннона, которая гласит, что максимальный объем информации, который вы можете передать без ошибок по шумному каналу связи, равен энтропии шумового процесса. Есть также теорема, которая связывает, сколько вы можете сжать кусок данных, чтобы занять минимально возможную память на вашем компьютере с энтропией процесса, который генерировал данные.
Я не думаю, что действительно необходимо, чтобы вы изучали все теоремы теории коммуникации, но невозможно изучить это, не изучив основы того, что такое энтропия, как она рассчитывается, как она связана с информацией и умозаключениями и т. Д. ...
источник
Когда я реализовывал алгоритм для вычисления энтропии изображения, я нашел эти ссылки, смотрите здесь и здесь .
Это псевдокод, который я использовал, вам нужно адаптировать его для работы с текстом, а не с изображениями, но принципы должны быть такими же.
Я получил этот код откуда-то, но я не могу найти ссылку.
источник
Неофициально
энтропия - это доступность информации или знаний. Недостаток информации приведет к трудностям в прогнозировании будущего, которое является высокой энтропией (предсказание следующего слова в текстовом анализе), а доступность информации / знаний поможет нам более реалистично прогнозировать будущее (низкая энтропия).
Соответствующая информация любого типа уменьшит энтропию и поможет нам предсказать более реалистичное будущее, что информацией может быть слово «мясо», присутствующее в предложении, или слово «мясо», которого нет. Это называется информационный прирост
Формально
энтропия это отсутствие порядка предсказуемости
источник
Когда вы читаете книгу о NLTK, было бы интересно прочитать о модуле классификатора MaxEnt http://www.nltk.org/api/nltk.classify.html#module-nltk.classify.maxent.
Для классификации интеллектуального анализа текста могут использоваться следующие этапы: предварительная обработка (токенизация, обработка паром, выбор функции с помощью информационного усиления ...), преобразование в числовое значение (частота или TF-IDF) (я думаю, что это ключевой шаг, который необходимо понимать при использовании текст в качестве входных данных для алгоритма, который принимает только числа), а затем классифицировать с MaxEnt, конечно, это только пример.
источник