NO , nie…. Chmuro (Cloud)

Cloud Computing

.NET: wymawiane dot-net; najnowszy framework programistyczny Microsoft, z dużym naciskiem na usługi sieciowe.

.NET Framework: w chmurze .NET Framework stał się kluczowym podstawowym elementem platformy Azure Microsoft do przetwarzania w chmurze.

network: połączenie systemów komputerowych (węzłów) kanałami komunikacyjnymi i odpowiednim oprogramowaniem.

OASIS: Organization for the Advancement of Structured Information Standards. Konsorcjum promujące standardy e-biznesu i usług internetowych.

open source: ruch w branży oprogramowania, który sprawia, że programy i kod źródłowy używany do ich tworzenia są swobodnie dostępne, aby inni mogli sprawdzać i modyfikować ich działanie.

R : Podstawy uczenia maszynowego

Jak powiedzieliśmy na wstępie, uważamy, że najlepszym sposobem na naukę nowych umiejętności technicznych jest rozpoczęcie od problemu, który chcesz rozwiązać lub pytania, na które chcesz odpowiedzieć. Podekscytowanie wizją swojej pracy na wyższym poziomie sprawia, że ​​uczenie się na podstawie studiów przypadków jest skuteczne. W tym przeglądzie podstawowych pojęć w języku R nie zajmiemy się problemem uczenia maszynowego, ale napotkamy kilka problemów związanych z pracą z danymi i zarządzaniem nimi w języku R. Jak zobaczymy w studiach przypadków, dość często spędzimy większość czasu na sformatowaniu i uporządkowaniu danych w sposób odpowiadający analizie. Zwykle bardzo mało czasu, jeśli chodzi o kodowanie, spędza się na analizie. W tym przypadku odpowiemy na pytanie o wartości wyłącznie rozrywkowej. Niedawno serwis danych Infochimps.com opublikował zestaw danych z ponad 60 000 udokumentowanych raportów o niezidentyfikowanych obiektach latających (UFO). Dane obejmują setki lat i zawierają raporty z całego świata. Chociaż ma to charakter międzynarodowy, większość obserwacji w danych pochodzi ze Stanów Zjednoczonych. Przy czasie i wymiarach przestrzennych danych możemy zadać następujące pytania: czy istnieją obserwacje sezonowe w obserwacjach UFO; a jakie są ewentualne różnice między obserwacjami UFO w różnych stanach USA? Jest to świetny zestaw danych do rozpoczęcia eksploracji, ponieważ jest bogaty, dobrze zorganizowany i przyjemny w pracy. Przydaje się również w tym ćwiczeniu, ponieważ jest to duży plik tekstowy, który zazwyczaj jest typem danych, z którymi będziemy się zajmować  W takich plikach tekstowych często występują niechlujne części i będziemy używać funkcji podstawowych w R i niektórych bibliotekach zewnętrznych do czyszczenia i organizowania surowych danych. Ta sekcja przeprowadzi Cię krok po kroku przez całą prostą analizę, która próbuje odpowiedzieć na pytania, które zadaliśmy wcześniej.  Zaczynamy od załadowania danych i wymaganych bibliotek lub analizy.

…Mojaś Ty Chmuro (Cloud)…

Cloud Computing

malware (złośliwe oprogramowanie): ogólny termin określający oprogramowanie komputerowe, które celowo zachoruje, takie jak wirusy, trojany, robaki i oprogramowanie szpiegujące.

managed hosting (hosting zarządzany): w tym miejscu klient przekazuje kontrolę nad dzierżawionym serwerem zarządzanej usłudze hostingowej, która następnie zapewnia gwarantowaną jakość usług.

markup language (język znaczników): sposób kodowania informacji wykorzystujący zwykły tekst zawierający specjalne znaczniki, często oddzielone nawiasami kątowymi (<i>). Często tworzone są określone języki znaczników w oparciu o XML, aby znormalizować wymianę informacji między różnymi systemami komputerowymi i usługami.

