Совсем недавно начав учить себя машинному обучению и анализу данных, я сталкиваюсь с необходимостью создавать и запрашивать большие наборы данных. Я хотел бы взять данные, которые я собирал в своей профессиональной и личной жизни, и проанализировать их, но я не уверен, как лучше сделать следующее:
Как я должен хранить эти данные? Excel? SQL? ??
Какой хороший способ начать анализировать эти данные для новичка? Я профессиональный программист, поэтому сложность заключается не в написании программ, а в более или менее специфической области анализа данных.
РЕДАКТИРОВАТЬ: Извинения за мою расплывчатость, когда вы впервые начинаете узнавать о чем-то трудно понять, что вы не знаете, понимаете? ;)
Сказав это, моя цель состоит в том, чтобы применить это к двум основным темам:
Метрики команды разработчиков программного обеспечения (скорость Agile, количественная оценка риска, вероятность успешного завершения итерации с учетом количества баллов)
Машинное обучение (например, системные исключения произошли в данном наборе модулей). Какова вероятность того, что модуль сгенерирует исключение в поле, сколько это будет стоить, что данные могут сказать мне о ключевых модулях, которые можно улучшить, которые получат мне лучший результат, предугадать, какую часть системы пользователь захочет использовать дальше, чтобы начать загрузку данных и т. д.).
источник
Ответы:
Если у вас есть большие наборы данных - те, которые загружают Excel или Notepad медленно, то база данных - это хороший способ. Postgres имеет открытый исходный код и очень хорошо сделан, и его легко подключить с помощью JMP, SPSS и других программ. Вы можете попробовать в этом случае. Вам не нужно нормализовать данные в базе данных. В противном случае, CSV подходит для совместного использования.
Рассмотрим Apache Hive, если у вас более 100 миллионов строк.
С точки зрения анализа, вот некоторые отправные точки:
Опишите одну переменную:
Опишите связь между переменными:
Выпадающие? проверить расстояние Mahalanobis
Мозаичный сюжет для категоричного
Предсказать реальное число (например, цену): регрессия
Методы регрессии OLS или машинного обучения
когда техника, используемая для прогнозирования, понятна людям, это называется моделированием. Например, нейронная сеть может делать прогнозы, но, как правило, не понятна. Вы также можете использовать регрессию, чтобы найти ключевые показатели эффективности.
Предсказать членство в классе или вероятность членства в классе (например, пройдено / не выполнено): классификация
Поместите наблюдения в «естественные» группы: кластеризация
Поместите атрибуты в «естественные» группы: факторинг
Количественная оценка риска = стандартное отклонение или доля случаев, когда происходят «плохие вещи», х насколько они плохие
Вероятность успешного завершения итерации с учетом x количества баллов за историю = логистическая регрессия
Удачи!
источник
Если вы смотрите на системные ошибки, вас может заинтересовать следующая статья, в которой используются методы машинного обучения для диагностики ошибок на eBay. Это может дать вам представление о том, какие данные собирать или как одна команда подошла к конкретной проблеме в аналогичной области.
Если вы только начинаете, что-то вроде RapidMiner или Orange может быть хорошей программной системой, чтобы начать играть с вашими данными довольно быстро. Оба они могут получить доступ к данным в различных форматах (файл CSV, база данных и др.).
источник
Ваш вопрос настолько широк, что ответ: это зависит. Тем не менее, чтобы дать более полезный ответ, я укажу то, что, на мой взгляд, часто встречается в исследованиях.
Хранение данных очень часто делается в текстовых файлах. При проведении статистического анализа вы в основном работаете с коллекцией векторов одного типа. Это можно увидеть в виде таблицы и записать в формате CSV. Причина, по которой эти значения часто хранятся в виде простого текста, заключается в том, что их может прочитать каждый инструмент, и их легко преобразовать.
Про анализ, это немного сложнее, чтобы быть конкретным. Если он двухмерный, сделайте диаграмму рассеяния. Если он многомерный, проведите PCA и посмотрите, где существуют первые основные компоненты для обнаружения важных переменных. Если у вас есть данные о времени, подготовьте их. Все это настолько общее, что для того, чтобы быть полезным, вы должны действительно лучше указать, какие у вас данные.
источник
Одна вещь ROOT действительно хорошо хранит Огромная объемы данных. ROOT - это библиотека C ++, используемая в физике элементарных частиц; он также поставляется с привязками Ruby и Python, поэтому вы можете использовать пакеты на этих языках (например, NumPy или Scipy) для анализа данных, когда вы обнаружите, что ROOT предлагает мало возможностей из коробки.
Формат файла ROOT может хранить деревья или кортежи, а записи можно читать последовательно, поэтому вам не нужно хранить все данные в памяти одновременно. Это позволяет анализировать петабайты данных, что вы бы не хотели использовать в Excel или R.
С документацией ROOT I / O можно ознакомиться здесь .
источник