Search
Write a publication
Pull to refresh
18
0
Олег @OlegUV

Аналитик

Send message

Введение в визуализацию данных при анализе с помощью Pandas

Reading time6 min
Views54K
Доброго времени суток, уважаемые читатели.
Как обещалось в предыдущей статье, сегодня я продолжу рассказ о модуле pandas и анализе данных на языке Python. В данной статье хотелось бы затронуть тему быстрой визуализации данных результатов анализа. В этом нам помогут библиотека для визуализации данных matplotlib и среда разработки Spyder.
Читать дальше →

Kaggle и Titanic — еще одно решение задачи с помощью Python

Reading time23 min
Views81K
Хочу поделиться опытом работы с задачей известного конкурса по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга).



Читать дальше →

Парсинг формул в 50 строк на Python

Reading time4 min
Views44K
Вдохновение — задача с собеседования Яндекса и статья «Парсинг формул в 40 строк».

Моей целью было посмотреть, как будет выглядеть «pythonic» решение этой задачи. Хотелось, чтобы решение было простым, код читаемым и разделённым. В итоге ещё получился и пример применения цепочки генераторов (generators pipeline).
Читать дальше →

Проверка теории шести рукопожатий

Reading time9 min
Views57K


Хочу рассказать о своем эксперименте по проверке «Теории шести рукопожатий». На написание этого материала меня вдохновила статья «Анализ дружеских связей VK с помощью Python» (чтобы избежать повторений, в дальнейшем я буду ссылаться на нее). Так как в целом задача мной была поставлена по-другому, да и использованные методы тоже отличаются, то я решил что это может быть интересно.
Читать дальше →

PyOOCalc — Библиотека для генерации отчетов, счетов Libre/Open Office Calc на Python

Reading time3 min
Views21K
Порой возникают задачи, когда необходимо формировать отчеты и прочие документы. В моей практике данная задача возникала не раз.

Проекты, в которых возникала данная задача:

  • складской учет
  • учет объектов недвижимости
  • документооборот

Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc.
Читать дальше →

Нейросеть на Python, часть 2: градиентный спуск

Reading time16 min
Views60K
Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


В первой части я описал основные принципы обратного распространения в простой нейросети. Сеть позволила нам померить, каким образом каждый из весов сети вносит свой вклад в ошибку. И это позволило нам менять веса при помощи другого алгоритма — градиентного спуска.

Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
Читать дальше →

Используем TSQL для игры в «Балду»

Reading time12 min
Views9.5K
Недавно я вспомнил об замечательной интеллектуальной игре «Балда», с которой я познакомился еще в школьные годы.

На днях я задался вопросом – насколько сложно будет реализовать алгоритм этой игры для компьютерного соперника?

Так как мне больше всего нравится работать с реляционными данными и моим любимым языком является SQL, то я решил совместить приятное с полезным и попробовать написать этот алгоритм используя только TSQL. Это моя первая попытка написать ИИ используя только возможности SQL.

Архив с файлами можно скачать по следующей ссылке – скрипты.
Все слова в словаре в верхнем регистре, а также в нем буквы «Е» и «Ё» считаются за одну (как «Е»).

В результате была создана следующая схема:

Читать дальше →

COUNT(*)

Reading time7 min
Views124K


У меня есть подборка простеньких вопросов, которые я люблю задавать при собеседовании. Например, как посчитать общее число записей к таблице? Вроде бы ничего сложного, но если копнуть глубже, то можно много интересных нюансов рассказать собеседнику.

Давайте начнем с простого… Эти запросы отличаются чем-то друг от друга с точки зрения конечного результата?

SELECT COUNT(*) FROM Sales.SalesOrderDetail
SELECT COUNT_BIG(*) FROM Sales.SalesOrderDetail
Подробнее

PythonDigest — выпуск номер 100 и другие замечательные новости

Reading time8 min
Views12K
Python жив! С такого громкого заявления хочется начать статью.

На этой неделе вышел 100-тый Python Digest. По такому случаю мы решили подвести итоги работы над дайджестом и рассказать о тенденциях, выявленных в процессе сбора новостей по языку, которому собственно и посвящен дайджест.



В конце 2014 года мы подводили итоги за год. В этот раз мы рассмотрим тенденции за неполные 11 месяцев 2015-года.

Но перед тем как перейдем к тенденциям — расскажем что сделали за (почти) год.

Интересующихся подробностями милости просим под кат.
Подробности

Нейросеть в 11 строчек на Python

Reading time8 min
Views551K

О чём статья


Лично я лучше всего обучаюсь при помощи небольшого работающего кода, с которым могу поиграться. В этом пособии мы научимся алгоритму обратного распространения ошибок на примере небольшой нейронной сети, реализованной на Python.

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →

Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение

Reading time13 min
Views64K


Привет сообществу!

Я Юрий Кашницкий, раньше делал здесь обзор некоторых MOOC по компьютерным наукам и искал «выбросы» среди моделей Playboy.

Сейчас я преподаю Python и машинное обучение на факультете компьютерных наук НИУ ВШЭ и в онлайн-курсе сообщества по анализу данных MLClass, а также машинное обучение и анализ больших данных в школе данных одного из российских телеком-операторов.

Почему бы воскресным вечером не поделиться с сообществом материалами по Python и обзором репозиториев по машинному обучению… В первой части будет описание репозитория GitHub с тетрадками IPython по программированию на языке Python. Во второй — пример материала курса «Машинное обучение с помощью Python». В третьей части покажу один из трюков, применяемый участниками соревнований Kaggle, конкретно, Станиславом Семеновым (4 место в текущем мировом рейтинге Kaggle). Наконец, сделаю обзор попавшихся мне классных репозиториев GitHub по программированию, анализу данных и машинному обучению на Python.