mashup: program (prawdopodobnie zainstalowany na stronie internetowej), który łączy treści z więcej niż jednego źródła, takiego jak Mapy Google i usługa listy nieruchomości.

master-slave: Układ, w którym jeden system lub proces jest wyznaczony jako kontroler, a inne uczestniczące systemy lub procesy odpowiadają na ten kontroler. Jeśli mistrz zawiedzie, niewolnicy nie będą mogli kontynuować.

metadane: definicje, odwzorowania i inne cechy używane do opisania sposobu wyszukiwania, uzyskiwania dostępu i korzystania z danych i komponentów oprogramowania firmy.

metadanych repozytorium: Kontener spójnych definicji danych biznesowych i reguł mapowania danych do ich rzeczywistych fizycznych lokalizacji w systemie.

middleware (oprogramowanie pośrednie): oprogramowanie wielofunkcyjne, które żyje na warstwie między systemem operacyjnym a aplikacją w rozproszonych środowiskach komputerowych.

mission critical (krytyczny dla misji): coś takiego, jak aplikacja, na którą firma nie może sobie pozwolić bez chwili.

MOM: oprogramowanie pośrednie zorientowane na wiadomości. Prekursor magistrali usług dla przedsiębiorstw.

multi-tenancy (wielodostępność): odnosi się do sytuacji, w której pojedyncze wystąpienie aplikacji działa na serwerach dostawcy SaaS, ale obsługuje wiele organizacji klienckich (dzierżawców), oddzielając wszystkie swoje dane. W architekturze wielu dzierżawców aplikacja dzieli swoje dane i konfigurację na partycje, aby każdy klient miał dostosowaną instancję aplikacji wirtualnej.

MySQL: opcja typu open source dla relacyjnych baz danych.

Ładowanie i instalowanie pakietów R

Istnieje wiele dobrze zaprojektowanych, utrzymanych i obsługiwanych pakietów R związanych z uczeniem maszynowym. W odniesieniu do studiów przypadków, które opiszemy, istnieją pakiety do zajmowania się między innymi danymi przestrzennymi, analizą tekstu, strukturami sieciowymi i interakcjami z interfejsami API opartymi na sieci. W związku z tym będziemy w dużej mierze polegać na funkcjonalności wbudowanej w kilka z tych pakietów. Ładowanie pakietów w R jest bardzo proste. Aby to zrobić, są dwie funkcje: library i require. Istnieją pewne subtelne różnice między nimi, ale dla naszych celów podstawową różnicą jest to, że metoda return zwróci wartość logiczną (PRAWDA lub FAŁSZ) wskazującą, czy pakiet jest zainstalowany na komputerze po próbie załadowania go. Na przykład później użyjemy pakietu tm do tokenizacji tekstu. Aby załadować te pakiety, możemy użyć biblioteki lub wymagać funkcji. W poniższym przykładzie używamy biblioteki do załadowania tm, ale używanie wymaga XML. Korzystając z funkcji print, możemy zobaczyć, że mamy zainstalowany XML, ponieważ po załadowaniu pakietu zwrócona została wartość

library(tm)

print(require(XML))

#[1] TRUE

