Порівняння багатопроцесорної та багатопоточної реалізацій ентропійного підходу для імпутування пропусків у даних на мові програмування Python
Ключові слова:
багатопроцесорність, багатопоточність, оптимізація обчислень, відновлення данихАнотація
Розглядається порівняння послідовної, багатопроцесорної та багатопоточної реалізацій ентропійного підходу для імпутування пропусків у даних на мові програмування Python. Основна мета роботи полягає у дослідженні підходів щодо оптимізації обчислень при реалізації ентропійного підходу для імпутування пропусків у даних. Автори пояснюють обмеження інтерпретатора Python щодо багатопоточності через наявність Global Interpreter Lock (GIL), що унеможливлює повноцінну паралельну обробку даних в багатопотоковому середовищі. Натомість пропонується використання багатопроцесорної обробки, де кожен процес має власний інтерпретатор Python і GIL, що дозволяє ефективно розподіляти обчислювальні задачі на кілька ядер процесора. Для експериментальної частини роботи ви-користовується набір даних UCI Heart Disease Data, розміщений на платформі Kaggle. Здійснюється штучне введення пропусків, далі імпутація за допомогою різних реалізацій на базі ентропійного підходу, оцінка точності імпутації та часу виконання алгоритмів. Автори розглядають три підходи: послідовний, багатопоточний та багатопроцесорний, та порівнюють їх ефективність. Результати дослідження показують, що багатопотоковий підхід не дає переваги у швидкодії в порівнянні з послідовним підходом, а інколи навіть погіршує продуктивність через витрати часу на перемикання між потоками. Навпаки, багатопроцесорний підхід демонструє зменшення часу обчислень, що підтверджує його ефективність для задач імпутування пропусків у даних. У висновках автори зазначають, що оптимізація обчислень на Python потребує врахування особливостей GIL та рекомендують використовувати багатопроцесорні обчислення для досягнення кращої продуктивності. Надаються рекомендації щодо подальшої оптимізації, включаючи використання векторних обчислень та уникнення надлишкових операцій вводу-виводу. Ця робота має практичне значення для дослідників у галузі науки про дані, які працюють з Python і стикаються з проблемами паралельної обробки даних.
Завантажити
Посилання
Delavallade, T., & Dang, T. H. (2007, July). Using entropy to impute missing data in a classification task. In 2007 IEEE Inter-national Fuzzy Systems Conference (pp. 1-6). IEEE. https://doi.org/10.1109/FUZZY.2007.4295430
Initialization, Finalization, and Threads — Python 2.7.18 documentation. (б. д.). 3.12.3 Documentation. https://docs.python.org/2/c-api/init.html#threads
UCI Heart Disease Data. (б. д.). Kaggle: Your Machine Learning and Data Science Community. https://www.kaggle.com/datasets/redwankarimsony/heart-disease-data
Zemlianyi, O., & Baibuz, O. (2024). Methods for imputing miss-ing data on coronary heart disease. System technologies, 2(151), 33-49. https://doi.org/10.34185/1562-9945-2-151-2024-04
Завантаження
Опубліковано
Номер
Розділ
Ліцензія
Авторське право (c) 2024 Олексій Земляний, Олег Байбуз (Автор)

Ця робота ліцензується відповідно до ліцензії Creative Commons Attribution 4.0 International License.
Всі статті, опубліковані в журналі Challenges and Issues of Modern Science, ліцензовані за ліцензією Creative Commons Attribution 4.0 International (CC BY). Це означає, що ви можете:
- Поширювати, копіювати та передавати статтю
- Адаптувати, реміксувати та створювати похідні роботи на основі статті
за умови, що ви надаєте належне посилання на оригінальну роботу, вказуєте ім'я авторів, назву статті, журнал та наявність ліцензії CC BY. Будь-яке використання матеріалів не повинно припускати схвалення авторами або журналом використаного матеріалу.