Я використовую SAS професійно вже близько 5 років. У мене він встановлений на моєму ноутбуці і часто доводиться аналізувати набори даних за допомогою 1000-2000 змінних і сотень тисяч спостережень.
Я шукав альтернативи SAS, які дозволяють мені проводити аналізи на схожих наборах даних. Мені цікаво, що інші люди використовують у таких ситуаціях. Це, звичайно, не є "великими даними" у способі, який використовується сьогодні. Також мої набори даних недостатньо малі, щоб зберігати в пам'яті. Мені потрібно рішення, яке може застосовувати алгоритми до даних, що зберігаються на жорсткому диску. Це те, що я досліджував безрезультатно:
- R - BigMemory може створювати матриці, що зберігаються з пам'яті, але елементи повинні бути в одному режимі. Я працюю з даними, які майже на 50/50 розбиваються між символами та числовими. Пакет FF наближається до того, що мені потрібно, але я не зовсім розумію, які процедури сумісні з ним. Я думаю, що підтримка дещо обмежена.
- Панди - Я був дуже схвильований пітонічною альтернативою Р. Однак він теж повинен зберігати всі дані в пам'яті.
- Revolution R - цей показник демонструє досить багато обіцянок. У мене є копія на домашньому комп’ютері (безкоштовно, якщо ви підписуєтесь на Kaggle) і ще не перевірив її як життєздатну альтернативу SAS. Коментарі щодо Revolution R як альтернативи SAS високо оцінені.
Спасибі
ОНОВЛЕННЯ 1
Редагуючи, щоб додати, що я шукаю реальні практичні рішення, які люди успішно використовували. Здебільшого SAS дозволяє мені переглядати великі файли, не хвилюючись про обмеження пам'яті. Однак SAS впроваджений, вони придумали, як зробити управління пам'яттю прозорим для користувача. Але, саме з важким серцем я використовував SAS для своєї роботи (я повинен) і хотів би ЛЮБИТИ альтернативу FOSS, яка дозволяє мені працювати над "великими" даними, не задумуючись надто сильно про те, де дані знаходяться в конкретний час (в пам'яті або на диску).
Найближчі речі, на які я натрапив, - це пакет FF R та щось на горизонті для Python під назвою Blaze . І все-таки ці проблеми існують вже багато років, тож чим займалися аналітики в цей час? Як вони вирішують ці самі проблеми з обмеженнями пам’яті? Більшість пропонованих рішень:
- Отримайте більше оперативної пам’яті - це не гарне рішення, imo. Неважко знайти набір даних, який може перевищувати оперативну пам’ять, але все ще підходить на жорсткому диску. Крім того, робочий потік повинен містити всі структури, які створюються під час дослідницького аналізу даних.
- Підмножина даних - Це чудово для дослідження, але не для завершення результатів та звітності. Зрештою, будь-які процеси, розроблені на підмножині, доведеться застосувати до всього набору даних (у моєму випадку все одно).
- Шматок даних - Це те, про що я хотів би дізнатися більше від людей, які реально реалізують цей робочий процес. Як це робиться? За допомогою яких інструментів? Чи можна це зробити прозорим для користувача способом? (тобто створіть деяку структуру даних на диску, і робота з кадрами піклується про розміщення під кришкою).