Gdybyśmy nie mieli zainstalowanego XML – tj. jeśli wymagają zwrotu FALSE – wówczas musielibyśmy zainstalować ten pakiet przed kontynuowaniem. Istnieją dwa sposoby instalowania pakietów w R: za pomocą GUI lub za pomocą funkcji install.packages z konsoli. Biorąc pod uwagę odbiorców tego tekstu, podczas studiów przypadków będziemy wchodzić w interakcje z R wyłącznie z konsoli, ale warto wskazać, jak używać GUI do instalowania pakietów. Z paska menu w aplikacji przejdź do Pakiety i dane → Instalator pakietów, a pojawi się okno. Z listy rozwijanej Repozytorium pakietów wybierz „CRAN (pliki binarne)” lub „CRAN (źródła)”, a następnie kliknij przycisk Pobierz listę, aby załadować wszystkie pakiety dostępne do instalacji. Najnowsza wersja pakietów będzie dostępna w repozytorium „CRAN (źródła)”, a jeśli na komputerze są zainstalowane niezbędne kompilatory, zalecamy korzystanie z tego repozytorium źródeł. Możesz teraz wybrać pakiet, który chcesz zainstalować, i kliknij Zainstaluj wybrane, aby zainstalować pakiety. Funkcja install.packages jest preferowanym sposobem instalowania pakietów, ponieważ zapewnia większą elastyczność w sposobie i miejscu instalacji pakietów. Jedną z głównych zalet korzystania z install.packages jest to, że umożliwia instalację z lokalnego źródła kodu oraz z CRAN. Chociaż jest to rzadkie, czasami możesz chcieć zainstalować pakiet, który nie jest jeszcze dostępny w CRAN – na przykład, jeśli aktualizujesz do wersji eksperymentalnej pakietu. W takich przypadkach będziesz musiał zainstalować ze źródła:

install.packages(“tm”, dependencies=TRUE)

setwd(“~/Downloads/”)

install.packages(“RCurl_1.5-0.tar.gz”, repos=NULL, type=”source”)

W pierwszym przykładzie używamy ustawień domyślnych do zainstalowania pakietu TM z CRAN. TM zapewnia funkcję wykorzystywaną do eksploracji tekstu, a my wykorzystamy ją później do przeprowadzenia klasyfikacji tekstu wiadomości e-mail. Sugeruje się jeden przydatny parametr w funkcji install.packages, który domyślnie jest ustawiony na FALSE, ale jeśli jest włączony, instruuje funkcję, aby pobierała i instalowała wszelkie dodatkowe pakiety używane podczas instalacji podstawowej. Jako najlepszą praktykę zalecamy zawsze ustawianie tej wartości na PRAWDA, szczególnie jeśli pracujesz z czystą instalacją R. Alternatywnie możemy również zainstalować bezpośrednio ze skompresowanych plików źródłowych. W poprzednim przykładzie zainstalowaliśmy pakiet RCurl z kodu źródłowego dostępnego na stronie autora. Używając funkcji setwd, aby upewnić się, że katalog roboczy R jest ustawiony na katalog, w którym plik źródłowy został zapisany, możemy po prostu wykonać pokazaną wcześniej komendę, aby zainstalować bezpośrednio z kodu źródłowego. Zwróć uwagę na dwa parametry, które zostały zmienione w tym przypadku. Po pierwsze, musimy powiedzieć funkcji, aby nie korzystała z jednego z repozytoriów CRAN, ustawiając repos = NULL, a także określamy typ instalacji za pomocą type = “source”. Biorąc pod uwagę liczbę wymaganych pakietów, aby przyspieszyć proces instalacji utworzył krótki skrypt, który sprawdzi, czy każdy wymagany pakiet jest zainstalowany, a jeśli nie, spróbuje go zainstalować z CRAN. Aby uruchomić skrypt, użyj funkcji setwd, aby ustawić Katalog roboczy na folder kodu dla tego rozdziału i wykonaj polecenie źródłowe, jak pokazano tutaj:

source(“package_installer.R”)

Jeśli jeszcze tego nie zrobiłeś, możesz zostać poproszony o wybranie repozytorium CRAN. Po ustawieniu skrypt uruchomi się, a zobaczysz postęp każdej wymaganej instalacji pakietu, której jeszcze nie masz. Jesteśmy teraz gotowi, aby zacząć poznawać uczenie maszynowe z R! Zanim przejdziemy do studiów przypadków, przejrzymy niektóre funkcje R i operacje, z których będziemy często korzystać.

Leć Chmuro (Cloud)… leć !!!

Cloud Computing

