[MUZYKA GRY] DUSTIN TRAN: Cześć. Nazywam się Dustin. Więc będę prezentacji Analiza danych w R. Tylko trochę o sobie. Obecnie jestem studentem w z nauk technicznych i Stosowanej. Studiuję przecięcie uczenie maszynowe i statystyki Analiza danych w tak R jest do tego, co tak naprawdę podstawowym Robię na co dzień. I R jest szczególnie dobre dla analizy danych bo to bardzo dobre dla prototypów. I zazwyczaj, kiedy robisz coś w rodzaju analizy danych, wiele problemów będą poznawczych. I tak po prostu chcesz mieć niektóre naprawdę dobry język, jest po prostu dobry sposób wbudowanej funkcji, w przeciwieństwie aby mając do czynienia z rzeczy niskim poziomie. Tak więc na początku, jestem po prostu przedstawić to, co jest R, dlaczego chcesz go używać, a następnie przejść do jakiegoś demo, i po prostu go stamtąd. Więc co to jest R? R jest po prostu język opracowany do obliczeń statystycznych i wizualizacji. Więc co to oznacza to, że to bardzo doskonały język dla każdego rodzaju rzeczy, która zajmuje się Niepewność i wizualizacji danych. Więc masz wszystko rozkłady prawdopodobieństwa. Nie będą wbudowanej funkcji. Będziesz mieć również doskonałe kreślenia pakiety. Python jest kolejnym konkurencyjnych Język danych. I jedno, że uważam, że R jest o wiele lepiej jest wizualizacja. Więc co można zobaczyć w demo jako dobrze jest po prostu bardzo intuicyjny język że po prostu działa bardzo dobrze. Jest również wolne i otwarte, jak to każdy inny dobry język chyba. I tu, kilka tylko słowa kluczowe rzucony na ciebie. Jest to dynamiczna, co oznacza, jeśli masz określony typ przypisane do obiektu nie będzie to po prostu zmienić go w locie. Jest leniwy, więc mądrze jak to robi obliczenia. Funkcjonalne, dzięki czemu można naprawdę działają opiera się funkcji tak anything-- każdy rodzaj manipulacji jesteś Czyniąc to, będzie opierać się funkcje. Operatorzy tak binarne np po prostu z natury są funkcje. I wszystko, co masz zamiar zrobić, to będzie spływać sama funkcje. A potem obiektowego, jak również. Więc tutaj jest działka XKCD. Nie tylko dlatego, że czuję się jak XKCD ma fundamentalne znaczenie dla każdego rodzaju prezentacji, ale dlatego, Czuję się jak to naprawdę młoty do tego stopnia, że ​​wiele czas, kiedy robisz coś w rodzaju danych Analiza, problemem nie jest tak bardzo, jak szybko biegnie, ale jak długo to będzie przejście do programowania zadania. Więc tutaj jest po prostu analizuje, czy Strategia lub b jest bardziej efektywne. To będzie coś, że jesteś będzie zajmować dużo się w sortowania języków niskopoziomowych gdzie masz do czynienia z wadami SEG, alokacja pamięci, pliki uruchamiania, nawet co wbudowanych funkcji. I to wszystko jest obsługiwane rzeczy bardzo, bardzo elegancko w R. Więc po prostu wbić ten Punkt, największym gardłem będzie poznawcze. Tak więc analiza danych jest bardzo trudne zagadnienie. Czy robisz uczenie maszynowe lub jesteś robi tylko jakieś Eksploracja danych podstawowa, nie chce mieć wziąć dokument a następnie skompilować coś za każdym razem chcesz zobaczyć, co kolumna wygląda, co szczególnie wpisy w matrycy wygląda. Więc po prostu chcesz mieć niektóre bardzo ładny interfejs można uruchomić prostą funkcję że indeksy na cokolwiek chcesz i po prostu uruchom go stamtąd. I trzeba domenę konkretne języki za to. I R będzie naprawdę pomóc zdefiniować problemu i rozwiązać go w ten sposób. Więc tutaj jest programowanie pokazując działki Popularność R, jak go nie ma w czasie. Więc jak widać, podobnie jak 2013 lub więc po prostu wysadzony ogromnie. I to było tylko dlatego, że ogromny trend w branży technologicznej o dużych danych. Ponadto, nie tylko technologia przemysł, ale naprawdę Przemysł, ponieważ każda that-- Wiele branż są swego rodzaju podstawą próby rozwiązania tych problemów. I zazwyczaj, może masz jakiś dobry Sposób mierzenia tych problemów lub nawet ich definiowania lub rozwiązywania ich pomocą danych. Więc myślę, że teraz jest 11 R najpopularniejszym językiem na TIOBE i to rośnie od tego czasu. Więc oto kilka cechy R. Ma Ogromna ilość sztuk, dla wszystkich tych rzeczy. Więc za każdym razem masz pewne, większość problemów R będzie miał czas że funkcja dla Ciebie. Więc, czy chcesz zbudować jakąś maszynę nauki algorytm zwany Losowe Las lub drzewa decyzyjne, lub nawet starając się średnią Funkcja lub któregokolwiek z tych rzeczy, R będzie mieć. A jeśli nie dbasz o optymalizacja, jedna rzecz, która jest wspólna jest to, że po zakończeniu prototypowanie jakiś języku wysokiego poziomu, można rzucić, że in-- będziesz tylko port, który w ciągu w pewnym języku niskiego poziomu. Co jest dobre na temat badań jest to, że raz jesteś wykonane prototypy go można uruchomić C ++, lub Fortran, lub każdy z nich dolne szczebla bezpośrednio do R. Więc to jest naprawdę Nowością o R, jeśli naprawdę obchodzi Punkt optymalizacja. I to jest również bardzo dobra dla wizualizacji internetowych. Tak D3.js, na przykład, Myślę, że kolejne seminarium że przedstawiony dzisiaj. I to jest naprawdę niesamowite dla robi interaktywnych wizualizacji. I D3.js zakłada, że ​​masz pewnego rodzaju danych, które będą wykreślane i R to świetny sposób jest w stanie zrobić Analiza danych przed wyeksportować nad do D3.js lub nawet uruchomić Polecenia do samego R D3.js, jak również tych wszystkich inne biblioteki, jak również. Więc to było tylko wprowadzenie co to jest i dlaczego może R można go używać. Więc mam nadzieję, mam przekonany coś o po prostu staramy się zobaczyć, jak to jest. Więc mam zamiar iść do przodu i przejść Podstawy o niektórych obiektów R i to, co naprawdę można zrobić. Więc tutaj jest po prostu kilka poleceń matematycznych. Tak mówią you're-- chcesz zbudować sam język i chcesz po prostu mieć kilka różnych narzędzi. Każdy rodzaj pracy uważasz, że chcę to dość dużo będzie w R. Więc tutaj jest 2 plus 2. Oto 2 razy pi. R ma kilka wbudowanych stałych że będziesz często korzystać jak pi, e. A potem, oto 7 oraz runif, więc runif z 1. Jest to funkcja, która to generuje jedną losową uniform od 0 do 1. A jeszcze 3 do potęgi 4. Jest pierwiastki kwadratowe. Jest dziennika. Więc zalogować zrobi bazy wykładnicza sama. A potem, jeśli podasz bazę, a następnie możesz robić, co chcesz bazy. A to oto kilka innych poleceń. Więc masz 23 mod 2. Wtedy masz resztę. Wtedy masz naukowa Jeśli także notacji chcę zrobić po prostu więcej i bardziej skomplikowane rzeczy. Więc tutaj jest przypisanie. Tak więc typowe zadania w R jest zrobione ze strzałką więc jest to mniej niż, a następnie myślnik. Więc ja tylko przypisanie 3 zmiennej Val. A potem ja drukowania val a następnie wypisze trzy. Domyślnie w R tłumacza, to będzie drukować rzeczy dla Ciebie więc nie trzeba określać wydrukować val każdym razem, gdy chcesz coś wydrukować. Możesz po prostu zrobić val i to zrobi to za Ciebie. Ponadto, można użyć równa technicznie jako operator przypisania. Istnieją niewielkie subtelności pomiędzy pomocą strzałki Operator i równe operator przypisania. Głównie przez kongresowego, każdego po prostu użyć operatora strzałki. I tu, jestem przypisanie tego Zapis ukośne nazywa 1 dwukropek 6. To generuje wektor od 1 do 6. I to naprawdę miłe, bo wtedy po prostu przypisać wektor do val i że działa samodzielnie. Tak to już jest przejście z single-- bardzo intuicyjny danych Struktura tylko dwukrotną pewien rodzaj typu do wektora i które będzie zbierać wszystkie skalarne wartości dla Ciebie. Więc po przejściu z skalarne, to ma przedmiotów R i to jest wektor. Wektor jest każdy rodzaj zbiór tego samego typu. Więc oto kilka wektorów. Więc to jest numeryczny. R numeryczna jest sposobem na powiedzenie dwukrotnie. I tak przez Domyślnie każdy Numer będzie podwójna. Więc jeśli masz c 1,1, 3, ujemny 5,7 c jest funkcją. Ten skleja wszystkie trzy numery w wektor. I to tak, jeśli będzie być: można zauważyć 3 przez siebie, normalnie można zakładać, że to jest jak liczba całkowita, ale z powodu wszystkich wektorów są tego samego typu, jest to wektor deblu lub numeryczny w tym przypadku. rnorm jest funkcja, która generuje średnia normalne variables-- lub standardowe wartości normalnych. A ja określając dwa z nich. Więc robię rnorm 2, przypisując, że do deweloperów, a potem mam drukowania Devs. To są tylko dwa losowe wartości normalnych. A potem wskazówki, jeśli nie dbasz o liczbach. Więc to jest tylko o pamięć Przydział i zapisywanie rozmiar pamięci. Więc trzeba by dołączyć Twoje numery od stolicy L. Na ogół jest to Zapis R w historycznym coś zwane długa liczba całkowita. Tak więc większość czasu, będziesz mieć do czynienia z podwójnej. I jeśli kiedykolwiek będzie później na optymalizacji kodu, można po prostu dodać te L's później lub w trakcie jej jeśli jesteś jak prekognicyjnym o tym, co masz zamiar robić te zmienne. Więc tutaj jest wektor znaków. Tak więc raz jeszcze, mam złączenie trzy ciągi tym czasie. Zauważ, że podwójne struny i pojedyncze struny są takie same w R. Więc mam Artur i Marvina i tak kiedy jestem drukowania go, wszystkie z nich zamiar pokazać podwójne struny. A jeśli chcesz także m.in. Ciąg pełne lub pojedyncze w swoich bohaterów, to możesz albo na przemian struny. Więc Marvina dla Drugi element, to jest będzie show-- cię Wystarczy podwójne struny a następnie jeden ciąg więc to jest zmienny. W przeciwnym razie, jeśli chcesz korzystać z dwukrotnie Operator ciąg w podwójnym sznurkiem kiedy deklarując ją, a następnie po prostu użyć operatora ucieczki. Więc robisz podwójną ciąg backslash. I w końcu, również mają wektory logiczne. Więc logical-- tak PRAWDA FAŁSZ, a oni będzie wszystkie litery. A potem znowu, jestem złączenie je, a następnie przypisanie ich do bools. Więc bools pokaże Ci PRAWDA, FAŁSZ, PRAWDA. Więc tutaj jest wektorowy indeksowania. Tak więc na początku, I biorę function-- nazywany jest sequence-- Sekwencja od 2 do 12. I biorę sekwencję przez 2. Więc to będzie zrobić 2, 4, 6, 8, 10 i 12. A potem, jestem indeksowania dostać się do trzeciego elementu. Więc jedna rzecz, aby pamiętać, jest że indeksy R by od 1. Więc odstępach 3 ma dać Ci trzeci element. Jest to rodzaj różni się od innych Języki, gdzie zaczyna się od zera. Więc w C lub C ++, na przykład, jesteś dostanie czwarty element. I tu jest vals od 3 do 5. Więc jedna rzecz, która jest naprawdę fajne jest to, że Ciebie może generować zmienne tymczasowe wewnątrz a potem po prostu korzystać z nich na bieżąco. Więc tutaj jest 3 do 5. Więc jestem generowania wektora 3, 4 i 5, a następnie Jestem indeksowania uzyskać trzecią, czwarty i piąty elementy. Podobnie więc, można streszczenie tego po prostu zrobić każdy rodzaj wektora To daje indeksowanie. Więc tutaj jest vals a następnie elementy pierwszy, trzeci i szósty. A potem, jeśli chcesz zrobić uzupełnienie, więc po prostu zrobić minus potem, że będzie dam ci wszystko, co nie jest Po pierwsze, trzeci i szósty elementem. Tak więc będzie to 4, 8 i 10. A jeśli chcesz dostać nawet bardziej zaawansowany, można łączyć logiczne wektory. Tak więc wskaźnik ten będzie Ci Wektor ten Boolean długości 6. Więc rep PRAWDA przecinek trzy. Będzie to powtórzyć TRUE trzy razy. Więc to daje wektor PRAWDA, PRAWDA, PRAWDA. rep FAŁSZ 4-- to będzie ci wektor FAŁSZ FAŁSZ FAŁSZ FAŁSZ. A następnie c zamierza złączyć te dwa Boolean razem. Więc masz zamiar uzyskać trzy Trues a następnie cztery FALSEs. Tak, że kiedy vals indeksy, jesteś dostanie PRAWDA, PRAWDA, PRAWDA. Tak, że powie tak, Chcę te trzy elementy. A potem FAŁSZ, FAŁSZ, FAŁSZ FAŁSZ będzie powiedzieć nie, nie chcę tych elementów tak, to nie będzie ich zwrotu. I myślę, że nie ma tu właściwie literówka bo to jest mówiąc powtórz PRAWDA 3 i powtórzyć FAŁSZ 4, i technicznie, ty tylko sześć elementów, więc powtórzyć FAŁSZ, należy powtórzyć FAŁSZ 3. Myślę, że R jest wystarczająco takie inteligentne że jeśli tylko określić cztery tutaj, a następnie nie będzie nawet błędu się. To po prostu dać ci tę wartość. Więc po prostu zignorować czwarty FAŁSZ. Więc tutaj jest wektorowy przypisanie. Więc to po prostu ustawia set.seed-- nasion dla liczb pseudolosowych. Więc jestem nasienie do ustawiania 42, co oznacza, że ​​jeśli generować trzy losowo normalne wartości, a następnie, jeśli Ciebie uruchomić set.seed na własną rękę Komputer stosując tę ​​samą wartość 42, Następnie można również uzyskać Te same trzy losowe normalne. Więc to jest naprawdę dobry dla powtarzalności. Zazwyczaj, kiedy robisz niektóre rodzaj analizy naukowej, co chcesz ustawić nasienie. W ten sposób można po prostu inni naukowcy odtworzyć dokładnie ten sam kod, który zrobić, bo oni mają dokładną same zmienne losowe that-- lub losowo Wartości, które zostały podjęte, jak również. I tak wektorowy cesja tutaj pokazuje odstępach 1 do 2. Więc zajmuje pierwsze dwa elementy w odstępach, a następnie przypisuje je do 0. A potem, można też po prostu zrobić Podobnie dzieje się z logicznych. Więc vals nie jest równa 0-- tej woli daje fałszywe wektorowych, FAŁSZ, PRAWDA w tym przypadku. A potem, to będzie mówić nic tych wskaźników, które są prawdziwe, to się dzieje, że przypisanie do 5. Więc to ma trzeci element tutaj, a następnie przypisuje go do 5. I to jest naprawdę ładne w porównaniu do języków niskopoziomowych gdzie trzeba użyć pętli robić wszystko to vectorized rzeczy bo to po prostu bardzo intuicyjne i to jest jeden nie-liniowej. A co to wielki temat Zapis wektorowy jest to, że w R, to coś w rodzaju wbudowana tak, że są one niemal tak szybko, jak robi się w języku niskiego poziomu, jak przeciwieństwie do tworzenia pętli w R , a następnie o to, aby zrobić Samo indeksowanie dynamiczny. I że będzie wolniejszy niż robi ten rodzaj vectorized rzeczy gdzie może to zrobić równolegle, gdzie to robi to w gwintowania zasadzie. Więc tutaj jest wektorowy operacji. Więc jestem generowania wartości od 1 do 3, przypisywania, że ​​aby vec1, 3 do 5, vec2, dodając je razem. To dodaje im składnikiem mądry tak to jest jeden plus 3, 2 plus 4, i tak dalej. vec1 razy vec2. To mnoży dwie wartości składnika mądry. Więc jest to jeden razy 3, 2 razy 4, a następnie 3 razy 5. A potem, podobnie można również zrobić comparisons-- porównań logicznych. Więc to FAŁSZ FAŁSZ PRAWDA, w tym 1 tak, ponieważ nie jest większa niż 3, 2 nie jest wyższa niż 4. Jest to, jak sądzę, inny literówkę, 3 na pewno nie jest większa niż 5. Tak. A więc można po prostu zrobić wszystko te proste czynności ponieważ ich dziedziczone od samych klas. Więc to był tylko wektorowych. I to jest jakby najbardziej podstawowym Obiekt R, ponieważ biorąc pod uwagę wektor, można tworzyć bardziej zaawansowane obiekty. Tak tu jest matryca. Jest to w zasadzie abstrakcji co matryca jest sama. Więc w tym przypadku, to trzy różne wektory, gdzie każdy z nich jest kolumna, lub można ją rozważyć w każdej z nich jest wiersz. Więc jestem przechowywania od 1 do macierzy 9, a potem mam określając 3 rzędy. Tak więc od 1 do 9 daje wektor 1, 2, 3, 4, 5, 6 i aż do 9. Jedną z rzeczy, również pamiętać, jest to, że Sklepy wartości R w formacie kolumny-dur. Więc innymi słowy, kiedy widzisz 1 do 9, to będzie przechowywać them-- to będzie 1, 2, 3 w pierwszej kolumnie i wtedy będzie to zrobić 4, 5, 6, w drugiej kolumnie i 7, 8, 9 w trzeciej kolumnie. A oto niektóre inne wspólne funkcje można wykorzystać. Tak słabe mat, to daje Wymiary macierzy. To będzie powrót wektor wymiaru. A więc w tym przypadku, ponieważ nasza matryca jest 3 przez 3, to się daje wektor numeryczny to 3 3. I tu właśnie pokazuje mnożenie macierzy. Więc zwykle, jeśli tylko zrobić asterisk-- więc mata gwiazdka mat-- to będzie Operacja składnikiem mądry i co się nazywa produkt Hadamard. Więc to zrobić każdy element składowy mądry. Jednakże, jeśli chcesz multiplication-- matrycy więc mnożąc pierwsze razy wierszy Pierwsza kolumna drugiej macierzy jest i tak on-- należy użyć operacja ta proc. A t maty jest tylko Operacja na transponowanie. Więc mówię wziąć transpozycji macierz, pomnożyć przez macierz Sam. I wtedy to będzie powróci do was kolejne 3 o 3 macierzy projekcji Produkt, czego chcesz. I tak to było matrycy. Oto, co się nazywa ramka danych. Ramka danych można myśleć jako matrycy, ale w każdej kolumnie sam będzie innego typu. Więc co jest naprawdę fajne temat danych klatek, że w samej analizy danych, będziesz mieć to wszystko danych heterogenicznych i to wszystko naprawdę brudnych rzeczy, gdzie każda z kolumn same mogą być różnych typów. Więc mówię stworzyć ramka danych, czy ints od 1 do 3, a następnie również wektor znaków. Więc mogę indeksu przez Każdy z tych kolumn i wtedy będę miał same wartości. I można też zrobić jakiś operacji na ramkach danych. I przez większość czasu, gdy jesteś robi analizę danych lub jakąś z wyprzedzającym, będziesz pracy z tych strukturach gdzie każda kolumna będzie być innego typu. Wreszcie, więc są to w zasadzie tylko cztery podstawowe obiekty w liście R. po prostu zebrać wszelkie inne obiekty chcesz. Tak będzie zapisać to na jednego zmienne, które można łatwo uzyskać dostęp. Więc tutaj, biorę listę. Mówię rzeczy równa 3. Więc mam zamiar mieć jeden element lista i to się nazywa rzeczy, a to będzie mieć wartość 3. Mogę również utworzyć macierz. Tak więc wynosi od 1 do 4 i końcowego rzędu jest równa 2, w 2 od 2 matrycy. Również na liście i to się nazywa mat. moreStuff, ciąg znaków, a jeszcze inna lista sama w sobie. Więc to jest lista, która 5 i niedźwiedzia. Tak więc wartość 5 i go ma ciąg znaków niedźwiedzia i to jest lista wewnątrz listy. Więc można mieć te rekurencyjne rzeczy gdzie masz another-- A wpisz w ramach typu. Podobnie więc, można mieć matrycę w innej matrycy i tak dalej. A lista jest po prostu dobry sposób zbierania i agregowania wszystkie te różne obiekty. I w końcu, tutaj jest po prostu pomóc w przypadku to właśnie przeszedł bardzo szybko. Tak więc w każdej chwili jesteś zdezorientowany o jakiejś funkcji, można zrobić pomocy tej funkcji. Więc można zrobić pomocy macierzy lub macierz znak zapytania. Oraz pomoc i znak zapytania są po prostu skrót do tej samej rzeczy więc są aliasy. lm jest funkcja po prostu robi model liniowy. Ale jeśli po prostu nie mają pojęcia, w jaki sposób Prace można po prostu zrobić pomocy lm i że dam ci trochę Rodzaj dokumentacji, wygląda trochę jak Strona człowiek w Uniksie, gdzie masz krótki opis tego, co tak, to jakie są jego argumenty są, co to zwraca, i tylko wskazówki, jak z niego korzystać, a niektóre przykłady, jak również. Więc pozwól mi iść do przodu i pokaż niektóre demo za pomocą R. OK. Poszedłem więc na bardzo szybko tylko dane struktury i jakiś op-- niektórych operacji. Oto niektóre funkcje. Więc jestem po prostu w celu zdefiniowania funkcji. Więc jestem również za pomocą Operator o przydział, a następnie mówię zadeklarować ją jako funkcję. I to ma wartość x. Więc to jest jakaś wartość ma i mam zamiar wrócić x siebie. Więc to jest funkcja tożsamości. A co jest fajnego w tym w porównaniu z innymi językami a drugi na niskim poziomie Języki to, że x może być dowolnego typu samego i będzie to powrót tego typu. Więc może imagine-- więc niech ja po prostu uruchomić to szybko. Przepraszam. Więc jedna rzecz, należy również wspomnieć, jest to, że ten edytor używam nazywa rstudio. To jest to, co się nazywa IDE. I jedna rzecz, która jest naprawdę miło o tym jest to, że zawiera wiele rzeczy, które chcę zrobić sama w R po prostu bardzo intuicyjnie. Więc tutaj jest konsola tłumacza. Podobnie więc, można również uzyskać w tym Konsola surowe prostu wykonując R. kapitału I to jest dokładnie to, samo, jak w konsoli. Więc może po prostu zrobić id funkcji x, x, x. I then-- a następnie, że będzie dobrze sam. Więc rstudio jest wielki ponieważ posiada konsolę. Posiada również dokumenty chcesz pracować na. I to ma zmienne że można zobaczyć w środowisku. A potem, jeśli masz zrobić działek, a następnie ci może po prostu zobaczyć go tutaj, w przeciwieństwie do zarządzania, wszystkie te różne okna przez nich samych. I rzeczywiście osobiście używać Vima, ale poczuć się jak rstudio jest doskonała tylko uzyskania dobry pomysł jak można wykorzystać R. Zazwyczaj kiedy starasz się nauczyć się nowego zadania, nie chcesz, aby obsłużyć zbyt wiele rzeczy na raz. Więc R jest tylko very-- rstudio Jest to bardzo dobry sposób uczenia R bez konieczności zajmowania wszystkie te inne rzeczy. Więc biegnę id komentarzy. Zwraca To cześć. id 123. Oto wektor liczb całkowitych. Więc podobnie, ponieważ można podejmować jakieś wartości, możesz zrobić powrocie id x tak zwraca 1234 i 5. I niech mi tylko pokazać, że jest to faktycznie całkowitą. I podobnie, jeśli nie klasę id x, to będzie liczbą całkowitą. A potem, można również porównać dwa i to prawda. Jestem więc sprawdzenie, czy identyfikator x równa jest równa x i zawiadomienia to, że daje dwa Trues. Więc to nie mówi, są dwa obiekty identyczne, a każdy z zapisów w ciągu wektory identyczne. Oto bounded.compare. Więc to jest nieco bardziej skomplikowana w tym, że ma jeśli warunek i inni a następnie trzeba dwojga argumenty na raz. Tak więc x jest innego typu. I mówię to, Drugi argument jest. To może być cokolwiek, jak również. Ale domyślnie, to zajmie 5, jeśli nie podasz nic. Więc mam zamiar powiedzieć, jeśli x jest większe niż. Więc jeśli nie podasz, to mówi, że jeśli x jest większy niż 5, potem mam zamiar wrócić PRAWDA. innego, mam zamiar wrócić FAŁSZ. Więc pozwól mi iść do przodu i określenie tego. A teraz mam zamiar uruchomić bounded.compare 3. Tak mówi się 3 mniej than-- jest większa niż 3 5. Nie, to nie jest tak FAŁSZ. I bounded.compare 3 i zamierzam porównać go za pomocą równa 2. Więc teraz mówię tak, teraz ja chcą być coś innego. Więc mam zamiar powiedzieć, powinny być dwa. Mogę albo zrobić tego rodzaju Zapis lub mówię równa 2. To jest bardziej czytelny na tym, że kiedy jesteś patrząc na naprawdę te skomplikowane funkcje, które podjąć i to wielokrotnego arguments-- może być tylko, że dziesiątki oftentimes-- równa 2 jest bardziej czytelny dla Ci więc, że później w przyszłości będziesz wiedzieć, co robisz. Więc w tym przypadku, jestem powiedzenie 3 większy niż 2. Tak to jest. I podobnie, może po prostu usunąć to i powiedzieć, jest większa niż 2 3 gdzie wynosi 2. I to jest również prawdą. Tak? PUBLICZNOŚCI: Czy ty wykonywanie linia po linii? DUSTIN TRAN: Tak, jestem. Więc to, co robię tutaj jest biorąc ten tekst document-- i co to wielki temat rstudio jest to, że Mogę tylko uruchomić short-- klawisz skrótu. Więc robię sterowania-Enter. A potem zabieram linia w dokumencie tekstowym a następnie umieszczenie w konsoli. Więc mówię, bounded.compare i robię Control-X. Więc może po prostu nie działają również tutaj. A potem, że wezmę linii, a następnie umieścić go tutaj. I wtedy podobnie, mogę działają tutaj. I to będzie po prostu zachować definiowania linie do konsoli tak. A jeśli również zauważyć kręcone szelki są tam podobnie jak w składni C. X-- jeśli jeśli warunek jest również zamiar użyć nawiasów, a następnie możesz użyć innego. Kolejnym z nich jest inny, jeśli. Więc to będzie x wynosi równa, na przykład. A potem będę coś tu wrócić. Zauważ, że istnieją dwa różne rzeczy tutaj, że się dzieje. Jednym z nich jest, że tu jestem, określając Zwraca wartość PRAWDA. Tutaj Mówię tylko x. Więc R będzie zazwyczaj domyślnie przyjąć ostatnią arguments-- lub podjąć ostatnią linię kodu, i to będzie, co to wrócił. Więc to same coś jak robi powrotu x. I po prostu pokazać. A potem, to będzie działać tak po prostu. Więc pozwól mi kontynuować ten. Więc else if. I naprawdę, mogę wrócić coś, chciałbym. Tak więc nie trzeba nawet powrotne Boolean cały czas, Może po prostu coś innego powrócić. Więc mogę zrobić niedźwiedzia powrotu. Więc jeśli x równa jest równa, to będzie powrót misia. W przeciwnym razie, to się zwróci TRUE. Mogę też zrobić wektor czy naprawdę coś. I zwykle w statycznie Języki na maszynie, trzeba by określić typ tutaj. I zauważ, że to może być po prostu nic. I R jest na tyle inteligentny, że to po prostu to zrobić i będzie dobrze. Więc pozwól, że określenie tego. Unexpected-- och przepraszam. Powinno tu być nawias klamrowy. OK. Cool. Dobrze. Teraz porównajmy 3 i wynosi 3. Tak powinno return-- yeah-- niedźwiedzia wartości. Więc teraz bardziej ogólnego, jest to, jak co z innymi strukturami danych. Więc trzeba tę funkcję. To będzie działać na każdym rodzaju wartości jak 3 lub numeryczne, innymi słowy, podwójne. Ale to, co o czymś takim wektorze. Więc co się dzieje, jeśli do-- więc jestem zamierza przypisać val do, powiedzmy, 4 do 6. Więc jeśli wrócę to, to jest wektor z 4, 5, 6. Teraz zobaczmy, co się stanie, jeśli to zrobię bounded.compare val. Więc to jest zamiar dać 15 1251. Więc innymi słowy, to mówi jeśli spojrzeć na tego warunku tak mówi x jest mniejsza niż lub czegoś. Więc to jest trochę mylące, bo teraz po prostu nie wiem, co się dzieje. Sądzę więc, że jedną rzecz, która jest naprawdę dobrze tylko próbuje debug jest to, że można po prostu zrobić val jest większa ni i zobaczyć, co się tam dzieje. Więc val-- jest domyślnie 5 tak Zróbmy Val większy niż 5. Więc to jest wektor false false PRAWDA. Więc teraz, kiedy patrzysz na tego, to będzie powiedzieć, czy, i wtedy to będzie ci to dać jest wektorem false false PRAWDA. Więc kiedy przechodzą to na R, R nie ma pojęcia, co robisz. Dlatego, że spodziewa się, jeden singiel Wartość, która jest logiczna, a teraz dajesz mu wektor logicznych. Więc domyślnie R jest po prostu powiedzieć, co do cholery, Mam zamiar założyć, że jesteś zamiar wziąć pierwszy element tutaj. Więc mam zamiar say-- idę przyjąć, że jest to FAŁSZ. Tak to się mówi Nie, to nie jest w porządku. Podobnie, to będzie być równa równa val. Nie, przykro 5. I to też będzie fałszywe, jak również. Więc to będzie, że nie, To nieprawda, jak również tak, że to powróci ten ostatni. Więc to jest albo dobre albo złe rzeczy, w zależności od sposobu go zobaczyć. Bo gdy jesteś tworzenia tych funkcji, w rzeczywistości nie wiedzą, co się dzieje. Więc czasami, że chcesz błąd, a może chcesz po prostu ostrzeżenie. W tym przypadku, R nie zrobić. Więc to jest naprawdę do Ci, co opiera się myślisz, że język powinien zrobić w tym przypadku jeśli przekażemy wektora logicznych kiedy robisz, jeśli stanie. Więc powiedzmy, że masz oryginalny jednym z, jeśli inny TRUE i jesteś powróci FAŁSZ. Tak więc jednym ze sposobów abstrahowania to znaczy ja nie trzeba nawet tego warunku rzeczy. Inną rzeczą, jaką mogę zrobić, to po prostu powrót samych wartości. Tak więc, jeśli zauważy, jeśli Ciebie Czy Val jest większa niż 5, to będzie powrót wektor false false PRAWDA. Być może to jest to, czego chcą za bounded.compare. Chcesz zwrócić wektor logicznych gdzie porównuje każdej wartości do siebie. Więc może po prostu nie bounded.compare Funkcja x, wynosi 5. I wtedy zamiast robić tego, czy stan inny, Idę do powrotu x jest większe niż 5. Więc jeśli to prawda, to to się zwróci TRUE. A jeśli nie, to powróci FAŁSZ. I to będzie pracować dla każda z tych struktur. Więc mogę bounded.compare c 1 6 lub 9 i mam zamiar powiedzieć, równa 6, na przykład. I wtedy to będzie daje prawo Boolean Wektor, że jesteś projektowania. To są tylko funkcje a teraz niech mi tylko pokazać kilka interaktywne wizualizacje. Nie sądzę, że rzeczywiście mają Wi-Fi tutaj tak powiem po prostu iść do przodu i pominąć ten jeden chyba. Ale jedna rzecz, która jest cool jest jednak, że jeśli tylko chcemy przetestować kilka różne komendy danych, istnieje kilka różnych zestawów danych które są już fabrycznie w R. Tak więc jednym z nich jest zwany zestaw danych tęczówki. Jest to jeden z najbardziej znanych te w uczeniu maszynowym. Będziesz zazwyczaj po prostu zrobić jakąś przypadki testowe, aby sprawdzić, czy kod działa. Więc po prostu sprawdzić, co tęczówka. Więc to, co się dzieje jako ramka danych. A to niby długo, ponieważ Ja po prostu wydrukować tęczówkę. To drukowanie całą rzecz. Więc to ma te wszystkie różne nazwy. Więc tęczówka kolekcji różnych kwiatów. W tym przypadku, to mówi Ci gatunki nim, wszystkich tych różnych szerokościach Długości Sepal i płatka. I tak zazwyczaj, gdy chcesz wydrukować tęczówki, na przykład, że nie chcesz go mieć to wszystko dlatego, że może przejąć cała konsola. Więc jedna rzecz, która jest naprawdę miło jest funkcja głowy. Więc jeśli po prostu zrobić głowę tęczówki, to daje pierwsze pięć rzędów lub sześciu myślę. A potem jak ci, można po prostu określić tutaj. Więc 20-- to daje Ci pierwsi 20 wierszy. I rzeczywiście było trochę zaskoczony, że ten dał mi sześć, więc pozwól mi iść do przodu i sprawdzić iris-- lub głowy, przepraszam. A tutaj to daje Ci dokumentację z tego, co robi szef wartość. Tak zwraca pierwszy lub ostatni obiektu. A potem będę spojrzeć na domyślne. A potem mówi domyślną Metoda głowy x i n wynosi 6L. Więc ta zwraca pierwsze sześć elementów. I podobnie, jeśli zauważy się tutaj, nie trzeba określać n wynosi 6. Domyślnie używa sześć, tak myślę. A potem, jeśli chcę, aby określić pewne wartości, to mogę zobaczyć, że dobrze. Tak, że jest kilka prostych poleceń i tu jest inny, że to just-- dobrze, I can-- to jest rzeczywiście nieco bardziej skomplikowane, ale będzie to po prostu wziąć klasę każdej kolumny zestawu danych tęczówki. Więc będzie to pokazuje, co każdy z nich Kolumny są pod względem ich typów. Tak Długość sepal jest numeryczne, Szerokość sepal jest numeryczne. Wszystkie te wartości są tylko numeryczny bo można powiedzieć z tych danych Są to struktury wszystko będzie numeryczne. Gatunek i kolumny będzie czynnikiem. Tak normalnie, można by pomyśleć, że to jest jak łańcuch znaków. Ale jeśli po prostu zrobić irisSpecies, i mam zamiar zrobić głowę 5, i to będzie drukować z pierwszych pięciu wartości. I wtedy zauważył to poziomy. Więc to jest saying-- R jest sposobem na posiadania zmiennych kategorycznych. Zamiast więc mając ciągi znaków, ma poziomy określające które z tych rzeczy. Więc powiedzmy irisSpecies 1. Więc to, co chcesz zrobić, o to, że jestem podzbiorów tej kolumnie gatunków. Więc to ma Gatunek i kolumny indeksy, aby zdobyć pierwszy element. Tak to powinno dać setosa. I to daje również poziomy tutaj. Więc możesz także porównać to do Setosa znaków i to nie będzie PRAWDA, ponieważ jednym jest innego typu niż inne. Albo Myślę, że to prawda, ponieważ R jest bardziej inteligentny niż ten. I wygląda na to, a następnie mówi, może to jest to, co chcesz. Więc to będzie powiedzieć, charakter Ciąg setosa jest taki sam, jak ten. I wtedy podobnie, można również po prostu chwyć je jak tak dalej. Tak, że to tylko jakiś szybkie komendy do zbioru danych. Więc oto kilka eksploracji danych. Więc to jest trochę więcej zaangażowany w analizie danych. I jest pobierana z kilku Bootcamp w badania w Berkeley. Więc biblioteki zagranicznej. Więc idę, aby załadować biblioteka, która się nazywa zagranicznych. Więc to ma dać mi read.dta więc zakładać, że mam ten zestaw danych. Ta jest przechowywana w prąd katalog mojej konsoli pracy. Więc po prostu zobaczyć, co katalog roboczy jest. Tak tu jest mój katalog roboczy. I odczytu danych dot, to rzeczą, mówi ten plik znajduje się w folderze danych to bieżący katalog roboczy. I read.dta to nie jest Polecenie domyślne. Myślę, że to się już załadowany. Romantyk zakłada załadowałem to na już. Ale tak read.dta nie będzie za polecenie domyślne. I dlatego będziesz mieć załadować w tej bibliotece package-- ten pakiet nazywa zagranicznych. A jeśli nie masz Pakiet, myślę, że obcych jest jednym z wbudowanych nich. W przeciwnym razie, można również zrobić install.packages i to będzie zainstalować pakiet. A to daje R. Uh, nie. I wtedy ja po prostu się zatrzymać to dlatego, że mam już to. Ale to, co naprawdę miło o R jest to, że do zarządzania pakietami System jest bardzo elegancki. Bo to wszystko przechowujesz bardzo ładnie dla Ciebie. Więc w tym przypadku, to będzie do przechowywania to się, jak sądzę, biblioteka ta tutaj. Więc kiedy tylko chcesz instalacji nowych pakietów, to tak samo proste, jak robi install.packages i R będą zarządzać pakiety dla Ciebie. Więc nie musisz coś zrobić Python, gdzie masz pakiet zewnętrzny menedżerowie jak papier Anakonda, gdzie jesteś doing-- zainstalowaniu pakiety poza Pythonie a następnie spróbuj uruchomić je samodzielnie. Więc to jest naprawdę dobry sposób. I install.packages wymaga Internetu. Zajmuje go z serwera oraz repozytorium, które zbiera wszystkie Pakiety nazywa CRAN. I można określić, który rodzaj lustra chcesz pobrać pakiety. Więc biorę ten zestaw danych. Czytam go przy użyciu tej funkcji. Więc pozwól mi iść do przodu i zrobić. Więc załóżmy, że masz ten zestaw danych i masz absolutnie nie wiem co to jest. I to rzeczywiście wyjdzie dość często w przemyśle gdzie po prostu trzeba je tony i tony brudnych rzeczy i są one niezwykle bez etykiety. Więc mam to Zbiór danych i nie wiem co to jest, więc jestem pokazując, aby to sprawdzić. Więc mam zamiar zrobić najpierw głową. Więc sprawdzić pierwsze sześć kolumny, co ten zestaw danych jest. Więc to jest stan, pres04, a następnie te wszystkie różne rodzaj kolumn. I co ciekawe tu, jak sądzę, jest to, że Ciebie by przypuszczać, że to wygląda jak jakiś wyborów. I chyba tylko z patrząc na pliku nazwa ta jest pewnego rodzaju kolekcji danych dotyczących kandydatów lub wyborców którzy głosowali na poszczególnych prezydentów lub kandydatów prezydenta w wyborach w 2004 roku. Więc o wartości 1, 2 więc jeden sposób przechowywania kandydaci prezydent są ich nazwy. W tym przypadku wygląda na to, są wartości tylko całkowite. Więc roku 2004, to był Bush kontra Kerry wierzę. A teraz, powiedzmy, że po prostu nie wiem czy 1 odpowiada Bush lub 2 odpowiada Kerry lub i tak dalej, i tak dalej, prawda? I to jest, po prostu do mnie, dość powszechny problem. Więc co można zrobić w tym przypadku? Warto więc sprawdzić wszystkie te inne rzeczy. Państwo, jestem przy założeniu tego pochodzą z różnych państw. partyid dochody. Spójrzmy na partyid. Więc może jedno można zrobić, to patrzymy na siebie uwag które mają partyid z Republikańskiej czy demokrata czy coś. Więc po prostu patrzeć na to, co partyid jest. Więc mam zamiar podjąć dat i idę zrobić, to znak dolara Operator że zrobiłem wcześniej i to będzie podzbiór tej kolumny. A potem mam zamiar udać się to w 20, żeby zobaczyć, jak to wygląda. Więc to jest tylko kilka agencji krajowych. Tak więc, innymi słowy, trzeba brakuje danych na temat tych facetów. Ale można zauważyć również w tym dat partyid jest czynnikiem więc to daje różne kategorie. Tak więc, innymi słowy, może partyid Demokrata, republikanin, Niezależny, lub coś innego. Więc idź i niech sprawdzić, które z nich is-- och, OK. Więc mam zamiar podzbiór do partyid a następnie spójrz na te, które są Demokrata, na przykład. To się daje wartość logiczną, Ogromny Boolean z Trues i FALSEs. A teraz załóżmy, że chcę do podzbioru tych facetów. Więc to zajmie moje DAT i podzbiór rzecz tego obserwacje mają partyid równych równa demokrata. I to jest dość długi, bo jest tak wiele z nich. Więc teraz, mam zamiar udać się to w 20. I, jak można zauważyć, równa równych jest interesująca, że ​​jesteś already-- jesteś również w tym NAS. Więc w tym przypadku, nadal nie można uzyskać wszelkie informacje, bo teraz masz NAS i po prostu chcesz zobaczyć, które z Obserwacja odpowiadają Demokratów i nie brakuje tych samych wartości. Więc w jaki sposób pozbyć się tych agencji krajowych? Więc tutaj jestem tylko za pomocą przycisku na moim kursor, a następnie mówiąc poruszania się. I to tutaj jestem po prostu powiedzieć is.na datpartyid. Więc to i i podejmie dwa różne wektory logiczne i powiedzieć, że będzie PRAWDA i FAŁSZ na przykład. Więc to będzie zrobić ten składnik mądry. Więc mówię zabiorą ramka danych, podzbiór do tych, które odpowiadają demokrata, i usuń któryś z nich, które nie są na. Więc to will-- powinny dać ci coś. Zobaczmy is.na. Spróbujmy is.na datpartyid. I to powinno dać you-- sorry-- tylko logiczną wektor. A potem, bo to tak długo, Idę do podzbioru do 20. OK. Tak to powinno działać. A ten będzie również Trues. Ach, tak, mój błąd jest to, że I'm-- I C ++ i używać zamiennie, więc R się ten błąd cały czas. I operator jest faktycznie, który chcesz. Nie chcesz używać dwóch znaków handlowego, tylko jednym. OK. Zobaczmy więc. Więc subsetted się partyid gdzie jesteś demokratą i nie brakuje wartości. A teraz spójrzmy na które z nich są głosowali. Tak więc wydaje się, że najbardziej z nich głosowało na 1. Więc mam zamiar iść do przodu i powiedzieć, że jest Kerry. I podobnie, można również udać się do Republikanów i miejmy nadzieję, powinno to dać 2. To tylko kilka różnych kolumn. I rzeczywiście, to dwa. Więc partyid wszystkich republikanów, większość z nich głosują na 2. Tak więc wydaje się, po prostu patrząc na to, Republikańska będzie very-- lub partyid będzie bardzo ważnym czynnikiem w określaniu które kandydat oni zamierza głosować. I jest to oczywiście prawda, w ogóle. I to pasuje do Intuicja, oczywiście. Tak więc wydaje się, że jestem kończy się czas, więc pozwól mi tylko powinny iść do przodu i pokazać kilka szybkich zdjęć. Więc tutaj jest coś, co jest lekko bardziej skomplikowane z wizualizacją. A więc w tym przypadku jest bardzo Prosta analiza tylko sprawdzam, co prezes '04 jest. Więc w tym przypadku, powiedzmy, chciał odpowiedzieć na to pytanie. Więc załóżmy, że chciał wiedzieć głosowania Zachowanie w wyborach prezydenta 2004 i jak to zależy od rasy. Więc nie tylko chcesz zobacz zachowanie głosowania, ale chcesz podzbiorem każdego rasa i rodzaj podsumowania tego. I można tylko powiedzieć tego złożonego zapisu że jest to rodzaj coraz mgliste. Tak więc jednym z bardziej zaawansowanych badań pakiety to też rodzaj ostatnie nazywa dplyr. Więc to jest ta właśnie tutaj. I ggg-- ggplot2 jest po prostu ładny sposób robi lepsze wizualizacje niż wbudowany w jednym. Więc idę do załadowania te dwie biblioteki. A potem, mam zamiar iść dalej i uruchomić to polecenie. Możesz po prostu traktują to jako czarna skrzynka. Co się dzieje, jest to, że tej rury Operator przechodzi w tym argumencie się tutaj. Więc mówię grupę, dat rasy, a następnie prezesem 04. A potem, przez te wszystkie inne polecenia blokujemy i podsumowujący gdzie robię liczyć i to ja jestem wykreślenie go tutaj. OK, fajnie. Więc śmiało i zobaczyć, jak to wygląda. Więc co tu się dzieje jest to, że po prostu wykreślić każdej z ras, a następnie które z nich są głosowali. A te dwa różne Wartości odpowiadają 2 i 1. Jeśli chcesz być bardziej Elegancki, można również wystarczy wskazać, że 2 jest Kerry-- lub 2 Bush, a następnie 1 Kerry. I można również że w swojej legendy. I można również podzielić te wykresy słupkowe. Bo jedno jest że, jeśli zauważysz, nie jest to bardzo proste do określenia która z tych dwóch wartości jest większa. Więc jedna rzecz, którą chcesz zrobić, to ten niebieski obszar i po prostu przenieść go tutaj tak Ciebie Można porównać te dwa obok siebie. I myślę, że to coś, czego nie mają czasu, aby zrobić już teraz, ale to jest bardzo łatwe do zrobienia. Możesz po prostu zajrzeć do strony man z ggplot. Więc może po prostu nie ggplot jak że i czytać na tej stronie podręcznika. Więc niech mi tylko szybko pokazać kilka fajnych rzeczy. Idziemy dalej i przejść to-- tylko Zastosowanie uczenia maszynowego. Więc powiedzmy, że mamy te trzy opakowaniach, tak mam zamiar załadować je w. Więc to po prostu wypisuje niektóre Informacje po I załadowany do rzeczy. Więc mówię to read.csv, Ten zestaw danych, a teraz Mam zamiar iść do przodu i patrzeć i zobaczyć, co jest w środku zbioru danych. Więc pierwsze 20 obserwacji. Więc mam tylko x1, x2, i Y. Tak więc Wydaje się, jak kilka tych wartości Może są w zakresie od 20 do 80 lub tak. A potem podobnie dla X2, a następnie Y to wydaje się, że etykiety 0 i 1. Aby to sprawdzić, mogę po prostu zrobić X1 podsumowanie danych. A potem podobnie dla te wszystkie inne kolumny. Więc podsumowanie jest szybki sposób po prostu pokazując szybkich wartości. Och, przepraszam. Ten powinien być Y. A więc w tym przypadku, wydaje quantiles, mediany, maxes również. W tym przypadku, dataY można zobaczyć że to tylko będzie 0 i 1. Również średnia mówi 0.6, po prostu oznacza, że ​​to Wydaje się, że mam więcej niż 1s 0s. Więc pozwól mi iść do przodu i pokaż Ci, jak to wygląda. Więc jestem po prostu wykreślić ten. Zobaczmy, jak to wyjaśnić. Och OK. OK. Tak to jest, jak to wygląda. Tak więc wydaje się, że żółcie I określonych jako 0, a następnie czerwony I określono jako 1s. Więc wygląda na to, etykieta i jej punkty Wygląda na to, że chciałeś tylko niektóre rodzaj grupowania na ten temat. I niech mi tylko iść do przodu i pokaż Ci niektóre z tych funkcji wbudowanych. Więc tutaj jest lm. Więc to jest po prostu staramy aby dopasować linię do tego. Więc co jest najlepszym sposobem że mogę zmieścić linii takich że będzie to najlepiej rozdzielić tego rodzaju klastrów. A najlepiej, można po prostu zobaczyć że po prostu uruchomić wszystkie te polecenia a następnie, zamierzam dalej i dodać linię. Tak więc wydaje się, że najlepszym odgadnięcia. To biorąc najlepszy, który minimalizuje Błąd próbuje dopasować tę linię. Oczywiście, to wygląda na rodzaj dobre, ale to nie jest najlepszy. I modele liniowe, w Ogólnie rzecz biorąc, będą naprawdę wielki dla teorii i właśnie rodzaj fundamentów budowlanych maszyny uczenia się. Jednak w praktyce, będziesz chcesz zrobić coś bardziej ogólnego. Więc może po prostu spróbuj uruchomić coś, co nazywa się sieci neuronowej. Te rzeczy są coraz bardziej powszechne. I po prostu działa fantastycznie dla dużych zbiorów danych. Więc w tym przypadku, tylko have-- niech see-- mamy nrow. Więc nrow jest tylko, że liczbę wierszy. Więc w tym przypadku, że masz 100 uwag. Więc pozwól mi iść do przodu i dokonać sieci neuronowej. Więc to jest naprawdę ładne bo mogę tylko powiedzieć nnet i jestem cofa Y. Y tak, że kolumny. A potem cofa go na dwa pozostałe zmienne. Więc to jest krótsza Zapis dla X1 i X2. Więc idź naprzód i uruchomić to. Och, przepraszam. Trzeba uruchomić te wszystkie rzeczy. I to jest właśnie drukowania notacji do tego, jak szybko to szybko czy nie konwergentnych. Wygląda więc na to, że nie są zbieżne. Więc pozwól mi iść do przodu i do druku się, jak to wygląda. Zobacz tutaj jest obraz i tu jest Kontur pokazując, jak dobrze pasuje. I to jest just-- widać to, że jest to bardzo, bardzo ładne. To może być nawet przeuczenia, ale można też Wyjaśniając to z innymi Techniki takie jak krzyżowego. A te są wbudowane w R. I niech mi tylko pokazać, Maszyna wektorów nośnych. Jest to kolejny bardzo powszechne technika uczenia maszynowego. Jest to bardzo podobne do modelu liniowej, lecz używa tego, co się nazywa metoda jądra. I zobaczymy, jak dobrze, że jest. Więc ten jest bardzo podobny do tego, jak oraz sieć neuronowa wykonuje, ale jest znacznie bardziej płynny. I to jest na off z what-- jak działają SVMs. Więc jest to tylko bardzo krótki przegląd niektórych z wbudowanych funkcji możesz zrobić a także niektóre z eksploracji danych. Pozwólcie mi iść do przodu i wrócić do zjeżdżalni. Tak oczywiście, jest nie bardzo obszerny. I to jest naprawdę tylko teaser pokazując, co naprawdę można zrobić w R. Więc gdybyś tak jak Aby dowiedzieć się więcej, tutaj jest kilka różnych zasobów. Więc jeśli jesteś lubiący podręczników lub jesteś po prostu lubią czytać rzeczy w sieci, to jest fantastyczne jeden po Hadley Wickham, który również stworzył wszystko naprawdę fajne pakiety. Jeśli lubi filmy, a następnie Berkeley ma niesamowite bootcamp to several--, że trochę długo. I będzie to nauczy cię prawie wszystko co chcesz wiedzieć o R. I podobnie, nie Codeacademy i wszystko to inny rodzaj interaktywnych stron internetowych. Są one również coraz common-- bardziej powszechne. Więc to jest bardzo podobne do Codeacademy. I wreszcie, jeśli tylko chcą Wspólnotę i pomoc, to banda rzeczy można przejść. Oczywiście, nadal używać list, po prostu jak prawie każdy inny Społeczność język programowania. I #rstats, jest naszej społeczności Twitter. To rzeczywiście dość powszechne. A potem użytkownika! Jest po prostu nasza konferencja. A potem, oczywiście, można wykorzystać wszystkie te inne rzeczy, Q & A, jak przepełnienie stosu, Google, a następnie GitHub. Ponieważ większość z tych pakietów, i wiele społeczności będzie wokół rozwoju Kod ponieważ jest open source. I to tylko naprawdę ładne na GitHub. I wreszcie, możesz skontaktować się ze mną, jeśli po prostu masz jakieś krótkie pytania. Więc możesz mnie znaleźć na Twitterze tutaj moja strona internetowa, i po prostu mój e-mail. Więc mam nadzieję, że był something-- tylko krótki zwiastun czego R jest naprawdę zdolny. I miejmy nadzieję, że po prostu sprawdzić te trzy linki i zobaczyć, co można zrobić więcej. I myślę, że to właśnie o nim. Dzięki. [APPLAUSE]