Data Funk – Telegram
Data Funk
249 subscribers
195 photos
2 videos
1 file
73 links
Download Telegram
Один из моих любимых ресурсов - towardsdatascience.com. Пробежавшись по статьям за 3 последних года, заметил, что в среднем статья оценивается выше (средней оценки по всем статьям) если в ней присутствуют теги programming, machine-learning, education, python, а также trading, money, finance, careers. А анти рейтинге оказались covid19, coronavirus, politics, tableau, power-bi, julia, r. Средний посетитель towardsdatascience.com изучает python и ML ради карьеры и способов заработать на своих знаниях, и ему не очень нравится читать про политику, корону, аналитические инструменты и менее популярные языки.

Датасет взят тут -> https://www.kaggle.com/alexbenzik/towards-data-science-37k-articles
Глядя на 2020 год сквозь призму towardsdatascience.com, можно видеть что по сравнению с 2019 некоторые темы в целом умерли: svm, digital-marketing, seq2seq, tensorflow2, game-of-thrones. Другие наоборот появились: covid19, mlops, deep-r-l-explained. А статьи с такими темами как графы знаний, исследование причинности, neo4j и биология стали набирать значительно больше лайков по сравнению с 2019-ым. Если тенденция продолжится, то в 2021 году графы станут одним из основных обязательных инструментов в руках датасаентиста.
Один из самых популярных игрушечных датасетов - diamonds. Я взял версию побольше - данные с сайта brilliantearth.com с описанием 119К бриллиантов и их цены. Она конечно зависит во многом от веса камня (price ~ carat^1.22). Происхождения камня: искусственные из лаборатории или натуральные, вторые дороже. Также от цвета. Вообще бриллианты измеряются по цветовой по шкале от D (полностью прозрачный) до Z (очень мутный). Первые конечно редкие, дорогие и мелкие (в среднем по 0.64 карата), все что весит больше карата скорее всего будет из цветовой категории I, J, и ниже (заметно мутные) и вырощенны в лаборатории. Цена на лабораторные камни подобных мутных оттенков может упасть сразу на 30%-50% за карат по сравнению с прозрачными натуральными камнями.
Другой важный показатель - сlarity, в среднем искусственные бриллианты имеют больше заметных вкраплений, что снижает их цену. Среди десятка форм камней на brilliantearth.com самой важной оказалась Round, дешёвые лабораторные алмазы часто ограняют в круглую форму. Огранка, в зависимости от симметрии и отражающих качеств алмаза также играет важную роль при определении цены.

Датасет взят тут -> https://www.kaggle.com/miguelcorraljr/brilliant-diamonds
Когда онлайн магазины пытаются подсунуть вам что-нибудь еще в корзину при покупке, то скорее всего они используют либо матричную факторизацию, либо цепи Маркова, либо ассоциативные правила. Последний алгоритм особо интересен сочетанием простоты и красоты даваемых результатов. Например, вы заказали себе cpu для нового компа, но оказывается что шансы на приобретение cpu + memory выше, чем независимое их приобретение, и поэтому онлайн магазин с удовольствием вам подсказывает что возможно вы хотите прикупить еще и memory. Это и называется ассоциативное правило. Магазины обычно их составляют очень много (миллионы) и тут с ними главное не ошибиться.
При заказе продуктов люди часто берут что угодно + хлеб, но это не значит что если человек положил себе в корзину что-либо, ему нужно подсказать купить хлеб. Скорее всего он его купит из без нашей подсказки. Ниже по ссылке вы можете найти датасет с транзакциями 285М юзеров в одном из онлайн магазинов (на самом деле там даже несколько датасетов) за небольшие полгода его работы. По этим данным можно узнать много о поведении людей, например если вы купили слипоны, фен и мышку для ноута, то скорее всего вам понадобятся еще и шлёпки. На картинке представлено небольшое количество парных правил, стрелки показывают что вам можно порекомендовать, если вы решили взять какой-то товар.