LAMP: Coraz bardziej popularne podejście typu open source do budowania sieci aplikacji. LAMP składa się z systemu operacyjnego Linux, serwera WWW Apache, bazy danych MySQL i języka skryptowego (takiego jak PHP, Perl lub Python).
late binding (późne wiązanie): odraczanie niezbędnych połączeń między aplikacjami do momentu, gdy połączenie jest potrzebne po raz pierwszy. Późne wiązanie umożliwia większą elastyczność zmian niż wcześniejsze wiązanie, ale wiąże się z pewnym kosztem czasu przetwarzania.
legacy application (starsza aplikacja): każda aplikacja starsza niż kilka lat. Gdy aplikacji nie można łatwo usunąć ani wymienić, stają się aplikacjami starszymi. Dobrą wiadomością jest to, że wciąż robią coś pożytecznego, gdy wybrane fragmenty kodu można przekształcić w usługi biznesowe dzięki nowym znormalizowanym interfejsom.
Linux: Linux to system operacyjny typu open source oparty na systemie Unix i podobny do niego. W chmurze jest to dominujący system operacyjny, przede wszystkim dlatego, że nie ma opłat licencyjnych dla Linuksa.
Linux Web hosting: Zdecydowana większość stron internetowych działa w systemie operacyjnym Linux zarządzanym przez usługę hostingu Linux za pomocą stosu oprogramowania LAMP (Linux, Apache, MySQL, PHP).
luźne łączenie: podejście do rozproszonych aplikacji, w których komponenty współdziałają poprzez przekazywanie danych i żądań do innych komponentów w znormalizowany sposób, który minimalizuje zależności między komponentami. Nacisk kładziony jest na prostotę i autonomię. Każdy komponent oferuje niewielką gamę prostych usług dla innych komponentów.

IDE i edytory tekstu

R jest językiem skryptowym, dlatego większość pracy wykonanej w poniższych studiach przypadków będzie wykonywana w IDE lub edytorze tekstów, a nie bezpośrednio wprowadzana do konsoli R. Jak pokażemy w następnej sekcji, niektóre zadania są odpowiednie dla konsoli, takie jak instalacja pakietu, ale przede wszystkim będziesz chciał pracować w wybranym IDE lub edytorze tekstu. Dla osób korzystających z GUI w systemie Windows lub Mac OS X dostępny jest podstawowy edytor tekstu z tej aplikacji. Przechodząc do opcji Plik → Nowy dokument z paska menu lub klikając ikonę pustego dokumentu w nagłówku okna, otworzysz pusty dokument w edytorze tekstu. Jako haker najprawdopodobniej masz już IDE lub edytor tekstu i zalecamy korzystanie z dowolnego środowiska, w którym jest ci najwygodniej na potrzeby studiów przypadków. Jest tu po prostu zbyt wiele opcji do wyliczenia tutaj i nie mamy zamiaru włączać się w niesławną debatę Emacs kontra Vim.

I po Chmurze (Cloud)…? JaK???

Cloud Computing

IaaS: infrastruktura jako usługa. Infrastruktura, w tym interfejs zarządzania i powiązane oprogramowanie, dostarczane firmom z chmury jako usługa.

identity management (zarządzanie tożsamością): Śledzenie tożsamości jednego użytkownika (lub zasobu) przez cały okres współpracy z systemem lub zestawem systemów.

integracja informacji: proces wykorzystujący oprogramowanie do łączenia źródeł danych w różnych działach lub regionach organizacji, którego ogólnym celem jest tworzenie bardziej wiarygodnych, spójnych i zaufanych informacji.

infrastruktura: podstawowe systemy niezbędne do zwykłego działania działu IT. W IT infrastruktura obejmuje podstawowy sprzęt komputerowy, sieci, systemy operacyjne, pamięć masową i inne oprogramowanie, na których działają aplikacje.

