Я спарсил более 1 тыс. лучших профилей по машинному обучению на Github, и вот что я нашел
Table Of Content
- Получение информации из лучших профилей по машинному обучению на Github
- Мотивация
- Data-science/visualization/github на ветке master · khuyentran1401/Data-science
- В настоящее время вы не можете выполнить это действие. Вы вошли в другую вкладку или окно. Вы вышли из системы в другой вкладке или окне.
- Мой метод для парсинга
- Инструменты
- Подробные учебники для начинающих: Парсинг базы данных фильмов с нескольких страниц с помощью Beautiful Soup
- Методы
- Визуализация данных
- Гистограммы
- Корреляция
- Языки
- Возможность найма
- Местоположение
- Облака слов для описаний и биографий
- Поделитесь своими результатами
- Выводы
- Как организовать свои статьи по Data Science с помощью Github
- Перегружены новой информацией? Теперь вы можете отслеживать и создавать настраиваемые заметки для своих статей с легкостью
- Введение в Datapane: библиотеку на Python для создания интерактивных отчетов
- Простая платформа для создания красивых отчетов и обмена результатами анализа с вашей командой
- Как создать интерактивные графики с помощью Altair
- Используйте свой анализ данных в 5 простых строках кода на Python
- Как использовать Visual Studio Code для ваших проектов по Data Science
- Мы понимаем насколько неэффективными были наши методы только после открытия нового эффективного метода
- Как обучить модель опорных векторов на нелинейном наборе данных
- Введение в модель опорных векторов и ее использование для нелинейного набора данных
Получение информации из лучших профилей по машинному обучению на Github
Мотивация
При поиске ключевого слова "машинное обучение" на Github я нашел 246,632 репозитория по машинному обучению. Поскольку это лучшие репозитории по машинному обучению, я ожидаю, что владельцы и участники этих репозиториев являются экспертами или компетентными в области машинного обучения. Поэтому я решил извлечь профили этих пользователей, чтобы получить интересные идеи о их опыте и статистике.
Не стесняйтесь форкать и играть с кодом для этой статьи в этом репозитории на GitHub:
Data-science/visualization/github на ветке master · khuyentran1401/Data-science
В настоящее время вы не можете выполнить это действие. Вы вошли в другую вкладку или окно. Вы вышли из системы в другой вкладке или окне.
github.com
Мой метод для парсинга
Инструменты
Для парсинга я использую три инструмента:
- Beautiful Soup для извлечения URL-адресов всех репозиториев с тегом машинного обучения. Beautiful Soup - это библиотека Python, которая позволяет легко парсить данные с веб-сайтов. Если вы не знакомы с Beautiful Soup, я написал учебник о том, как парсить с помощью Beautiful Soup в этой статье.
Подробные учебники для начинающих: Парсинг базы данных фильмов с нескольких страниц с помощью Beautiful Soup
medium.com
- PyGithub для извлечения информации о пользователях. PyGithub - это библиотека Python для использования Github API v3. С его помощью вы можете управлять своими ресурсами Github (репозитории, профили пользователей, организации и т. д.) из скриптов Python.
- Requests для извлечения информации о репозиториях и ссылках на профили участников.
Методы
Я парсю владельцев и топ-30 участников из топ-90 репозиториев, которые появляются в поиске.
Удаляя дубликаты и профили организаций, таких как udacity, я получаю список из 1208 пользователей. Для каждого пользователя я парсю 20 данных, перечисленных ниже.
new_profile.info()
В частности, первые 13 данных получаются отсюда.
Остальные данные получаются из репозиториев (исключая форкнутые репозитории) пользователя:
total_stars
- общее количество звезд у всех репозиториевmax_star
- максимальное количество звезд среди всех репозиториевforks
- общее количество форков у всех репозиториевdescriptions
- описания всех репозиториев пользователяcontribution
- количество вкладов за последний год
Визуализация данных
Гистограммы
После очистки данных наступает интересный момент: визуализация данных. Визуализация данных может дать нам много полезной информации. Я использую Plotly из-за его удобства в создании интерактивных графиков.
График трудно разглядеть из-за длинного "хвоста" пользователей с количеством подписчиков менее 100. Мы можем приблизить левую часть графика, чтобы получить лучший обзор.
Как мы видим, у llSourcell (Siraj Raval) большинство подписчиков (36261). У следующего пользователя примерно 1/3 подписчиков от того, что есть у llSourcell (12682).
Мы можем провести дальнейший анализ, чтобы определить, какой процент подписчиков получают топ 1% пользователей.
>>> top_n = int(len(top_followers) * 0.01)
>>> sum(top_followers.iloc[0: top_n,:].loc[:, 'followers'])/sum(top_followers.followers)
0.41293075864408607
1% самых популярных пользователей получают 41% подписчиков!
Те же самые закономерности прослеживаются и в других данных, таких как total_stars, max_star, forks
. Чтобы лучше рассмотреть эти столбцы, мы изменим масштаб оси y для этих функций на логарифмический масштаб. Ось y для contribution
не изменяется.
Эти графики похожи на закон Ципфа, где статистическое распределение в определенных наборах данных, таких как слова в языковом корпусе, в котором частоты определенных слов обратно пропорциональны их рангам.
Например, самое распространенное слово в английском языке - "the", - появляется примерно одну десятую часть времени в типичном тексте, хотя оно не так важно, как другие слова.
Мы часто видим закон Ципфа в других рейтингах, таких как ранги населения городов в разных странах, рейтинги доходов, ранги количества людей, покупающих книгу и т. д. Теперь мы видим этот закон снова в данных Github.
Корреляция
Но каковы взаимосвязи между этими данными? Существует ли сильная связь между ними? Я использую scatter_matrix
, чтобы получить общую картину корреляции между этими данными.
Точки данных склонны сгруппироваться вокруг левой нижней оси, потому что большинство точек данных пользователей находятся в этом диапазоне. Существует сильная положительная связь между:
- Максимальным количеством звезд и общим количеством звезд (0.939)
- Количеством форков (от других) и общим количеством звезд (0.929)
- Количеством форков и количеством подписчиков (0.774)
- Количеством подписчиков и общим количеством звезд (0.632)
Языки
Какие языки программирования предпочитают топовые пользователи машинного обучения? Каков процент использования Python, Jupyter Notebook, C, R? Мы можем использовать столбчатую диаграмму, чтобы узнать это. Чтобы лучше рассмотреть наиболее популярные языки, мы удалим языки, которые встречаются менее 10 раз.
Из столбчатой диаграммы выше мы можем увидеть рейтинг языков среди пользователей машинного обучения:
- Python
- JavaScript
- HTML
- Jupyter Notebook
- Shell и так далее
Возможность найма
Мы используем Altair для визуализации процента пользователей, указывающих, что они готовы к найму.
Местоположение
Чтобы понять, где находятся пользователи по всему миру, наша следующая задача - визуализировать местоположение пользователей. Мы будем использовать местоположения, полученные от 31% пользователей, которые указали свое местоположение. Начнем с извлечения списка местоположений из df и определения их с помощью geopy.geocoders.Nominatim
.
Затем используйте scatter_geo в Plotly, чтобы создать карту!
Приближайтесь, чтобы увидеть больше деталей о местоположении всех пользователей.
Облака слов для описаний и биографий
В наших данных также содержатся биографии пользователей, а также все описания их репозиториев. Мы будем использовать их, чтобы ответить на вопросы: в чем заключаются их основные интересы и профессиональный опыт.
Создание облаков слов позволит нам получить общую картину слов и их частоты использования в описаниях и биографиях. И создание облаков слов с помощью Python невероятно просто с помощью библиотеки WordCloud!
Создание облаков слов для биографий
Ключевые слова выглядят так, как мы ожидаем увидеть у пользователей, работающих с машинным обучением.
Поделитесь своими результатами
Мы собрали графики из списка. Пришло время создать отчет и поделиться тем, что вы нашли! Datapane - идеальный инструмент для этого.
Теперь у нас есть все графики, которые мы создали в этой статье, на веб-сайте, размещенном на Datapane и готовы к публикации!
Выводы
Данные получены от пользователей и участников первых 90 репозиториев с наилучшим соответствием по ключевому слову "машинное обучение" на Github. Таким образом, эти данные не гарантируют сбора всех лучших пользователей машинного обучения на Github.
Но я надеюсь, что вы сможете использовать эту статью в качестве руководства или вдохновения для сбора своих собственных данных и их визуализации. Вероятно, вы будете удивлены тем, что найдете. Data science имеет влияние и интересен, когда вы можете использовать свои знания для анализа вещей вокруг вас.
Мне нравится писать о основных концепциях data science и играть с различными алгоритмами и инструментами data science. Вы можете связаться со мной через LinkedIn и Twitter.
Поставьте звезду этому репозиторию, если вы хотите посмотреть коды ко всем статьям, которые я написал. Подписывайтесь на меня в Medium, чтобы быть в курсе моих последних статей по data science, подобных этим:
Как организовать свои статьи по Data Science с помощью Github
Перегружены новой информацией? Теперь вы можете отслеживать и создавать настраиваемые заметки для своих статей с легкостью
towardsdatascience.com
Введение в Datapane: библиотеку на Python для создания интерактивных отчетов
Простая платформа для создания красивых отчетов и обмена результатами анализа с вашей командой
towardsdatascience.com
Как создать интерактивные графики с помощью Altair
Используйте свой анализ данных в 5 простых строках кода на Python
towardsdatascience.com
Как использовать Visual Studio Code для ваших проектов по Data Science
Мы понимаем насколько неэффективными были наши методы только после открытия нового эффективного метода
towardsdatascience.com
Как обучить модель опорных векторов на нелинейном наборе данных
Введение в модель опорных векторов и ее использование для нелинейного набора данных
towardsdatascience.com