Найкращі способи агрегації та аналізу даних


13

Нещодавно почавши навчати себе машинного навчання та аналізу даних, я потрапляю в цегляну стіну щодо необхідності створення та запиту великих наборів даних. Я хотів би взяти дані, які я зібрав у своєму професійному та особистому житті, та проаналізувати їх, але я не впевнений у найкращому способі зробити наступне:

  1. Як я повинен зберігати ці дані? Excel? SQL? ??

  2. Який хороший спосіб для початківця почати намагатися аналізувати ці дані? Я професійний комп'ютерний програміст, тому складність полягає не в написанні програм, а більш-менш специфічна для області аналізу даних.

EDIT: Вибачте за мою невизначеність, коли ви вперше починаєте дізнаватися про щось, що важко знати, чого ви не знаєте, так? ;)

Сказавши це, моя мета - застосувати це до двох основних тем:

  1. Показники програмного забезпечення команди (подумайте про швидку швидкість, кількісну оцінку ризику, ймовірність успішно виконаної ітерації з урахуванням х кількості точок історії)

  2. Машинне навчання (колишні винятки з системи сталися в заданому наборі модулів, яка ймовірність того, що модуль викине виняток у поле, скільки це буде коштувати, що дані можуть сказати мені про ключові модулі для покращення, які отримають мені найкращий удар для мого долара, передбачте, яку частину системи користувач захоче використовувати далі, щоб почати завантажувати дані тощо).


Це здається мені дуже розпливчастим. Які дані і який аналіз? Також це має бути вікі спільноти, якщо воно є суб'єктивним.
Шейн

Відповіді:


19

Якщо у вас є великі набори даних - ті, які змушують завантажувати програму Excel або Блокнот повільно, то база даних - хороший спосіб. Postgres є відкритим кодом і дуже добре виготовлений, і його легко з'єднати з JMP, SPSS та іншими програмами. Ви можете зробити вибірку в цьому випадку. Вам не доведеться нормалізувати дані в базі даних. В іншому випадку CSV підтримує спільний доступ.

Розгляньте Apache Hive, якщо у вас 100М + рядків.

З точки зору аналізу, ось деякі вихідні точки:

Опишіть одну змінну:

  • Гістограма
  • Підсумкова статистика (середнє, діапазон, стандартне відхилення, хв, макс. Тощо)
  • Чи є люди, що вижили? (більше 1,5x міжквартильного діапазону)
  • Якого типу розподілу він не відповідає? (звичайний тощо)

Опишіть зв’язок між змінними:

  • Діаграма розкиду
  • Кореляція
  • Випускники? перевірити відстань Mahalanobis

  • Сюжет мозаїки категоричний

  • Таблиця на випадок надзвичайних ситуацій

Прогнозуйте реальну кількість (як ціну): регресія

  • OLS регресія або методи машинного навчання регресії

  • коли методика, яка використовується для прогнозування, зрозуміла людям, це називається моделюванням. Наприклад, нейронна мережа може робити прогнози, але, як правило, це не зрозуміло. За допомогою регресії можна знайти і ключові показники ефективності.

Прогнозуйте приналежність до класу або ймовірність приналежності до класу (як, наприклад, пройшов / не вдався): класифікація

  • логістична регресія або методи машинного навчання, такі як SVM

Поставте спостереження в "природні" групи: кластеризація

  • Як правило, можна знайти «подібні» спостереження шляхом обчислення відстані між ними.

Поставте атрибути в "природні" групи: факторинг

  • І інші матричні операції, такі як PCA, NMF

Кількісне визначення ризику = стандартне відхилення, або пропорція разів, коли "погані речі" трапляються х наскільки вони погані

Ймовірність успішно виконаної ітерації з урахуванням х кількості точок історії = Логістична регресія

Удачі!


Це було приголомшливо. Дуже дякую за цю відповідь. Ви дали мені чудовий стрибок з точки зору. Будь-які книги, які ти рекомендуєш, оскільки, здається, "потрапляєш" туди, де я перебуваю.
Джастін Бозоньє

ви дуже раді книги: для початку статистика простою англійською. Після цього багатофакторний аналіз даних по волоссю. Це хороші веб-ресурси: itl.nist.gov/div898/handbook , statsoft.com/textbook
Ніл

4

Якщо ви дивитесь на несправності системи, вас можуть зацікавити наступні статті, що використовують методи машинного навчання для діагностики несправностей на eBay. Це може дати вам зрозуміти, який тип даних збирати або як одна команда підійшла до певної проблеми в подібній галузі.

Якщо ви тільки починаєте роботу, щось на зразок RapidMiner або Orange може стати хорошою програмною системою, щоб почати грати з вашими даними досить швидко. Вони обидва можуть отримати доступ до даних у різних форматах (файл csv, база даних, серед інших).


3

Ваше запитання настільки широке, що відповідь така: це залежить. Однак, щоб дати ще корисну відповідь, я зазначу те, що, на мою думку, є загальним у дослідженні.

Зберігання даних дуже часто здійснюється в текстових файлах. Здійснюючи статистичний аналіз, ви здебільшого працюєте із колекцією векторів одного типу. Це можна розглядати як таблицю та записати у форматі csv. Причина тонких часто зберігається в простому тексті, тому що просто кожен інструмент може прочитати їх, і їх легко перетворити.

Щодо аналізу, то це дещо складніше бути конкретним. Якщо вона двовимірна, зробіть розсіювач. Якщо воно великомірне, зробіть PCA і подивіться, де існують перші основні компоненти, щоб виявити важливі змінні. Якщо у вас є дані про час, побудуйте їх. Це все настільки загально, що для того, щоб бути корисним, ви повинні дійсно краще вказувати, якими є ваші дані.


Петре, ти побив мене до удару! Я повністю погоджуюся зі збереженням даних у вигляді тексту, хоча залежно від розміру (сотні мільйонів одиниць) може знадобитися переміщення в базу даних, що зменшується на карті (наприклад, Pig, Cassandra або один із параметрів NoSQL).
DrewConway

Ой добре цікаво! Тож просто візьміть дані для кожної змінної і викладіть їх у форматі рядків-стовпців і перейдіть до нумерації нумерації? Чи є якісь інструменти, на які я повинен дивитись, або я просто щось програмую?
Джастін Бозоньє,

R - дуже великий (і безкоштовний) інструментарій / мова програмування / бібліотека для статистики. Моїй улюбленою більшістю речей є, однак, Python with SciPy / NumPy
Peter Smit

0

Єдине, у чому ROOT дуже хороший - це зберігати величезну кількість даних. ROOT - бібліотека С ++, що використовується у фізиці частинок; він також постачається з прив'язками Ruby та Python, тому ви можете використовувати пакети на цих мовах (наприклад, NumPy або Scipy) для аналізу даних, коли виявите, що ROOT пропонує мало можливостей поза межами коробки.

Формат файлів ROOT може зберігати дерева або кортежі, а записи можна читати послідовно, тому вам не потрібно зберігати всі дані в пам’яті одночасно. Це дозволяє проаналізувати петабайти даних, що ви не хотіли б спробувати з Excel або R.

Документацію ROOT I / O можна отримати тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.