infrastrukturalne usługi: usługi świadczone przez infrastrukturę. W IT usługi te obejmują całe oprogramowanie potrzebne do tego, aby urządzenia na początek rozmawiały ze sobą.

Internet: Ogromna sieć komputerowa łącząca prawie wszystkie komputery na świecie i umożliwiająca im komunikację za pomocą standardowych protokołów (TCP / IP) i formatów danych.

interoperacyjność: zdolność produktu do łączenia się z wieloma innymi produktami; zwykle używane w kontekście oprogramowania.

IP: protokół internetowy. Systematyczna technika przesyłania danych w sieci z komutacją pakietów. Własność intelektualna może również oznaczać własność intelektualną, taką jak patenty, znaki handlowe, prawa autorskie i tajemnice handlowe.

ISO: Międzynarodowa Organizacja Normalizacyjna. Organizacja, która opracowała ponad 17 000 międzynarodowych standardów, w tym standardy zarządzania usługami IT i ład korporacyjny w zakresie technologii informatycznych.

ITIL: Biblioteka infrastruktury technologii informatycznych. Ramy i zestaw standardów zarządzania IT w oparciu o najlepsze praktyki.

JCA: architektura złącza J2EE. Technologia umożliwiająca programom Java komunikowanie się z innym oprogramowaniem, takim jak bazy danych i starsze aplikacje.

KPI: kluczowy wskaźnik wydajności. Wskaźnik stosowany do mierzenia efektywności procesu.

ML : Pobieranie i instalowanie R

Podobnie jak wiele projektów open source, R jest dystrybuowany przez serię regionalnych kopii dystrybucyjnych. Jeśli nie masz już zainstalowanego R na swoim komputerze, pierwszym krokiem jest jego pobranie. Wejdź na http://cran.r-project.org/mirrors.html i wybierz najbliższe ci lustro CRAN. Po wybraniu kopii dystrybucyjnej konieczne będzie pobranie odpowiedniej dystrybucji R dla dowolnego systemu operacyjnego. R opiera się na kilku starszych bibliotekach skompilowanych z C i Fortran. W związku z tym, w zależności od systemu operacyjnego i Twojej wiedzy na temat instalowania oprogramowania z kodu źródłowego, możesz wybrać instalację R ze skompilowanej dystrybucji binarnej lub źródła. Następnie przedstawiamy instrukcje instalacji R na dystrybucjach Windows, Mac OS X i Linux, wraz z uwagami na temat instalacji ze źródła lub plików binarnych, jeśli są dostępne. Wreszcie R jest dostępny w wersjach 32- i 64-bitowych. W zależności od kombinacji sprzętu i systemu operacyjnego należy zainstalować odpowiednią wersję.

Windows

W systemach operacyjnych Windows dostępne są dwa podkatalogi do zainstalowania R: base i contrib. Ten ostatni jest katalogiem skompilowanych wersji binarnych systemu Windows wszystkich wniesionych pakietów R w CRAN, podczas gdy ten pierwszy jest instalacją podstawową.Wybierz instalację podstawową i pobierz najnowszą skompilowaną wersję binarną. Instalowanie wniesionych pakietów jest łatwe do wykonania z poziomu samego R i nie jest specyficzne dla języka; dlatego nie trzeba instalować niczego z katalogu contrib. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie podczas instalacji. Po pomyślnym zakończeniu instalacji w menu Start pojawi się aplikacja R, która otworzy konsolę RGui i R, jak pokazano na rysunku.

W przypadku większości standardowych instalacji systemu Windows proces ten powinien przebiegać bez żadnych problemów. Jeśli masz niestandardową instalację lub napotkasz błędy podczas instalacji, zapoznaj się z często zadawanymi pytaniami dotyczącymi R dla systemu Windows w wybranym lustrze.

Mac OS X