Читать дальше →

50 лучших инструментов для разработки CSS и JavaScript

Reading time3 min
Views74K
Веб-разработчику постоянно необходимо быть в курсе появления новых библиотек и инструментов. Я нашёл и выбрал несколько лучших инструментов для разработки как CSS, так и JavaScript. Это не просто копипаста – это выборка, основанная как на рекомендациях, так и на личном опыте использования.

Разработка фронтэнда – штука хитрая. И хотя она не слишком сложная для освоения, некоторые тонкости освоить также не помешает. В сети ежедневно появляются отличные ресурсы. Они могут дать толчок развитию ваших навыков и помочь вам лучше выполнить вашу задачу.

Лучшие инструменты для CSS и JavaScript


1) Fileicone

Сборник 100%-CSS файловых иконок. Может пригодиться для дизайна страниц.

image

2) Marx

Элегантное обнуление CSS безо всякого JavaScript.

image
Читать дальше →

22 правила повествования от Pixar

Reading time2 min
Views46K
image

Эти правила впервые появились в твитах автора сценариев из Pixar, Эммы Коатс [Emma Coats]. Кстати, правило №9,– если вы застряли, сделайте список того, что не может произойти,- подойдёт для писателей, работающих в любых жанрах.
Читать дальше →

Машинное обучение, предсказание будущего и анализ причин успеха в электронной коммерции

Reading time10 min
Views28K


Мы продолжаем публиковать материалы с летней конференции Bitrix Summer Fest. На этот раз хотим поделиться выступлением Александра Сербула, посвящённым текущим трендам в сфере машинного обучения, доступным методикам, а также практическим способам использования математики для увеличения конверсии и удержания клиентов.

Материал ни в коем случае не претендует быть формальным и научно строгим. Воспринимайте его как лёгкое, весёлое, полезное и ознакомительное «чтиво».
Читать дальше →

Задача о конфетах

Reading time3 min
Views23K
На днях столкнулся с интересной задачкой, которая показалась мне достойной аудитории данного ресурса. Условие ее следующее:

«Найти максимально допустимое отклонение массы конфеты при ее производстве, чтобы нетто коробки, состоящей из 12 штук их, не выходило за пределы 310±7 грамм в 90% случаев. Закон распределения считать нормальным.»

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

Я предложил читателям решить задачу самостоятельно и должен сказать, что они справились с этим лучше меня. В своем же решении я я сделал не верное допущение.
Решение

Как легко понять логистическую регрессию

Reading time5 min
Views225K
Логистическая регрессия является одним из статистических методов классификации с использованием линейного дискриминанта Фишера. Также она входит в топ часто используемых алгоритмов в науке о данных. В этой статье суть логистической регрессии описана так, что она станет понятна даже людям не очень близким к статистике.

image
Читать дальше →

Применяем корреляцию в ритейле

Reading time5 min
Views15K
На данный момент система высшего образования свела математику до одноразового применения — сломать мозг студентов младших курсов непрофильных специальностей и благополучно выветрится к следующей сессии. Некоторые, правда, потом еще помнят что такие науки как математика и статистика это реальная сила, но мало кто это понимает и тем более применяет в своей деятельности.

В Datawiz.io, собрав несколько мат-гиков, мы решили попытаться изменить сложившуюся ситуацию. Интересно же использовать свои знания на чем-то реальном, измеримом, и даже, возможно, приносящем пользу обществу. Остановились мы на ритейл индустрии. Ритейл предлагает множество данных для обработки, просто водопад цифр: продажи, чеки, ценообразование, покупатели, программы лояльности,… Есть с чем порезвится.
image

Читать дальше →

Как написать пост с формулами: markdown + LaTeX

Reading time3 min
Views24K
Привет! На Хабре периодически появляются статьи, где авторы хотят вставить математические формулы: inline_formula, inline_formula или даже


У некоторых это получается, у некоторых — с трудом. parpalak сделал web-сервис для вставки svg формул, и это очень круто. Я хочу дополнить его небольшим скриптом, с которым вставка многих формул сведется к одной команде.

Читать дальше →

R и Python — достойные соперники?

Reading time7 min
Views77K


Всем доброй пятницы, дорогие читатели!

В истории компьютерной редакции издательства «Питер» найдется немного столь успешных книг, как "Программируем на Python" Майкла Доусона и не больше таких противоречивых тем, как изумительный язык R, прочно закрепившийся в числе бестселлерных тем «Амазона». В настоящее время мы договариваемся с правообладателями о новой замечательной книге по Python, но в то же время хотели проверить общественное мнение о R — целесообразно ли издавать новые книги об этом элитарном языке для гуру большой статистики, либо Python легко его одолеет, не то что Аполлона?

Добро пожаловать под кат!
Читать дальше →

Поиск ассоциативных правил в результатах опросов

Reading time4 min
Views11K
Поиск ассоциативных правил хорошо известный метод анализа данных. На Хабре уже была публикация с историей вопроса об этом методе и общими определениями. В этой статье пойдет речь об адаптации алгоритма поиска ассоциативных правил в данных полученных опросами респондентов. Результаты работы алгоритма продемонстрированы на данных европейского социального исследования (ESS).


Foto: Owen Humphreys/AP

Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity