Нормализовать сильно искаженный массив чисел?

#normalize

#нормализовать

Вопрос:

Я получаю массив хэштегов обратно из веб-службы, которую я использую для создания облака тегов. Моя проблема связана с присвоением веса шрифта тегам, потому что самый популярный тег ооочень популярен по сравнению с остальными тегами. Я получаю что-то вроде этого:

общее количество: 17000 количество тегов 1 15000 количество тегов 2 800 количество тегов 3 150

и т.д.

Если я назначу размер в процентах, я получу один огромный шрифт и кучу шрифтов с минимальным значением. Какой истинный масштаб, но он выглядит неправильно. Если я равномерно распределю размер шрифта — просто разделив максимальный размер шрифта на количество тегов, я не получу несоответствия, которое действительно показывает популярность тега.

Ищу золотую середину, где я могу легко увидеть популярность tag1, но остальные не слишком малы, чтобы даже видеть.

Надеюсь, это имеет смысл.

Комментарии:

1. Еще какие-нибудь объяснения? Я довольно хорош в математике, но по-прежнему мало использую журналы и не уверен, как я буду применять.

Ответ №1:

Использование log (count) должно выполнить эту работу. Логарифм к значению увеличится на единицу, когда входные данные увеличатся на порядок. Это означает, что log(100) = 2, log(1000) = 3, log(1000000) = 6 и т. Д., Если используется логарифм с основанием 10.

Другой способ выразить это так: логарифмы являются обратной функцией экспоненции.

Но Хан, вероятно, лучше объясняет это, чем я 🙂 https://www.khanacademy.org/math/algebra2/logarithms-tutorial/logarithmic-scale-patterns/v/logarithmic-scale

Ответ №2:

Вы могли бы попробовать разделить каждое значение на 100. Это позволит вам показывать различия в размерах, но может позволить вам иметь более низкий уровень несоответствия.