Na szczęście dla użytkowników Mac OS X, R jest fabrycznie zainstalowany z systemem operacyjnym. Możesz to sprawdzić, otwierając Terminal.app i po prostu wpisując R w wierszu poleceń. Jesteś teraz gotowy, aby rozpocząć! Jednak dla niektórych użytkowników przydatne będzie posiadanie aplikacji GUI do interakcji z konsolą R. W tym celu musisz zainstalować osobne oprogramowanie. W systemie Mac OS X istnieje możliwość instalacji ze skompilowanego pliku binarnego lub ze źródła. Aby zainstalować z pliku binarnego – zalecanego dla użytkowników bez doświadczenia w korzystaniu z wiersza poleceń systemu Linux – wystarczy pobrać najnowszą wersję do swojego lustrzanego wyboru na http://cran.r-project.org/mirrors.html i postępować zgodnie z instrukcjami na instrukcje ekranowe. Po zakończeniu instalacji w folderze Aplikacje będą dostępne zarówno R.app (wersja 32-bitowa), jak i R64.app (wersja 64-bitowa). W zależności od wersji Mac OS X i sprzętu komputera możesz wybrać wersję, z którą chcesz pracować. Podobnie jak w przypadku instalacji systemu Windows, w przypadku instalacji z pliku binarnego proces ten powinien przebiegać bez żadnych problemów. Po otwarciu nowej aplikacji R zobaczysz konsolę podobną do pokazanej na rysunku

Jeśli masz niestandardową instalację systemu Mac OS X lub chcesz dostosować instalację R dla określonej konfiguracji, zalecamy instalację z kodu źródłowego. Instalacja R ze źródła w Mac OS X wymaga kompilatorów C i Fortran, które nie są zawarte w standardowej instalacji systemu operacyjnego. Możesz zainstalować te kompilatory za pomocą dysku DVD z narzędziami dla programistów Mac OS X dołączonego do oryginalnego pakietu instalacyjnego Mac OS X lub zainstalować niezbędne kompilatory z katalogu narzędzi w wybranym lustrze. Gdy masz już wszystkie niezbędne kompilatory do zainstalowania ze źródła, proces ten jest typową procedurą konfigurowania, tworzenia i instalowania używaną do instalowania większości oprogramowania z wiersza poleceń. Za pomocą Terminal.app przejdź do folderu z kodem źródłowym i wykonaj następujące polecenia:

$ ./configure

$ make

$ make install

W zależności od ustawień uprawnień konieczne może być wywołanie polecenia sudo jako prefiksu kroku konfiguracji i podanie hasła systemowego. Jeśli podczas instalacji wystąpią jakiekolwiek błędy przy użyciu skompilowanej dystrybucji binarnej lub kodu źródłowego, zapoznaj się z często zadawanymi pytaniami dotyczącymi R dla systemu Mac OS X w wybranym lustrze.

Linux

Podobnie jak w Mac OS X, R jest preinstalowany w wielu dystrybucjach Linuksa. Po prostu wpisz R w wierszu polecenia, a konsola R. zostanie załadowana. Możesz teraz rozpocząć programowanie! Kopia lustrzana CRAN obejmuje również instalacje specyficzne dla kilku dystrybucji Linuksa, wraz z instrukcjami instalacji R na Debian, RedHat, SUSE i Ubuntu. Jeśli korzystasz z jednej z tych instalacji, zalecamy zapoznanie się z instrukcjami dla twojego systemu operacyjnego, ponieważ istnieją znaczne różnice w najlepszych praktykach wśród dystrybucji Linuksa.a

Hmura? (Cloud)

Cloud Computing

HIPAA: Ustawa o przenośności i rozliczalności ubezpieczeń zdrowotnych z 1996 r. Zbiór rozległych przepisów, których muszą przestrzegać organizacje opieki zdrowotnej i świadczeniodawcy w Stanach Zjednoczonych. Jednym z celów jest kontrola systemu opieki zdrowotnej w celu ochrony prawa pacjentów do prywatności w zakresie informacji o ich zdrowiu. Zasady i przepisy nakładają znaczne wymagania na systemy technologiczne, które mają cokolwiek wspólnego z opieką zdrowotną.

