Для тех из вас, кто может быть незнаком, Фрикономика: экономист-мошенник исследует скрытую сторону всего– это научная литература, написанная экономистом Чикагского университета Стивеном Левиттом и New York Times Стивена Дж. Дабнера, которую можно описать как слияние поп-культуры и экономики в нетрадиционной предпосылке о том, что «если мораль представляет собой то, как мы хотели бы, чтобы мир работал, то экономика представляет, как он на самом деле работает". От сравнительного анализа обмана учителей и борцов сумо до роли легализации абортов в снижении уровня преступности — авторы демонстрируют силу использования озер данных в поиске скрытой стороны современного мира вокруг нас.

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

В рамках моего путешествия по использованию Kotlin для создания автоматизированного тестирования пользовательского интерфейса я составил список (бесплатных) интенсивных учебных материалов под руководством специалистов по данным/коллег/друзей в сообществе Kotlin, а также коллег. которые являются инженерами по автоматизации QA. Это было чрезвычайно интенсивно и утомительно, но это необходимый компонент для обеспечения прочного фундамента в моем исследовании. Поскольку большая часть науки о данных и машинного обучения выполняется и преподается на Python, я нашел время, чтобы заново изучить Python и работать с практическими проектами, анализируя наборы данных с помощью сценариев.

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

Я знаю, что помидоры придут, но выслушай меня.

Python как стек данных

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

Не поймите меня неправильно, у Python есть свои достоинства. Python действительнопредлагает функциональное программирование в качестве гибкого языка, что необходимо для пространственного мышления и возможности проведения анализа совокупных данных. Его пакеты, такие как pandas, scikit-learn и Tensorflow, сделали Python претендентом на написание приложений для машинного обучения.

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

Ограничения статистических и исследовательских моделей

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

Эти методы хорошо известны, хорошо практикуются и общеприняты, но мне интересно, подходят ли эти методы для сбора предвзятых наборов данных. Характер того, что вы используете, может варьироваться в зависимости от того, описывает ли ваш метод то, что есть, или предписывает (как лучше всего этого добиться). Вопрос о том, лучше ли учащийся, который «плохо разбирается в математике», успевает при индивидуальном внимании, не учитывает условия школ, в которых он учится, качество образования, которое он получает в настоящее время, кто, если среда, в которой они живут, дает возможность поощрять занятия математикой. Вопросы о младенческой смертности, как правило, не будут включать данные о дородовом уходе, полученном до/после, расе и другим данным, которые указывают на характер отношений между пациентом и врачом, которые могут повлиять на эти цифры. Возможно, это связано с тем, что у нас есть ограничения в том, как мы собираем и храним наши данные. Возможно, методы, которые у нас есть сейчас, — это лучшее, что у нас есть. Я не знаю. Мне кажется, что использование тех же самых идей, чтобы попытаться подогнать наши данные под определенные модели, по своей сути приведет к предвзятости, когда мы учитываем только те данные, которые, по нашему мнению, имеют значение.

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

Наука о данных — это фрикономика

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

Моя интуиция подсказывает мне, что мне нужно озеро данных. Я понятия не имею, что я должен собирать, поэтому я буду собирать данные без разбора и в большом количестве (настолько, насколько мне позволят собирать). Даже если я не считаю эти данные полезными, мне лучше всего найти способ объединить их все. Почему? Потому что наука о данных — это настоящая фрикономика.

Озера данных чертовски бесполезны и бессмысленны — пока они нас не шокируют. Walmart обнаружил, что люди покупают Poptarts в семь раз больше, чем ураганы. Redbox обнаружил, что люди, кажется, действительно ненавидят ЛЮБЫЕ изменения в опыте Redbox. Конечно, есть оговорки, чтобы убедиться, что мы не связываем корреляцию с причинно-следственной связью (как объясняет Фрикономика в снижении уровня преступности) и чтобы наши выводы не были ошибочными, но сбор данных без разбора может быть Шаг в правильном направлении.

Я планирую дать обновленную информацию, когда получу базовое образование в области вычислительного мышления и машинного обучения, и снова обновлю, когда TornadoFX-Suite будет готов для Tensorflow. В духе текучести знаний и усилий сообщества по машинному обучению этот проект является открытым исходным кодом, как и список материалов по науке о данных — любой может внести свой вклад, и я приветствую любые разговоры и диалоги на эти сложные темы. До скорого.