Orange (программное обеспечение)
Orange — свободный инструмент для визуализации данных, машинного обучения и интеллектуального анализа данных. Предлагает визуальное программирование для проведения качественного исследовательского анализа данных и интерактивной их визуализации.
Общие сведения
| Orange | |
|---|---|
| Тип | машинное обучение, интеллектуальный анализ данных, визуализация данных, анализ данных |
| Разработчик | Люблянский университет |
| Написана на | Python, Cython, C++, C |
| Интерфейс | Qt |
| Операционные системы | кроссплатформенное приложение (Windows, macOS, Linux) |
| Первый выпуск | 10 октября 1996 |
| Последняя версия | |
| Репозиторий | github.com/biolab/orange3 |
| Лицензия | GPLv3 или новее[2][3] |
| Сайт | orange.biolab.si |
Описание
Orange — компонентный программный пакет для визуального программирования, ориентированный на задачи визуализации данных, машинного обучения, интеллектуального анализа и анализа данных.
Базовые элементы Orange называются виджетами. Они реализуют функции от простой визуализации, отбора подмножеств и предобработки данных до эмпирической оценки обучающих алгоритмов и построения предикативных моделей.
Визуальное программирование реализовано через интерфейс, позволяющий строить рабочие процессы путём соединения заранее определённых или пользовательских виджетов. Продвинутые пользователи могут использовать Orange как библиотеку Python для анализа данных и модификации виджетов[4].
Программное обеспечение
Orange — открытое программное обеспечение с исходным кодом, распространяемое по лицензии GPL, проект размещён на GitHub. До версии 3.0 основные компоненты были написаны на C++, с обёртками на Python. С переходом к версии 3.0 Orange стала использовать популярные научные библиотеки на Python, такие как NumPy, SciPy, scikit-learn, а графический интерфейс реализован на кроссплатформенном фреймворке Qt.
В стандартную установку входят алгоритмы машинного обучения, предобработки и визуализации данных, сгруппированные в 6 наборах виджетов («data», «transform», «visualize», «model», «evaluate», «unsupervised»). Дополнительные возможности доступны через расширения (текстовый анализ, анализ изображений, биоинформатика и др.).
Orange поддерживает macOS, Windows и Linux, также может быть установлен из репозитория Python Package Index (pip install Orange3).
Возможности
Orange предоставляет холстовый графический интерфейс, на котором пользователь размещает виджеты, формируя рабочий процесс анализа данных. Виджеты реализуют базовые функции, такие как загрузка данных, просмотр таблицы, выбор признаков, обучение предсказательных моделей, сравнение алгоритмов обучения, визуализация и др. Пользователь может интерактивно исследовать результаты визуализации или передавать выбранные данные в другие виджеты.
- Холст: графический интерфейс для анализа данных
- Виджеты:
- Data: ввод данных, фильтрация, выборка, импутация, работа с признаками и их отбором
- Visualize: базовые и многомерные визуализации (ящик с усами, гистограммы, диаграммы рассеяния, мозаичные диаграммы, sieve diagrams)
- Classify: обучаемые алгоритмы классификации
- Regression: обучаемые алгоритмы регрессии
- Evaluate: кросс-валидация, процедуры на выборках, оценка надёжности и подсчёт метрик методов предсказания
- Unsupervised: алгоритмы обучения без учителя (кластеризация — k-средних, иерархическая кластеризация, методы проекции: многомерное шкалирование, анализ главных компонент, корреспонденционный анализ)
Дополнения (Add-ons)
Пользователи Orange могут расширить функциональность, подключив дополнения:
- Associate: анализ частых наборов и поиск ассоциативных правил
- Bioinformatics: анализ экспрессии генов, обогащённость, доступ к базам данных (например, Gene Expression Omnibus) и библиотекам путей
- Data fusion: объединение различных наборов данных, совместная факторизация матриц, исследование скрытых факторов
- Educational: обучающие компоненты по машинному обучению (кластеризация k-means, полиномиальная регрессия, стохастический градиентный спуск и др.)
- Explain: компоненты для интерпретации моделей, включая анализ значений Шепли
- Geo: работа с геопространственными данными
- Image analytics: обработка изображений и работа с эмбеддингами ImageNet
- Network: анализ графов и сетей
- Text mining: компоненты для обработки естественного языка и интеллектуального анализа текстов
- Time series: анализ и моделирование временных рядов
- Single-cell: поддержка анализа экспрессии генов на уровне одной клетки (загрузка, фильтрация, устранение batch-эффектов, определение маркерных генов, оценка клеток и предсказание типа клетки)
- Spectroscopy: анализ и визуализация (гипер)спектральных данных[5]
- Survival analysis: анализ данных с выживаемостью — набор виджетов для основных методов (график Каплана — Майера, регрессия Кокса и др.)
- World Happiness: загрузка социально-экономических данных из различных баз (OECD, World Development Indicators), доступ к тысячам показателей по странам
- Fairness: оценка и построение честных моделей машинного обучения без дискриминации (метрики честности, методы пост-, пре- и промежуточной обработки)[6]
Назначение
Orange обеспечивает платформу для экспериментального выбора моделей, рекомендательные системы и предиктивное моделирование. Применяется в биомедицине, биоинформатике, геномных исследованиях и образовании. В науке используется для тестирования новых алгоритмов машинного обучения и внедрения новых методов в генетике и биоинформатике; в образовательных целях — для преподавания методов анализа данных студентам биологии, биомедицины и информатики.
Расширения
Существуют проекты, которые используют либо расширяют Orange, добавляя собственные модули или используя визуальный интерфейс Canvas для реализации прикладных задач.
- OASYS (ORange SYnchrotron Suite)[7]
- scOrange — инструментарий для биостатистики одиночных клеток
- Quasar — анализ данных в естественных науках
История
В 1996 году Люблянский университет и Институт Йожефа Штефана начали разработку ML* — фреймворка машинного обучения на C++, а в 1997 году были разработаны Python-обёртки. Эта интеграция и модульная архитектура послужили фундаментом для Orange. В последующие годы большинство популярных алгоритмов машинного обучения и анализа данных были реализованы на C++ (ядро Orange) или в Python-модулях.
- 2002 — прототипы гибкого графического интерфейса на Pmw Python megawidgets.
- 2003 — переработка интерфейса с использованием Qt и Python-биндингов PyQt, развитие концепции виджетов.
- 2005 — расширения для анализа данных в биоинформатике.
- 2008 — разработка Mac OS X DMG и Fink-пакетов.
- 2009 — создано и поддерживалось более 100 виджетов.
- 2009 — выход Orange 2.0 beta, дистрибутивы собирались ежедневно.
- 2012 — переход к новой объектной иерархии, отказ от модульной структуры.
- 2013 — крупное обновление интерфейса: новый набор инструментов и представление рабочей схемы.
- 2015 — выход Orange 3.0: хранение данных — в массивах NumPy; алгоритмы машинного обучения — в основном из scikit-learn.
- 2015 — появление расширения Text Mining для Orange 3.
- 2016 — выпуск версии 3.3, установлен месячный цикл стабильных релизов.
- 2016 — разработка и выпуск дополнения Image Analytics, серверные нейросети для извлечения признаков изображений[8]
- 2017 — дополнение для спектроскопии спектральных данных[9]
- 2017 — появление Geo — дополнения для геоданных и отображения карты[10]
- 2018 — начало выпуска расширения для анализа одиночных клеток[11]
- 2019 — выделение графического интерфейса как отдельного проекта orange-canvas-core[12]
- 2020 — появление расширения Explain для интерпретации моделей классификации и регрессии, выявления влияния отдельных признаков.
- 2022 — расширение World Happiness для работы с социально-экономическими данными (World Happiness Report, World Development Indicators, OECD).
- 2022 — добавление в Explain функций Individual Conditional Expectation и Permutation Feature Importance.
- 2023 — расширение Fairness для расчёта метрик смещения и реализации методов пред- и пост-обработки для борьбы с дискриминацией в моделях.
Примечания
- ↑ Release 3.39.0 — 2025.
- ↑ Orange — Лицензия. orange.biolab.si. Дата обращения: 17 июня 2024. Архивировано 23 сентября 2011 года.
- ↑ orange3/LICENSE на GitHub. GitHub. Дата обращения: 17 июня 2024. Архивировано 8 октября 2025 года.
- ↑ Janez Demšar; Tomaž Curk; Aleš Erjavec; Črt Gorup; Tomaž Hočevar; Mitar Milutinovič; Martin Možina; Matija Polajnar; Marko Toplak; Anže Starič; Miha Stajdohar; Lan Umek; Lan Žagar; Jure Žbontar; Marinka Žitnik; Blaž Zupan (2013). “Orange: data mining toolbox in Python” (PDF). Journal of Machine Learning Research [англ.]. 14 (1): 2349—2353. Дата обращения 2024-06-17.
- ↑ Toplak, M.; Birarda, G.; Read, S.; Sandt, C.; Rosendahl, S. M.; Vaccari, L.; Demšar, J.; Borondics, F. (2017). “Infrared Orange: Connecting Hyperspectral Data with Machine Learning”. Synchrotron Radiation News [англ.]. 30 (4): 40—45. DOI:10.1080/08940886.2017.1338424.
- ↑ Iomids. Checking AI for discrimination via GUI using the Orange Fairness Add-On (англ.). IOMIDS (30 мая 2024). Дата обращения: 17 июня 2024. Архивировано 5 июня 2024 года.
- ↑ Sanchez Del Rio, Manuel. OASYS (Or Ange Synchrotron Suite): An open-source graphical environment for x-ray virtual experiments // Advances in Computational Methods for X-Ray Optics IV : [англ.] / Manuel Sanchez Del Rio, Luca Rebuffi. — 2017. — P. 28. — ISBN 9781510612334. — doi:10.1117/12.2274263.
- ↑ Primož Godec; Matjaž Pančur; Nejc Ilenič; Andrej Čopар; Martin Stražar; Aleš Erjavec; Ajda Pretnar; Janez Demšar; Marko Toplak; Anže Starič; Lan Žagar; Jan Hartman; Hamilton Wang; Riccardo Bellazzi; Uroš Petrovič; Silvia Garagna; Maurizio Zuccotti; Dongsu Park; Gad Shaulsky; Blaž Zupan (2019). “Democratized image analytics by visual programming through integration of deep models and small-scale machine learning”. Nature Communications [англ.]. 10 (1): 4551. Bibcode:2019NatCo..10.4551G. DOI:10.1038/s41467-019-12397-x. PMC 6779910. PMID 31591416. S2CID 203782491.
- ↑ Marko Toplak; Stuart T. Read; Christophe Sandt; Ferenc Borondics (2021). “Quasar: Easy Machine Learning for Biospectroscopy”. Cells [англ.]. 10 (9): 2300. DOI:10.3390/cells10092300. PMC 8466383. PMID 34571947.
- ↑ Orange3-Geo Documentation (англ.). Дата обращения: 17 июня 2024. Архивировано 26 мая 2023 года.
- ↑ Martin Stražar; Lan Žagar; Jaka Kokošar; Vesna Tanko; Aleš Erjavec; Pavlin G. Poličar; Anže Starič; Janez Demšar; Gad Shaulsky; Vilas Menon; Andrew Lemire; Anup Parikh; Blaž Zupan (2021). “scOrange—a tool for hands-on training of concepts from single-cell data analytics”. Bioinformatics [англ.]. 35 (14): i4—i12. DOI:10.1093/bioinformatics/btz348. PMC 6612816. PMID 31510695.
- ↑ Orange Canvas Core (англ.). GitHub. Дата обращения: 17 июня 2024. Архивировано 25 января 2021 года.
Литература
- Демшар, Янез; Жупан, Блаж. «Добыча данных — результативно и весело: историческая перспектива», Informatica 37, с. 55-60 (2013).
- Mario Capurso. Data Acquisition, Cleaning, Analysis and Visualization with applications in the Orange Python-based environment, in Data Science and Engineering — A learning path Vol. 1 ISBN 979-8875798641.
- Mario Capurso. Exploratory Data Analysis, Metrics, Models with applications in the Orange Python-based environment, in Data Science and Engineering — A learning path Vol. 2 ISBN 979-8874396145.
Ссылки
- https://orange.biolab.si — официальный сайт
- https://www.aps.anl.gov/Science/Scientific-Software/OASYS — OASYS
- https://singlecell.biolab.si/ — scOrange
- https://quasar.codes/ — Quasar