HTML: hipertekstowy język znaczników. Schemat kodowania danych opracowany przez Tima Bernersa-Lee w 1991 roku i podstawowy sposób kodowania informacji w sieci WWW.

HTTP: Hypertext Transport Protocol. Podstawowy sposób łączenia i przesyłania informacji w sieci WWW. HTTPS to wersja HTTP z szyfrowaniem dla bezpieczeństwa.

Środowisko R dla uczenia maszynowego

R jest językiem i środowiskiem dla obliczeń statystycznych i grafiki …. R zapewnia szeroki zakres technik statystycznych (modelowanie liniowe i nieliniowe, klasyczne testy statystyczne, analiza szeregów czasowych, klasyfikacja, grupowanie, …) i technik graficznych, i jest wysoce rozciągliwy. Język S jest często wybranym narzędziem do badań w metodologii statystycznej, a R zapewnia ścieżkę Open Source do uczestnictwa w tym działaniu

—R Projekt R dla obliczeń statystycznych, http://www.r-project.org/

Najlepszą rzeczą w R jest to, że został opracowany przez statystyków. Najgorsze w R jest to, że … opracowali go statystycy.

—Bo Cowgill, Google, Inc.

R to niezwykle potężny język do manipulacji i analizy danych. Jego gwałtowny wzrost popularności w społecznościach zajmujących się analizą danych i uczeniem maszynowym sprawił, że stała się de facto lingua franca dla analityki. Sukces R w społeczności zajmującej się analizą danych wynika z dwóch czynników opisanych w poprzednich epitafiach: R zapewnia większość mocy technicznej wymaganej przez statystyków w języku domyślnym, a R jest wspierany przez społeczność statystyków, którzy są również wielbicielami open source. Język opracowany specjalnie do obliczeń statystycznych ma wiele zalet technicznych. Jak zauważa opis projektu R, język zapewnia most typu open source do S, który zawiera wiele wysoce specjalistycznych operacji statystycznych jako funkcji podstawowych. Na przykład, aby wykonać podstawową regresję liniową w R, należy po prostu przekazać dane do funkcji lm, która następnie zwraca obiekt zawierający szczegółowe informacje o regresji (współczynniki, błędy standardowe, wartości rezydualne itp.). Dane te można następnie wizualizować, przekazując wyniki do funkcji wykresu, która została zaprojektowana do wizualizacji wyników tej analizy. W innych językach z dużymi społecznościami naukowymi, takimi jak Python, powielanie funkcjonalności lm wymaga użycia kilku bibliotek zewnętrznych do reprezentowania danych (NumPy), przeprowadzania analizy (SciPy) i wizualizacji wyników (matplotlib). Jak zobaczymy póżniej, takie zaawansowane analizy można przeprowadzić za pomocą pojedynczego wiersza kodu w R. Ponadto, podobnie jak w innych naukowych środowiskach obliczeniowych, podstawowym typem danych w R jest wektor. Wektory można agregować i organizować na różne sposoby, ale u podstaw wszystkie dane są reprezentowane w ten sposób. Ta stosunkowo sztywna perspektywa struktur danych może być ograniczająca, ale jest również logiczna, biorąc pod uwagę zastosowanie języka. Najczęściej stosowaną strukturą danych w R jest ramka danych, którą można traktować jako macierz z atrybutami, wewnętrznie zdefiniowaną strukturę „arkusza kalkulacyjnego” lub relacyjną strukturę bazy danych w rdzeniu języka. Zasadniczo ramka danych jest po prostu kolumnową agregacją wektorów, dla których R zapewnia określoną funkcjonalność, co czyni go idealnym do pracy z dowolnym rodzajem danych.

