Исходный код вики Анализ и визуализация данных в Corpwiki (XWiki) с применением языка R
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:CorpwikiR.png||height="450" width="800"]] | ||
3 | |||
4 | == Что такое язык программирования R == | ||
5 | |||
6 | **R - язык программирования, созданный специально для статистического анализа данных**. Его разработали на факультете статистики Оклендского университета. | ||
7 | |||
8 | **Особенности языка R**: | ||
9 | |||
10 | * **Интерпретируемый**. Программа на языке R сразу готова к исполнению — её не нужно собирать в исполняемый файл с помощью компилятора. | ||
11 | * **Простой по синтаксису**. R в своей основе не содержит сложных конструкций и запутанных функций. Даже типов данных у него всего четыре: символьные, числовые, логические и комплексные. | ||
12 | * **Рабочая среда**. В R встроены готовые методы статистического анализа и инструменты для визуализации. | ||
13 | |||
14 | **Сфера применения языка R**: математики, биологи, генетики и другие учёные, которым нужно проводить статистические исследования и строить модели. Также R востребован среди аналитиков данных и специалистов по Data Science. | ||
15 | |||
16 | **Распространение**: язык и среда доступны под лицензией GNU GPL. Распространяются в виде исходных кодов, а также откомпилированных приложений под ряд операционных систем. | ||
17 | |||
18 | == Какая польза от использования языка R в бизнесе == | ||
19 | |||
20 | С точки зрения бизнеса разработку приложений для анализа данных на языке R можно считать почти идеальным решением: | ||
21 | |||
22 | 1. Отсутствуют какие-либо финансовые барьеры для начала использования: | ||
23 | 1*. Не надо никаких первоначальный вложений в лицензии. | ||
24 | 1*. Нет никаких лицензионных ограничений и проблем потенциального расширения. | ||
25 | 1*. Нет никаких ежегодных платежей за поддержку лицензий. | ||
26 | 1*. Все прекрасно работает на linux, нет необходимости в приобретении дополнительных ОС. | ||
27 | 1. Если ваши внешние системы выдают необходимую информацию, то этого уже достаточно для начала проекта. **Сопутствующие проекты по доработке не требуются**, все можно будет сделать на уровне аналитики. | ||
28 | 1. Уже есть доказанная практика применения R в бизнесе практически во всех вертикалях. | ||
29 | 1. Не надо планировать глобальный проект, достаточно начать с частных проблемных мест. | ||
30 | 1*. Проекты получаются компактными и быстрыми, результаты легко переводятся в деньги (заработанные или сэкономленные). | ||
31 | 1*. Полученные результаты позволяют взглянуть на существующие задачи под иным углом зрения, обнаружить реальные проблемы и расставить акценты в более правильном виде. | ||
32 | |||
33 | (% class="box successmessage" %) | ||
34 | ((( | ||
35 | {{icon name="info-circle" size="2x"}}{{/icon}} **Если ваши корпоративные приложения умеют "отдавать" данные в любом виде, этого уже достаточно для их обработки в R** | ||
36 | Доработка ваших систем не потребуется! | ||
37 | |||
38 | Вся обработка данных может быть выполнена на стороне приложения R. | ||
39 | |||
40 | Ввиду того что, данный язык изначально создан для работы с данными, приложения на нем получаются быстро, они компактные и понятные. | ||
41 | ))) | ||
42 | |||
43 | == Что умеют приложения на R == | ||
44 | |||
45 | * Импорт данных из различных источников.** txt\csv**, **xls **(Excel), web scrapping, RDBMS. | ||
46 | * Обработка данных: фильтрация, группировка, агрегирование, добавление и вычисление. | ||
47 | * Временной анализ (как правило, 80% данных сопровождаются временными метками). | ||
48 | * Расширенная обработка (элементы высшей математики, включая элементы машинного обучения): Наиболее популярен поиск аномалий, различные классификаторы, рекомендации и прогнозирование и Process mining. | ||
49 | * Визуализация данных различными способами. | ||
50 | * Интеграция с внешними информационными системами для экспорта рассчитанных данных. | ||
51 | * Экспорт в форматы, удобные для восприятия человеком, такие как: **pdf**, **html**, **xls**, **doc**, **ppt**. | ||
52 | * Web-base рабочее место для аналитика\рядового пользователя. | ||
53 | |||
54 | Приведенный функционал доступен в рамках экосистемы R без особой необходимости инсталляции каких-либо дополнительных сторонних компонент. | ||
55 | |||
56 | (% class="box infomessage" %) | ||
57 | ((( | ||
58 | {{icon name="info-circle" size="2x"}}{{/icon}} **Фактически, ваша база знаний может использоваться как BI система** | ||
59 | Но в отличии от дорогих и сложных в внедрении систем подобного класса, вы сможете получить результаты быстро. | ||
60 | Рецепт успеха прост: | ||
61 | |||
62 | * Создать страницу в вашей базе знаний. | ||
63 | * Разместить на ней код вызова приложения R. | ||
64 | * Создать приложение R например в RStudio. | ||
65 | * Разместить его в сервисе генерации. | ||
66 | ))) | ||
67 | |||
68 | == Как работает интеграция между Corpwiki (XWiki) и приложениями на языке R == | ||
69 | |||
70 | Мы в Corpwiki разработали подход позволяющий использовать всю мощь приложений написанных на языке R в XWiki. | ||
71 | |||
72 | Это позволяет не только обогатить содержание баз знаний (корпоративных вики) визуально привлекательной инфографикой но и реализовать много интересных с точки зрения бизнеса решений. | ||
73 | |||
74 | Схематично процесс взаимодействия выглядит следующим образом: | ||
75 | |||
76 | [[image:Внешние данные.png||height="848" width="1200"]] | ||
77 | |||
78 | На страницу XWiki встраивается небольшой кусочек кода. | ||
79 | |||
80 | При обращении пользователя к такой странице, она запрашивает данные у сервиса обработки. | ||
81 | |||
82 | Данный сервис устанавливается "рядом" с XWiki и если например, ваша база знаний расположена на ваших серверах, то вы сможете также разместить данный сервис у себя. | ||
83 | |||
84 | Безопасность корпоративных данных гарантирована. | ||
85 | |||
86 | Сервис обращается уже к XWiki откуда "забирает" данные для формирования отчетов или графики. | ||
87 | |||
88 | Такие данные могут забираться "в сыром" виде. | ||
89 | |||
90 | Вся обработка данных (фильтрация, группировка, вычисления, обогащение) происходят на стороне сервиса. | ||
91 | |||
92 | После того как данные готовы для отображения, система возвращает их в XWiki и пользователь видит готовый результат. | ||
93 | |||
94 | Для пользователя все выглядит так как будто он просто открыл страницу. | ||
95 | |||
96 | (% class="box successmessage" %) | ||
97 | ((( | ||
98 | {{icon name="info-circle" size="2x"}}{{/icon}} **Созданная инфографика является интерактивной** | ||
99 | |||
100 | Другими словами есть возможность добавлять элементы управления на такие страницы и пользователи в режиме реального времени могут изменять настройки отображения. | ||
101 | |||
102 | Кроме того есть возможность дополнительной обработки введенных данных. | ||
103 | |||
104 | Таким образом можно не только показывать данные "как есть" но и реализовать модели вида "как будет". | ||
105 | |||
106 | Например отобразить график зависимости чистой прибыли от численности персонала основываясь на средней выработке и медианном значении заработной платы сотрудников. | ||
107 | ))) | ||
108 | |||
109 | === Внешние данные === | ||
110 | |||
111 | Как можно увидеть на схеме, данные могут быть получены не только из объектов данных XWiki но и из любых внешних источников данных. | ||
112 | |||
113 | Это могут быть корпоративные приложения, базы данных, файлы Excel и тому подобное. | ||
114 | |||
115 | Данные из разных систем можно объединять и использовать для формирования отчетности и инфографики. | ||
116 | |||
117 | Таким образом вы сможете превратить вашу базу знаний в витрину данных или BI систему. | ||
118 | |||
119 | Посмотрите в разделе примеров какие возможности дает для отображения данных данный подход. | ||
120 | |||
121 | == Примеры результатов работы приложений на языке R == | ||
122 | |||
123 | Ниже мы разместили галерею скриншотов приложений и графиков созданных с применением языка R. | ||
124 | |||
125 | Любое из представленных решений, и любой график могут быть реализованы в вашей вики системе Corpwiki (XWiki). | ||
126 | |||
127 | |||
128 | {{velocity}} | ||
129 | #* Ваш velocity-код здесь *# | ||
130 | ## | ||
131 | ##=== Живой пример === | ||
132 | ## | ||
133 | ##(% class="box successmessage" %) | ||
134 | ##((( | ||
135 | ##{{icon name="info-circle" size="2x"}}{{/icon}} Попробуйте воспользоваться настройками в правой части диаграммы. | ||
136 | ##Обратите внимание на то как меняется диаграмма при изменении настроек. | ||
137 | ##Попробуйте фильтр "по годам" или то как можно скрыть\отобразить панель настроек (треугольник выше заголовка "Настройки") | ||
138 | ##))) | ||
139 | ## | ||
140 | ##{{html}} | ||
141 | ##<iframe src="https://shiny.corpwiki.ru/apps/7d68a672-bac2-4ca7-8be7-169760ce103b/" style="border:0px #ffffff none;" name="testXWR" scrolling="no" ##frameborder="1" marginheight="10px" marginwidth="0px" width="100%" height="700px" allowfullscreen></iframe> | ||
142 | ##{{/html}} | ||
143 | ## | ||
144 | {{/velocity}} | ||
145 | |||
146 | === Скриншоты возможных решений === | ||
147 | |||
148 | {{gallery height="600px" width="100%"}} | ||
149 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR1.png | ||
150 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR2.png | ||
151 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR3.png | ||
152 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR4.png | ||
153 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR5.png | ||
154 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR6.png | ||
155 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR7.png | ||
156 | image:Stati.Integratsii.Integratsiia-Corpwiki-XWiki-i-prilozhenii-na-iazyke-R.WebHome@XWikiR8.png | ||
157 | {{/gallery}} | ||
158 | |||
159 | |||
160 | **Применение подобного подхода позволяет реализовать и более сложные интерфейсы и сценарии.** | ||
161 | |||
162 | **Об этом наша другая статья: [[Альтернативные интерфейсы для Corpwiki (XWiki)>>doc:Stati.Interfeis.Alternativnye-interfeisy-dlia-Corpwiki-XWiki.WebHome]]** | ||
163 | |||
164 | ---- | ||
165 | |||
166 | {{cl-plate-help/}} | ||
167 | |||
168 |