Датасет взят тут -> https://www.kaggle.com/mkechinov/ecommerce-behavior-data-from-multi-category-store
Пока не нашел интересный датасет, решил немного порисовать с помощью Extreme Learning Machine (ELM). В основе ELM лежит простая идея - берем двухслойную нейронную сеть, первый слой делаем широким, задаем рандомно и замораживаем, а второй учим как обычную линейную модель. Всё.
В результате у тебя: 1) вместо безумной функции потерь с множеством экстремумов есть выпуклая задача оптимизации с гарантированным глобальным минимумом, 2) опубликованное доказательство того, что ELM обладает всеми свойствами глобальных аппроксиматоров, 3) все плюшки интерпретируемости линейных моделей. Плюс к этому: скорость обучения превышает метод обратного распространения ошибки в сотни и тысячи раз, PCA и NMF - это просто частные кейсы ELM, функция активации необязательно должна быть гладкой даже локально, а также вся теория линейной алгебры с её LU, QR и прочими разложениями.
Ограничился первым слоем в 300 случайных нейронов с ReLU, а дальше включал их очереди, что бы посмотреть как ELM пытается выучить картинки. Ниже алгоритм пытается нарисовать сову, Николаса Кейджа и знак супермена.
Наткнулся на 1.5Gb датасет русскоязычных текстов для задачи классификации детская/взрослая литература. Там же приложена статья авторов с архива, где они пишут - "We also found that some features used to determine text difficulty positively affect the quality of age-based classification". Часто оценка сложности чтения текста представляет собой линейную комбинацию различных статистик текста и их отношений (среднее число слогов в слове, среднее число слов в предложении и т.д.) Почему бы не сделать еще один индекс удобочитаемости просто как классификатор детской/взрослой литературы? Без эмбедингов и только линейная модель. Я использовал spaCy (c модулем русского языка ru_core_news_lg). Оказалось достаточно пометить какие из токенов в предложении являются стоп-словам (is_stop), пунктуацией (is_punct), словами с заглавной буквой (is_noscript), посчитать долю глухих согласных от длины слова (prop. of voiceless cons. in a word), количество и долю гласных в слове (count/prop. of vowels in a word), количество звонких согласных в слове (count of voiced cons. in a word).
Дальше от этого берутся базовые статистики по каждому предложению, следом еще один слой статистик поверх предыдущих для каждого текста и из этого складывается линейная модель. Я ограничил формулу пятью слагаемыми, что бы она влезла в картинку и не выглядела слишком страшно. Даже с пятью слагаемыми линейка распознаёт взрослую и детскую литературу на тесте с точностью 0.76 (AUC = 0.83) и на картинке можно увидеть распределение этого кастомного индекса читабельности по каждому из типов литературы. Чем выше индекс, тем выше шанс, что текст детский и его легче читать.
Формулу сразу не просто интерпретировать, но кажется чем больше пунктуации, тем сложнее текст для чтения, а вот разнообразие стоп-слов и слов с заглавной буквой (имена и названия) наоборот упрощают чтение, как дисперсия слов с глухими согласными.

Датасет взят тут -> https://www.kaggle.com/oldaandozerskaya/fiction-corpus-for-agebased-text-classification
Выше я как-то писал про индийскую кухню, сегодня продолжение темы о еде. Сайт Food.com. Более полумиллиона рецептов по множеству категорий блюд с подробным описанием состава каждого из них. Среди характеристик описания: Calories (калории), Carbohydrate Content (содержание углеводов), Cholesterol Content (содержание холестерина), Cooking Time (время готовки), Fat Content (жирность), Fiber Content (содержание клетчатки), Preparation Time (время подготовки), Protein Content (содержание белка), Recipe Servings (количество порций), Saturated Fat Content (содержание насыщенных жиров), Sodium Content (содержание натрия), Sugar Content (содержание сахара).