Przy całej swojej mocy R ma również swoje wady. R nie skaluje się dobrze z dużymi danymi i chociaż podjęto wiele wysiłków, aby rozwiązać ten problem, pozostaje poważnym problemem. Na potrzeby analiz przypadków dokonamy przeglądu, jednak nie będzie to stanowić problemu. Zestawy danych, których będziemy używać, są stosunkowo małe, a wszystkie systemy, które zbudujemy, są prototypami lub modelami sprawdzającymi koncepcję. To rozróżnienie jest ważne, ponieważ jeśli zamierzasz budować systemy uczenia maszynowego na poziomie przedsiębiorstwa w skali Google lub Facebook, R nie jest właściwym rozwiązaniem. W rzeczywistości firmy takie jak Google i Facebook często używają R jako „piaskownicy danych” do zabawy z danymi i eksperymentowania z nowymi metodami uczenia maszynowego. Jeśli jeden z tych eksperymentów przyniesie owoce, inżynierowie będą próbowali powielić funkcjonalność zaprojektowaną w języku R w bardziej odpowiednim języku, takim jak C.

Ten etos eksperymentów wywołał także ogromne poczucie wspólnoty wokół języka. Korzyści społeczne płynące z języka R zależą od tej dużej i rosnącej społeczności ekspertów używających języka i przyczyniających się do niego. Jak wspomina Bo Cowgill, R wynikało z chęci statystyków do posiadania środowiska komputerowego, które spełniałoby ich konkretne potrzeby. Dlatego wielu użytkowników R. jest ekspertami w swoich różnych dziedzinach. Obejmuje to niezwykle różnorodny zestaw dyscyplin, w tym matematykę, statystykę, biologię, chemię, fizykę, psychologię, ekonomię i nauki polityczne, by wymienić tylko kilka. Ta społeczność ekspertów zbudowała ogromną kolekcję pakietów oprócz obszernych podstawowych funkcji w R. W czasie pisania CRAN, repozytorium R dla pakietów, zawierało ponad 2800 pakietów. W poniższych studiach przypadków wykorzystamy wiele najpopularniejszych pakietów, ale to tylko zarysuje powierzchnię tego, co jest możliwe dzięki R. Wreszcie, chociaż druga część oświadczenia Cowgilla może wydawać się nieco groźna, dodatkowo podkreśla siłę społeczności R. Jak zobaczymy, język R ma szczególnie dziwną składnię, która jest pełna kodujących „gotchas”, które mogą odstraszyć nawet doświadczonych programistów. Ale wszystkie problemy gramatyczne związane z językiem można w końcu przezwyciężyć, szczególnie dla wytrwałych hakerów. Dla niestatystów trudniejsze jest liberalne założenie, że zna metody statystyczne i matematyczne wbudowane w funkcje R. Korzystając z funkcji lm jako przykładu, gdybyś nigdy nie przeprowadzał regresji liniowej, nie wiedziałbyś, aby szukać współczynników, błędów standardowych lub wartości resztkowych w wynikach. Nie wiedziałbyś też, jak interpretować te wyniki. Ale ponieważ język jest open source, zawsze możesz spojrzeć na kod funkcji, aby zobaczyć dokładnie, co ona robi. Częścią tego, co spróbujemy osiągnąć, jest zbadanie wielu z tych funkcji w kontekście uczenia maszynowego, ale ta eksploracja ostatecznie dotyczy tylko niewielkiego podzbioru tego, co możesz zrobić w R. Na szczęście społeczność R jest pełna ludzi, którzy pomogą Ci zrozumieć nie tylko język, ale także metody w nim zaimplementowane. Pozostała część  skupia się na przygotowaniu do korzystania z R i korzystaniu z niego. Obejmuje to pobieranie i instalowanie R, a także instalowanie pakietów R. Kończymy miniaturowym studium przypadku, które posłuży jako wprowadzenie do niektórych idiomów R, które wykorzystamy w późniejszych sekcjach. Obejmuje to problemy z ładowaniem, czyszczeniem, organizowaniem i analizowaniem danych.