Nadeszła MicRosoftowa eRa!

W ostatnim czasie temat związany z językiem R stał się niezwykle pożądany, interesujący, a wręcz modny. Nieznajomość tematu wśród specjalistów od danych stanowi istne faux pas 😉 Również pojawiające się oferty pracy dedykowane specjalistom Data Science zawierają na liście must have znajomość R. Język R jest niezwykle rozpowszechnionym językiem programowania wykorzystywanym w dużej mierze przez statystyków, ekonometryków i matematyków. Bardzo chętnie sięgają po niego pracownicy uczelni wyższych i jednostek badawczych. Dzięki temu R ciągle się rozwija za pośrednictwem tzw. pakietów (ang. packages), czyli bibliotek rozszerzających działanie języka R, których obecnie jest około 10 tysięcy. Biblioteki R dostępne są na tzw. CRAN-ie (CRAN, ang. Comprehensive R Archive Network). Publikowanie bibliotek na CRAN jest moderowane zgodnie z określoną polityką.

Pierwszy raz zetknąłem się z językiem R kilka lat temu na Uniwersytecie Ekonomicznym w Katowicach, gdzie miałem okazję studiować Informatykę i ekonometrię. Mogę śmiało przyznać, że Katedra Statystyki sporo uwagi poświęca temu językowi na zajęciach. Można skorzystać ze strony stat.ue.katowice.pl, by przyjrzeć się zastosowaniu R w różnych przypadkach na zajęciach.

Świat R to świat open source, aczkolwiek istnieją firmy, których celem biznesowym jest sprzedaż rozwiązań opartych na języku R wzbogaconym o pewne właściwości i świadczenie usług klientom z wykorzystaniem R. Do najbardziej znanych można zaliczyć firmę Revolution Analytics, która oferowała np. funkcjonalność zrównolegnienia wykonywania obliczeń na wielu wątkach wielu procesorów. Stanowiło to znaczącą przewagę nad open sourcowym R, który potrafił wykonywać operacje tylko na jednym wątku jednego rdzenia procesora. Potencjał R i firmy Revolution Analytics został zauważony przez Microsoft. Zaowocowało wykupieniem firmy Revolution Analytics w całości 4 kwietnia 2015 r. przez Microsoft. Sukces R wydaje się być przesądzony, na co wpływa: znajomość R w wielu środowiskach (w tym akademickich i badawczych), olbrzymia liczba dostępnych pakietów, dostępność R i zauważenie potencjału przez biznes i coraz większe możliwości integracji w świecie IT. Historyczne nazwy produktów Revolution Analytics oraz nowe nazwy Microsoft zostały zaprezentowane w tabeli:

Dnia 1 czerwca 2016 została wydana oficjalna wersja SQL Server 2016, która zawiera niesamowite nowości w obszarze integracji z R. Warto przy tej okazji wymienić produkty Microsoftu, które obecnie integrują się z R:

  • Microsoft Power BI:
    • wykresy, czyli elementy wizualne skryptu R
    • dane w postaci skryptu języka R
  • Microsoft Azure
    • Azure Machine Learning Studio – dane w postaci skryptu języka R
    • R jako Azure Web Service (Azure ML package)
  • Microsoft Excel
    • połączenie z Azure Machine Learning
  • Microsoft SQL Server 2016
    • R Services

Narzędzie klienckie pozwalające na prace z językiem przygotowane przez Microsoft to dodatek R Tools for Visual Studio (RTVS). Inne narzędzia klienckie open source to np. RStudio (dostarczane wraz z dystrybucją Microsoft R Open) lub dostępne ze standardowym R narzędzie RGui.

W głowie jednak może pojawić się bardzo wiele pytań, dlatego że liczba dostępnych narzędzi jest spora a i możliwości integracyjne pomiędzy różnymi platformami/narzędziami mogą początkowo być nieco skomplikowane. Warto zatem na początku uporządkować sobie w głowie, że istnieją dwie 100% open source dystrybucje języka R: R oraz Microsoft R Open, czyli rozszerzona dystrybucja języka R firmy Microsoft. MRO jest w pełni kompatybilne z R, jednak zawiera usprawnienia wydajnościowe w porównaniu do standardowej dystrybucji R dzięki wykorzystaniu wysoko wydajnościowych wielowątkowych bibliotek matematycznych Intel® Math Kernel Library (Intel® MKL) i bazuje na MRAN a nie na CRAN. Jaka jest różnica pomiędzy CRAN a MRAN?

Skrót CRAN MRAN
Nazwa Comprehensive R Archive Network Microsoft R Application Network
Adres https://cran.r-project.org/ https://mran.microsoft.com
Podstawowy cel Repozytorium pakietów R, udostępnianie bibliotek użytkownikom, przeszukiwanie pakietów, dokumentacja
Wersjonowanie bibliotek Brak Migawki od 17 października 2014 r., możliwość odnalezienia biblioteki w konkretnej wersji dzięki wykorzystaniu CRAN Time Machine

Ponadto do dyspozycji mamy także dwa rozwiązania: Microsoft R Client i Microsoft R Server. Rodzina produktów Microsoft R zawiera zatem (uszeregowano od najmocniejszego do najsłabszego):


MRC i MRS wymaga zainstalowanego MRO w używanym środowisku. Mimo zalet wydajnościowych Microsoft R Open ma też wady. Po pierwsze: nadal działa zbyt wolno, a po drugie: wielkość analizowanych danych nie może przekroczyć wielkości pamięci operacyjnej lokalnego komputera. Panaceum na te mankamenty może okazać się Microsoft R Server, który po pierwsze: potrafi wielokrotnie skrócić czas przetwarzania danych i uczenia modeli predykcyjnych, a po drugie: pozwala na wykonanie dowolnych operacji na tzw. blokach danych (ang. eXternal Data Frame), które można zapisać na dysku. Rozwiązanie pośrednie nazwane Microsoft R Client to darmowa, ale nieotwarta dystrybucja R. Warto dodać, że Microsoft R Server jest dostępny dla kilku platform, w tym: Hadoop, Teradata DB, Linux, Windows, SQL Server R Services. Istnieje także dystrybucja R Server dla usługi HDInsight w Azure.

Źródła:

Całe zainteresowanie tematem zawdzięczam Marcinowi Szelidze, któremu serdecznie dziękuję za wsparcie merytoryczne i podzielenie się wiedzą. Zachęcam do przejrzenia przygotowanych przez niego materiałów:

W zrozumieniu tematu mogą pomóc odpowiednie studia. Ja zachęcam do kierunku studiów podyplomowych, który niedługo ukończę, czyli Data Scientist na Wyższej Szkole Zarządzania i Bankowości w Krakowie .

 

 

5 Comments Add yours

  1. Michał K. napisał(a):

    Jak zwykle świetna robota:-)

    1. piotrziuzianski napisał(a):

      Dziękuję serdecznie 🙂 widzimy się na SQL Day? 🙂

  2. Gość napisał(a):

    Microsoft R Server? Czy dostęp do niego też będzie wymagał posiadania karty kredytowej?

    1. piotrziuzianski napisał(a):

      Nie, nie wymaga to posiadania karty kredytowej 🙂 Jest to wersja desktopowa, wystarczy zarejestrować się w Visual Studio Dev Essentials i pobrać Microsoft R Server Developer Edition (https://my.visualstudio.com).

      1. Gość napisał(a):

        To dobra wiadomość. Szkoda że tego samego nie zrobiono z Azure. Z pewnością przyczyniło by się to do upowszechnienia, a przynajmniej zwiększenia zainteresowania tą chmurą.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *