>> [Jouer de la musique]
DUSTIN TRAN: Salut.
Dustin de mon nom.
Donc, je vais présenter Analyse des données dans l'arrêt R.
Juste un peu de moi.
Je suis actuellement étudiant diplômé en les sciences de l'ingénieur et appliquées.
Je étudie l'intersection de l'apprentissage automatique et les statistiques
donc l'analyse des données en R est vraiment fondamentale à ce
Je fais sur une base quotidienne.
>> Et R représente en particulier bon pour l'analyse des données
parce que ce est très bon pour le prototypage.
Et généralement, quand vous faites une sorte l'analyse des données, un grand nombre de problèmes
vont cognitive.
Et si vous voulez juste pour avoir certains vraiment bonne langue
est juste bon pour faire des fonctions intégrées, par opposition
d'avoir à traiter avec les choses faibles de niveau.
Donc, au début, je vais juste d'introduire ce qui est R, pourquoi
vous voulez l'utiliser, et puis allez sur dans quelque démonstration,
et juste à partir de là.
>> Alors, quelle est R?
R est simplement une langue développée pour le calcul statistique
et la visualisation.
Donc ce que cela signifie, ce est que ce est un très excellent langage
pour toute sorte de chose qui traite de l'incertitude ou la visualisation de données.
Donc, vous avez tous ces distributions de probabilité.
Il va y avoir des des fonctions intégrées.
Vous aurez également excellente traçant paquets.
>> Python est un autre concurrent langue pour les données.
Et une chose que je trouve que R est beaucoup mieux à la visualisation est.
Donc, ce que vous verrez dans la démo que bien, ce est juste un langage très intuitive
qui fonctionne extrêmement bien.
Il est également gratuit et open source, comme est tout autre bon langage, je suppose.
>> Et voici, un tas de tout mots-clés jetés à vous.
Ce est dynamique, ce qui signifie si vous avez un type spécifique attribué à un objet
qu'il ne vous reste plus qu'à le changer à la volée.
Il est paresseux il est donc intelligent sur comment il effectue des calculs.
Fonctionnelle qui signifie qu'il peut vraiment fonctionner basé sur de fonctions afin anything--
toute sorte de manipulation vous êtes faisant, elle sera basée hors fonctions.
>> Ainsi, les opérateurs binaires, par exemple, sont des fonctions intrinsèquement juste.
Et tout ce qui vous allez faire est
va être ruissellement se fonctions.
Et puis orienté objet ainsi.
>> Voici donc un complot XKCD.
Non seulement parce que je me sens comme XKCD est fondamentale à toute sorte
de la présentation, mais parce Je me sens comme ce vraiment
martèle le point que beaucoup de la moment où vous faites une sorte de données
analyse, le problème ne est pas tellement à quelle vitesse il se exécute,
mais combien de temps ça va vous amène à programmer la tâche.
Voici donc simplement analyser si stratégie a ou b est plus efficace.
Cela va être quelque chose que vous êtes
va traiter beaucoup avec en tri des langages de bas niveau
où vous avez affaire à des défauts de seg, allocation de mémoire, initialisations,
même en faisant les fonctions intégrées.
Et ce genre de choses est tout traité très, très élégante dans R.
>> Donc, juste pour marteler ce point, le principal goulet d'étranglement
va être cognitive.
Donc, l'analyse des données est un problème très difficile.
Que vous fassiez l'apprentissage de la machine ou vous êtes
faire juste une sorte de l'exploration de données de base,
vous ne voulez pas avoir de prendre un document
puis compiler quelque chose chaque fois que vous
voulez voir ce que une colonne ressemble, ce notamment entrées dans une matrice
ressemble.
Donc, vous voulez juste pour avoir certains l'interface vraiment agréable
vous pouvez exécuter une fonction simple qui indexe à quelque
vous souhaitez et juste exécutez à partir de là.
Et vous avez besoin domaine langues spécifiques pour cela.
Et R va vraiment vous aider à définir la problème et le résoudre de cette manière.
>> Donc, voici un graphique montrant la programmation la popularité de R comme il a disparu au fil du temps.
Donc, comme vous pouvez le voir, comme 2013 ou donc ça fait sauter énormément.
Et cela a été à cause de cela grande tendance dans l'industrie de la technologie
à propos de big data.
En outre, non seulement la technologie l'industrie, mais vraiment
toute that-- de l'industrie parce beaucoup d'industries
sont sorte de fondamental pour essayer de résoudre ces problèmes.
Et généralement, vous pouvez avoir une bonne façon de mesurer ces problèmes
ou même de les définir ou les résoudre en utilisant des données.
Donc, je pense que maintenant R est le 11e langue la plus populaire sur TIOBE
et il a été de plus en plus depuis lors.
>> Alors, voici un peu plus caractéristiques de R. Il a
un nombre énorme de paquets et pour toutes ces choses différentes.
Donc, chaque fois que vous avez un certain problème, la plupart
le temps R aura cette fonction pour vous.
Donc, si vous voulez construire une sorte de machine
algorithme d'apprentissage appelé Forêt aléatoire ou les arbres de décision,
ou même essayer de prendre la moyenne des une fonction ou un de ces trucs,
R aura que.
>> Et si vous ne vous souciez optimisation, une chose qui est commune
est qu'une fois que vous avez terminé prototypage une sorte de langage de haut niveau,
vous jeter ce in-- Vous aurez juste port plus
à un langage de bas niveau.
Ce qui est bien R est qu'une fois que vous êtes prototypage fait, vous pouvez exécuter C ++,
ou Fortran, ou l'une de ces ceux de niveau inférieur directement dans R.
Donc, ce est vraiment une fonctionnalité intéressante à propos de R,
si vous vous souciez vraiment le point d'optimisation.
>> Et ce est également très bon pour les visualisations Web.
Donc D3.js, par exemple, est Je suppose un autre séminaire
que nous avons présenté aujourd'hui.
Et ce est vraiment génial pour faire des visualisations interactives.
Et D3.js suppose que vous avez une sorte de données à tracer
et R est un excellent moyen d'être en mesure de le faire l'analyse de données avant de l'exporter
vers D3.js ou même simplement de fonctionner D3.js commandes en R lui-même,
ainsi que tous ceux-ci d'autres bibliothèques ainsi.
>> Donc, ce était juste l'introduction de ce qui est R et pourquoi vous pourriez utiliser.
Donc, je espère, je ai vous a convaincu quelque chose
à propos juste essayer de voir ce que ce est.
Donc, je vais aller de l'avant et passer par certains principes de base sur les objets R
et ce que vous pouvez vraiment faire.
>> Donc, voici juste un tas de commandes mathématiques.
Alors dites you're-- vous voulez construire vous langue et vous voulez juste
d'avoir un tas de différents outils.
Toute sorte d'opération que vous pensez que vous feriez voulons, ce est à peu près va être dans l'arrêt R.
>> Voici donc 2 + 2.
Voici 2 fois pi.
R a un tas de constantes intégrées que vous utilisez fréquemment comme pi, e.
>> Et puis, voici 7 plus runif, afin runif de 1.
Ce est une fonction qui est produit une aléatoire uniforme entre 0 et 1.
Et puis il ya trois à la puissance de quatre.
Il ya des racines carrées.
>> Il ya journal.
Alors connectez fera de base exponentielle par lui-même.
Et puis, si vous spécifiez une base, puis vous pouvez faire ce que vous voulez de base.
Et puis voici quelques autres commandes.
Donc, vous avez 23 mod 2.
Ensuite, vous avez le reste.
Ensuite, vous avez scientifiques notation si vous aussi
envie de faire un peu plus et des choses plus compliquées.
>> Voici donc affectation.
Donc missions typiques R est effectuée avec une flèche
il est donc moins de puis le trait d'union.
Donc ici, je suis juste attribution 3 à la val variable.
>> Et puis je imprimer val puis il affiche trois.
Par défaut dans la R interprète, il imprimera les choses pour vous
de sorte que vous ne avez pas à spécifier imprimer un val chaque fois que vous souhaitez imprimer quelque chose.
Vous pouvez juste faire val et alors il va le faire pour vous.
>> En outre, vous pouvez utiliser égaux technique comme un opérateur d'affectation.
Il ya de légères subtilités entre l'utilisation de la flèche
opérateur et les égaux opérateur pour les affectations.
Surtout, par convention, tout le monde va juste utiliser l'opérateur de flèche.
>> Et ici, je vais confier cette notation oblique appelé une virgule six.
Cela génère un vecteur de 1 à 6.
Et cela vraiment sympa car alors vous venez d'attribuer le vecteur d'val
et qui fonctionne par lui-même.
>> Donc, ce est déjà en cours à partir d'un single-- une donnée très intuitive
la structure de seulement un double de un certain type de Type dans un vecteur
et qui permettra de recueillir tous les valeurs scalaires pour vous.
Ainsi, après allant de scalaire, vous avoir des objets R et ce est un vecteur.
Un vecteur est toute sorte de collection de même type.
Donc, voici un tas de vecteurs.
>> Donc, ce est numérique.
Numérique est la façon de dire R double.
Et donc, par défaut, toute nombre sera un double.
>> Donc si vous avez des c 1,1, 3, 5.7 négative, le c est une fonction.
Ce enchaîne tous les trois numéros dans un vecteur.
Et ce sera être-- si vous remarquez 3 par lui-même,
Normalement, il faut assumer que ce est comme un entier,
mais parce que tous les vecteurs sont de même type,
ce est un vecteur de doubles ou numérique dans ce cas.
>> rnorm est une fonction qui génère variables-- normale standard
ou des valeurs normales standard.
Et je spécifiant deux d'entre eux.
Donc je fais rnorm 2, attribuant cela à devs, et puis je suis imprimer devs.
Donc, ce ne sont que deux valeurs normales aléatoires.
>> Et puis si vous faites Ints vous vous souciez de nombres entiers.
Donc, ce est juste sur la mémoire répartition et l'épargne taille de la mémoire.
Donc, vous auriez à ajouter vos numéros de la capitale L.
>> En général, il se agit Historique de la notation R
pour quelque chose appelé entier long.
Donc, la plupart du temps, vous aurez avoir affaire avec des doubles.
Et si jamais vous le fera plus tard sur optimiser votre code,
vous pouvez simplement ajouter ces L's après ou pendant celle-ci
si vous êtes comme prémonitoire de ce vous allez faire ces variables.
>> Voici donc un vecteur de caractères.
Donc, encore une fois, je suis concaténation trois cordes cette fois.
Notez que doubles cordes et cordes simples sont les mêmes dans R.
Je ai donc Arthur et Marvin et ainsi quand je l'imprimer, chacun d'eux
allons montrer cordes doubles.
Et si vous voulez aussi inclure la chaîne double ou simple
dans vos personnages, vous pouvez soit alterner vos cordes.
>> Donc Marvin pour le second élément, ce est
vais vous show-- avoir juste cordes doubles
puis une seule chaîne si ce est alternative.
Sinon, si vous souhaitez utiliser une double opérateur de chaîne dans une double chaîne
lorsque vous déclarer, puis il suffit d'utiliser l'opérateur d'échappement.
Donc, vous faites la barre oblique inverse à double chaîne.
>> Et enfin, nous avons aussi avoir vecteurs logiques.
Donc si vrai logical-- et le faux, et ils sont
va être tout en majuscules.
Et puis, encore une fois, je suis concaténation eux et ensuite de les affecter à bools.
Donc bools va montrer vous TRUE, FALSE et TRUE.
>> Voici donc l'indexation vectorisé.
Donc, au début, je ai prends un function--
cela se appelle un sequence-- séquence de 2 à 12.
Et je vais prendre une séquence en deux.
Donc, il va faire 2, 4, 6, 8, 10 et 12.
Et puis, je suis indexation pour obtenir le troisième élément.
>> Donc, une chose à garder à l'esprit est ce que R index par à partir de 1.
Donc Vals 3 va donner vous le troisième élément.
Ce est une sorte de différent des autres langues où il commence à partir de zéro.
Donc, en C ou C ++, par exemple, vous êtes allez obtenir le quatrième élément.
>> Et voici vals 3-5.
Donc, une chose ce est vraiment cool ce est que vous
peut générer des variables temporaires à l'intérieur et puis juste les utiliser à la volée.
Voici donc 3-5.
Je suis donc générer un vecteur 3, 4 et 5, puis
Je indexation pour obtenir la troisième, quatrième et cinquième éléments.
>> Pareillement, vous pouvez abstraite ce faire juste
toute sorte d'un vecteur qui vous donne l'indexation.
Voici donc vals, puis le première, troisième et sixième éléments.
Et puis, si vous voulez faire un complément,
de sorte que vous venez de faire le signe moins par la suite et qui va
vous donner tout ce qui ne est pas le premier, troisième ou sixième élément.
Ce sera donc 4, 8 et 10.
>> Et si vous voulez obtenir encore plus avancé,
vous pouvez concaténer vecteurs booléens.
Donc, cet indice va vous donner ce vecteur booléenne de longueur 6.
Donc représentant virgule TRUE 3.
Cela répéter TRUE trois fois.
Donc, cela vous donnera une vecteur TRUE, TRUE, TRUE.
>> rep FALSE 4-- cela va vous donner un vecteur de FAUX, FAUX, FAUX, FAUX.
Et puis c va concaténer ces deux booléens ensemble.
Donc, vous allez obtenir trois Trues et puis quatre faux.
>> Alors que lorsque vous vals d'index, vous êtes aller pour obtenir le VRAI, VRAI,.
Donc cela va dire oui, Je veux que ces trois éléments.
Et puis FAUX, FAUX, FAUX, FAUX va
de dire non, je ne veux pas que ces éléments donc il ne va pas les renvoyer.
>> Et je crois qu'il ya effectivement une faute de frappe ici parce que ce est de dire la répétition TRUE 3
et répéter FALSE 4, et techniquement, vous seulement six éléments ont donc répéter FALSE,
il devrait être répétition FALSE 3.
Je pense que R est également assez intelligente telles que si vous suffit de spécifier quatre ici, puis
il sera même pas erreur sur.
Il va juste vous donner cette valeur.
Donc, il va simplement ignorer cette quatrième FALSE.
>> Voici donc l'affectation vectorisé.
Donc set.seed-- cela crée juste le semences pour nombres pseudo-aléatoires.
Je suis donc mise à la graine de 42, ce qui signifie que si je produis
trois aléatoire normale les valeurs, et puis si vous
RUN set.seed sur votre propre ordinateur en utilisant 42 la même valeur,
alors vous obtenez également le mêmes trois normales aléatoires.
>> Donc, ce est vraiment bon pour la reproductibilité.
Habituellement, lorsque vous faites une certaine type d'analyse scientifique,
vous voulez mettre la graine.
De cette façon, d'autres scientifiques pouvez juste reproduire exactement le même code que vous avez
fait parce qu'ils auront l'exacte mêmes variables aléatoires that-- ou aléatoire
valeurs que vous avez prises aussi bien.
>> Et donc l'affectation vectorisé ici est de montrer les vals 1-2.
Il faut donc les deux premiers éléments de Vals et les affecte à 0.
Et puis, vous pouvez aussi juste faire le même chose avec les booléens.
>> Donc vals ne est pas égale à cette volonté 0-- vous donner une fausse vectoriel, FALSE, TRUE
dans ce cas.
Et puis, il va dire toute de ces indices qui était vrai,
alors il va attribuer ce à 5.
Il faut donc le troisième élément ici et il assigne à 5.
>> Et ce est vraiment sympa par rapport aux langages de bas niveau
où vous devez utiliser pour les boucles de faire tout ce genre de choses vectorisé
parce que ce est très intuitif et ce est un simple one-liner.
Et ce qui est formidable à propos notation vectorisé
ce est que dans R, ceux-ci sont en quelque sorte intégré de sorte qu'ils sont presque aussi rapide
que faire dans un langage de bas niveau comme plutôt que de faire une boucle dans la R
et ayant alors qu'il fasse l'indexation dynamique elle-même.
Et ce sera plus lent que de faire ce genre de chose vectorisé
où il peut le faire en parallèle, où qu'il fait dans le filetage essentiellement.
>> Voici donc vectorisée opérations.
Je suis donc générer une valeur de 1 à 3, attribuer à cette vec1, 3 à 5, vec2,
les additionner.
Il les ajoute composante par composante, afin ce est une plus 3, 2 plus 4, et ainsi de suite.
>> vec1 fois vec2.
Ceci multiplie les deux valeurs composant sage.
Donc, ce est une fois 3, 2 fois 4, puis 3 fois 5.
>> Et puis, même, vous pouvez également faire comparisons-- comparaisons logiques.
Donc, ce est FAUX VRAI FAUX dans ce une affaire parce que ne est pas supérieur à 3,
2 ne est pas supérieur à 4.
Ce est, je suppose, une autre faute de frappe, 3 est certainement pas supérieur à 5.
Ouais.
Et ainsi vous pouvez juste faire tout ces opérations simples
parce que leur héritée parmi les classes elles-mêmes.
>> Donc, ce était juste le vecteur.
Et ce est en quelque sorte le plus fondamental R parce objet donné un vecteur,
vous pouvez construire des objets plus avancés.
>> Alors, voici une matrice.
Ce est essentiellement l'abstraction de ce qu'est une matrice elle-même.
Donc dans ce cas, il est trois différente vecteurs, où chacun est une colonne,
ou vous pouvez considérer que chacun est une rangée.
>> Je suis donc stocker une matrice de 1 à 9 puis je suis spécifiant trois rangées.
Donc 1-9 vous donnera un vecteur 1, 2, 3, 4, 5, 6, et tout le chemin à 9.
>> Une chose à garder à l'esprit est que R magasins valeurs en format colonne majeure.
Donc, en d'autres termes, quand vous voyez une à 9, il va stocker eux--
ça va être 1, 2, 3 dans la première colonne,
puis il va faire 4, 5, 6 dans la deuxième colonne,
puis 7, 8, 9 dans la troisième colonne.
>> Et voici quelques autres fonctions communes que vous pouvez utiliser.
Donc mat dim, cela vous donnera les dimensions de la matrice.
Il va vous revenir un vecteur de la dimension.
Donc dans ce cas, parce notre matrice est 3 par 3,
ça va vous donner un vecteur numérique ce est 3 3.
>> Et ici, ce est juste montrer la multiplication de matrices.
Donc, en général, si vous faites juste asterisk-- afin mat astérisque mat--
cela va être fonctionnement du composant sage-
ou ce qu'on appelle le produit de Hadamard.
Donc, il va faire chaque élément constitutif sage.
Cependant, si vous voulez matrice multiplication--
si multipliant les première fois en rangée la première colonne de la deuxième matrice
et ainsi de on-- vous pouvez utiliser cette opération pour cent.
>> Et t de tapis est juste une opération de transposition.
Je dis donc prendre la transposer dans la matrice, multiplier par la matrice
lui-même.
Et puis ça va revenir à vous un autre 3
de 3 matrice démontrant le produit que vous voudriez.
>> Et donc ce était matrice.
Voici ce que l'on appelle une trame de données.
Une trame de données que vous pouvez penser que une matrice, chaque colonne elle-même, mais
va être d'un type différent.
>> Donc, ce est vraiment cool sur les données cadres est que dans l'analyse des données lui-même,
vous allez avoir tout cela données hétérogènes et tout cela vraiment
les choses en désordre où chaque des colonnes eux-mêmes peuvent être de différents types.
Donc ici, je veux dire créer un trame de données, faire ints 1-3,
puis ont aussi un vecteur de caractères.
Donc je peux indice par le biais chacune de ces colonnes
et puis je vais chercher les valeurs elles-mêmes.
Et vous pouvez également faire une sorte des opérations sur des trames de données.
Et la plupart du temps lorsque vous êtes faire de l'analyse de données ou une sorte
de prétraitement, vous serez travailler avec ces structures de données
où chaque colonne va être d'un type différent.
>> Enfin, ce sont donc essentiellement juste les quatre objets essentiels dans Liste R.
sera simplement recueillir toute d'autres objets que vous souhaitez.
Donc, il va stocker ceci dans une variable que vous pouvez facilement accéder.
>> Donc ici, je prends une liste.
Je dis des choses est égal à 3.
Donc, je vais avoir un élément de la liste, ce qui est appelé des choses,
et il va avoir la valeur 3.
>> Je peux aussi créer une matrice.
Donc, ce est 1-4 et la ligne de fin est égal à 2, donc une matrice 2 par 2.
Également dans la liste et ce est ce qu'on appelle tapis.
moreStuff, une chaîne de caractères, et même une autre liste en soi.
>> Donc, ce est une liste qui est 5 et l'ours.
Ainsi, il a la valeur 5 et il a l'ours de chaîne de caractères
et ce est une liste dans une liste.
Ainsi, vous pouvez avoir ces choses récursifs où
vous avez un another-- entrez dans le type.
Pareillement, vous pouvez avoir une matrice dans une autre matrice et ainsi de suite.
Et la liste est juste un bon moyen de collecte et d'agrégation
tous ces différents objets.
>> Et enfin, voici tout juste aider en cas ce était simplement parti sur de très rapidement.
Donc, quand vous êtes confus d'une sorte de fonction,
vous pouvez faire de l'aide de cette fonction.
Ainsi, vous pouvez faire pour aider matrice ou une matrice de point d'interrogation.
Et l'aide et le point d'interrogation sont juste un raccourci pour la même chose
ils sont donc alias.
>> lm est une fonction qui n'a tout simplement un modèle linéaire.
Mais si vous avez juste aucune idée de la façon dont œuvres, vous pouvez juste faire aide de LM
et que vais vous donner quelques sorte de documentation
regarde un peu comme un page de manuel Unix, où
vous avez une courte description de ce il le fait, aussi ce que ses arguments sont,
ce qu'il retourne, et que des conseils sur la façon de l'utiliser, et quelques exemples ainsi.
>> Alors laissez-moi aller de l'avant et de montrer une certaine démonstration de l'utilisation de R. OK.
Alors je suis allé sur de très rapidement uniquement les données
structures et une sorte de la op-- certaines des opérations.
Voici quelques fonctions.
>> Donc ici, je vais juste définir une fonction.
Donc, je suis également en utilisant opérateur d'affectation ici,
et puis je dis déclarer comme une fonction.
Et il prend la valeur x.
Donc, ce est la valeur que vous voulez et je vais revenir x lui-même.
Donc, ce est la fonction identité.
>> Et ce qui est cool à propos de cette par rapport à d'autres langues
et le niveau faible autre langues est que x
peut être de tout type lui-même et il va revenir ce type.
Ainsi, vous pouvez imagine-- alors laissez- moi juste lance ce rapidement.
Désolé.
>> Donc, une chose que je dois aussi mentionner ce est que cet éditeur que je utilise
RStudio est appelé.
Ce est ce qu'on appelle un IDE.
Et une chose qui est vraiment sympa de cette
est qu 'il incorpore beaucoup de la choses que vous voulez faire dans R par lui-même
juste très intuitivement.
>> Donc, voici une console interprète.
Pareillement, vous pouvez aussi obtenir cette console première juste en faisant un R. de capital
Et ce est exactement le même chose que la console.
Donc, je peux juste faire id fonction x, x, x.
Et puis que alors-- sera très bien lui-même.
>> Donc RStudio est grande car il a la console.
Il a également les documents vous souhaitez exécuter.
Et puis il a certaines variables que vous pouvez voir dans les environnements.
Et puis, si vous avez faire parcelles, alors vous
peut juste voir ici, par opposition à la gestion de toutes ces différentes fenêtres
par eux-mêmes.
>> En fait, je utilise personnellement Vim, mais je se sentir comme RStudio est excellent tout
pour obtenir une bonne idée comment utiliser R. Habituellement,
lorsque vous essayez de apprendre une nouvelle tâche,
vous ne voulez pas à manipuler trop de choses à la fois.
Alors R est juste un RStudio very-- est une très bonne façon d'apprendre R
sans avoir à traiter avec toutes ces autres choses.
>> Donc ici, je suis en cours d'exécution id bonjour.
Cela renvoie bonjour.
id 123.
Voici un vecteur d'entiers.
Pareillement, parce que vous pouvez prendre toute une sorte de valeur,
vous pouvez faire revenir id de x elle retourne donc 1234 et 5.
>> Et permettez-moi de vous montrer que ce est en effet un nombre entier.
Et de même, si vous le faites classe id x, ça va être un entier.
Et puis, vous pouvez aussi comparer les deux et ce est vrai.
Je suis donc vérifier si id x x est égal à equals et préavis
qu'il vous donne deux Trues.
Donc, ce ne est pas dit sont les deux objets identiques,
mais sont chacune des entrées dans les vecteurs identiques.
>> Voici bounded.compare.
Donc, ce est un peu plus compliqué en ce qu'il présente un état autre et si
puis il faut être deux arguments à la fois.
Donc, x est de tout type.
Et je dis cela Le deuxième argument est un.
Cela peut être quelque chose d'aussi bien.
Mais par défaut, il va prendre 5 Si vous ne indiquez rien.
>> Donc ici, je vais dire si x est supérieur à un.
Donc, si je ne précise pas, il dit que si x est supérieur à 5,
alors je vais retourner TRUE.
d'autre, je vais retourner FALSE.
Alors laissez-moi aller de l'avant et de définir cela.
>> Et maintenant, je vais exécuter bounded.compare 3.
Donc, il est dit moins 3 than-- 3 est supérieur à 5.
Non, ce ne est pas si faux.
>> Et bounded.compare 3 et je vais de comparer l'aide d'un est égal à 2.
Alors maintenant, je dis oui, maintenant je veulent un être autre chose.
Donc, je vais dire un, vous devriez être deux.
>> Je peux soit faire ce genre de notation ou je dis est égal à 2.
Ce est un plus lisible en ce que lorsque vous êtes
regardant ces vraiment des fonctions compliquées que
prendre arguments-- multiple et cette peut être des dizaines oftentimes-- juste dire
A est égal à 2 est plus lisible pour vous afin que plus tard dans l'avenir
vous saurez ce que vous faites.
>> Donc dans ce cas, je suis 3 dicton est supérieur à 2.
Oui, ça l'est.
Et de même, je ne peux retirer et dire, est plus grand que 3 2
où a est égal à 2.
Et ce est également vrai.
Oui?
>> AUDIENCE: Etes-vous exécution ligne par ligne?
>> DUSTIN TRAN: Oui je suis.
Donc ce que je fais ici est prenant ce texte document--
et ce qui est formidable à propos RStudio est que Je peux juste lancer un short-- un raccourci clavier.
Donc je fais Contrôle-Entrée.
>> Et puis, je prends le ligne dans le document de texte
puis mettre dans la console.
Donc ici, je veux dire, bounded.compare et je fais Control-X.
Donc, je ne peux fonctionner ici aussi.
Et puis ça va prendre du ligne, puis mis ici.
Et puis même, je peux faire fonctionner ici.
Et puis, il va tout simplement continuer définissant les lignes dans la console comme ça.
>> Et si vous remarquez aussi le bouclés accolades sont là, tout comme dans la syntaxe de C.
x-- si la condition if est aussi va utiliser des parenthèses, puis
vous pouvez utiliser d'autre.
Un autre est d'autre si.
Donc, ce sera x est égal à un est égal, par exemple.
Et puis je vais retourner quelque chose ici.
>> Notez qu'il ya deux différents choses ici qui se passe.
La première est que ici je spécifiant renvoyer la valeur TRUE.
Ici, je dis juste x.
Alors R sera généralement par défaut prendre la dernière arguments--
ou de prendre la dernière ligne du code, et ce sera ce qu'il est retourné.
Donc ici ce est la même chose que faire return x.
>> Et juste pour vous montrer.
Et puis, il ne fonctionnera juste comme ça.
Alors permettez-moi de continuer avec cela.
>> Donc, d'autre si.
Et vraiment, je peux retourner tout ce que je aimerais.
Donc, je ne ai même pas à retour booléens tout le temps,
Je peux juste retourner autre chose.
Donc, je peux faire ours de retour.
>> Donc, si x est égal à un pied d'égalité, il va revenir ours.
Sinon, il va retourner TRUE.
Je peux aussi faire un vecteur ou vraiment quelque chose.
>> Et normalement statiquement langages typés
vous auriez à spécifier un type ici.
Et remarquez qu'il ne peut tout simplement être ne importe quoi.
Et R est assez intelligent qu'il va juste faire ceci et cela fonctionnera très bien.
>> Alors permettez-moi de définir cela.
Unexpected-- oh désolé.
Il devrait être une accolade ici.
D'ACCORD.
Cool.
Bien.
Alors maintenant, nous allons comparer 3 et a est égal à 3.
Donc, il devrait return-- Yeah l'ours de valeur.
>> Alors maintenant, une chose plus générale, ce est comme qu'en est-il d'autres structures de données.
Donc, vous avez cette fonction.
Cela va travailler sur toute sorte de la valeur comme 3 ou tout numérique,
en d'autres termes, double.
>> Mais qu'en est-il quelque chose comme un vecteur.
Donc ce qui arrive si vous do-- donc je suis va affecter val à, disons, 4-6.
Donc, si je reviens cela, ce est un vecteur de 4, 5, 6.
>> Voyons maintenant ce qui se passe si je fais bounded.compare val.
Donc, cela va vous donner 15 1251.
Donc, en d'autres termes, ce est dire si vous regardez cette condition
il dit x est inférieur qu'un ou quelque chose.
Donc, ce est un peu confus parce que maintenant
vous ne savez pas ce qui se passe.
Donc je suppose que une chose qui est vraiment bien sur juste essayer de débogage
ce est que vous pouvez juste faire val est supérieure d'un et de voir ce qui se passe là-bas.
>> Donc val-- a est par défaut de sorte 5 disons simplement Do Val supérieure à 5.
Donc, ce est un FAUX FAUX vecteur TRUE.
Alors maintenant, quand vous cherchez à cela, il va dire si,
puis il va vous donner cette est un vecteur de FAUX VRAI FAUX.
>> Ainsi, lorsque vous passez cela en R, R n'a aucune idée de ce que vous faites.
Parce qu'il se attend à un seul valeur qui est une valeur booléenne, et maintenant
vous donnant un vecteur de booléens.
Donc, par défaut, R est juste va dire ce que le diable,
Je vais supposer que vous êtes va prendre le premier élément ici.
Donc, je vais say-- je vais de supposer que ce est faux.
Donc, il va dire non, ce ne est pas juste.
>> De même, il va soit égal à un est égal val.
Non, désolé 5.
Et il va aussi être faux aussi.
Donc, il va dire non, Ce est pas vrai, si bien que ce est
va retourner ce dernier.
>> Donc, ce est soit une bonne chose ou une mauvaise chose, selon la façon dont vous l'affichez.
Parce que quand vous êtes la création de ces fonctions,
vous ne savez pas réellement ce qui se passe.
Alors parfois vous voudriez une erreur, ou peut-être vous voulez juste un avertissement.
Dans ce cas, R ne fait pas cela.
Donc, ce est vraiment à vous basé hors de ce
vous pensez que la langue devrait faire dans ce cas
si vous passez dans un vecteur de booléens quand vous faites une condition if.
>> Alors disons que vous aviez l'original une avec si quelque retourner TRUE et vous êtes
va retourner FALSE.
Donc, une façon d'abstraire ce est-à-dire que je
ne ont même pas besoin de cette chose conditionnelle.
Une autre chose que je peux faire, ce est juste retourner les valeurs elles-mêmes.
Donc, si vous remarquez, si vous do val est supérieur à 5,
cela va renvoyer une vecteur FAUX VRAI FAUX.
>> Peut-être que ce est ce que vous souhaiter pour bounded.compare.
Vous souhaitez retourner un vecteur de booléens où il compare chacune des valeurs
à eux-mêmes.
Ainsi, vous pouvez simplement ne bounded.compare fonction x, a est égal à 5.
Et puis au lieu de faire cette si la condition d'autre,
Je vais revenir x est supérieur à 5.
Donc, si ce est vrai, alors il va retourner TRUE.
Et puis, si ce ne est pas, ce est va retourner FALSE.
>> Et cela fonctionnera pour l'une de ces structures.
Donc, je peux bounded.compare c 1 6 ou 9 et puis je vais vous dire une égale 6,
par exemple.
Et puis ça va vous donner le droit booléenne
vecteur qui vous concevez.
>> Donc, ce sont juste des fonctions et maintenant laissez-moi juste
vous montrer quelques visuels interactifs.
Je ne pense pas que je ai fait Wi-Fi ici alors laissez-moi juste aller de l'avant
et sauter celui-ci je suppose.
>> Mais une chose qui est cool cependant, ce est que si vous venez
vouloir tester un tas de différentes commandes de données,
il ya un tas de différents ensembles de données qui sont déjà préchargés dans R.
Donc, l'un d'eux est appelé l'iris ensemble de données.
Ce est l'un des plus connus ceux de l'apprentissage machine.
Vous aurez généralement faites juste une sorte de cas de test pour voir si votre code se exécute.
Alors disons simplement vérifier ce que l'iris est.
>> Donc, cette chose va comme une trame de données.
Et ce est un peu longtemps, car Je viens imprimé sur l'iris.
Ce est l'impression de la chose entière.
Ainsi, il a tous ces différents noms.
Donc iris est une collection de fleurs différentes.
Dans ce cas, ce est dire présente les espèces de celui-ci,
toutes ces différentes largeurs et longueurs des sépales et les pétales.
>> Et normalement, si vous souhaitez imprimer iris,
par exemple, vous ne voulez pas avoir faire tout cela parce que cela peut prendre le relais
l'ensemble de votre console.
Donc, une chose qui est vraiment Nice est la fonction de tête.
Donc, si vous faites juste la tête iris, cela vous donnera
les cinq premières rangées, ou six, je suppose.
Et puis bien vous, peut il suffit de spécifier ici.
Donc 20-- cela donnera vous les 20 premières lignes.
Et je étais en fait assez de surprise que cette
Gave me six alors laissez-moi aller de l'avant et vérifier iris-- ou de la tête, désolé.
Et ici, il donnera vous la documentation
de ce que la tête de la valeur fait.
Donc, il renvoie le premier ou la dernière d'un objet.
Et puis je vais regarder les valeurs par défaut.
Et puis il dit que le défaut méthode tête x et n est égal à 6L.
Donc, cela renvoie les six premiers éléments.
Et même, si vous remarquez ici, je ne pas avoir à spécifier n est égal à 6.
Par défaut il utilise six, je suppose.
Et puis, si je veux spécifier un certain valeur, alors je peux voir ça aussi.
>> Donc, ce est des commandes simples et en voici une autre qui est just-- bien,
Je can-- ce est en fait un peu plus complexe,
mais cela prendra juste la classe de chaque colonne de l'ensemble de données de l'iris.
Donc, ce sera vous montrer ce que chacun de ces colonnes en fonction de leurs types.
Donc, la longueur des sépales est numérique, Largeur des sépales est numérique.
Toutes ces valeurs sont tout numérique parce que vous pouvez dire à partir de ces données
structurent ce sont tout va numérique.
>> Et la colonne Espèce va être un facteur.
Donc, normalement, on pourrait penser que ce est comme une chaîne de caractères.
Mais si vous faites juste irisSpecies, et puis je vais faire la tête 5,
et cela va imprimer les cinq premières valeurs.
>> Et puis notez ce niveau.
Donc, ce est saying-- ce est la manière de R d'avoir variables catégorielles.
Donc, au lieu de simplement ayant des chaînes de caractères,
il a des niveaux spécifiant laquelle de ces choses sont.
>> Alors disons que irisSpecies 1.
Donc, ce que vous voulez faire ici est que je suis sous-ensembles à cette colonne de l'espèce.
Donc, cela prend la colonne espèces puis
il indexe pour obtenir le premier élément.
Donc, cela devrait vous donner setosa.
Et il vous donne également des niveaux ici.
>> Ainsi, vous pouvez également comparer ceci à la setosa de caractères
et cela ne va pas pour être vrai parce que une
est d'un type différent de l'autre.
Ou je suppose que ce est vrai parce que R est plus intelligent que cela.
Et il semble à ce puis dit, ce est peut être ce que vous voulez.
Donc, il va dire le caractère setosa chaîne est le même que celui-ci.
Et puis même, vous pouvez aussi il suffit de prendre ces comme ainsi de suite.
>> Donc, ce est juste une sorte de commandes rapides de l'ensemble de données.
Alors, voici une exploration de données.
Donc, ce est un peu plus participer à l'analyse de données.
Et cela est pris de certains bootcamp en R dans Berkeley.
>> Donc bibliothèque étrangère.
Donc, je vais charger dans un bibliothèque qui se appelle étrangère.
Donc cela va me donner read.dta Supposons donc que je ai cet ensemble de données.
Ce est stocké dans le courant répertoire de ma console de travail.
Voyons donc ce que le répertoire de travail est.
>> Alors, voici mon répertoire de travail.
Et lire les données de points, ce chose, ce est dire ce fichier
est situé dans le dossier de données ce répertoire de travail courant.
Et ce ne est pas read.dta une commande par défaut.
Je suppose que je ai chargé dans déjà.
IEI supposé je ai chargé dans cette déjà.
>> Mais si read.dta ne va pas comme une commande par défaut.
Et ce est pourquoi vous allez avoir à charger dans cette bibliothèque package--
ce paquet appelé étrangère.
Et si vous ne avez pas le paquet, je pense
étrangère est l'un des plus intégrées.
Sinon, vous pouvez également faire install.packages
et cela va installer le package.
Et cela vous donnera R. Euh, non.
Et puis je vais juste arrêter parce que je ai déjà.
>> Mais ce qui est vraiment agréable à propos de R ce est que la gestion des paquets
système est très élégant.
Parce qu'il va stocker tout vraiment bien pour vous.
Donc dans ce cas, il va stocker dans, je crois, cette bibliothèque ici.
>> Donc, quand vous le voulez installer de nouveaux paquets,
ce est aussi simple que faire install.packages
et R gérera tous les paquets pour vous.
Donc, vous ne avez pas à faire quelque chose dans Python, où vous avez emballage externe
gestionnaires comme le papier Anaconda où vous êtes
doing-- vous installez le paquetages en dehors de Python
et puis vous essayez de les exécuter vous-même.
Donc, ce est vraiment super.
>> Et install.packages nécessite Internet.
Il faut partir d'un serveur et le référentiel
rassemble tous les des paquets est nommé CRAN.
Et vous pouvez spécifier quelle sorte de miroir vous voulez télécharger les paquets.
>> Donc ici, je prends cet ensemble de données.
Je lis dans l'aide de cette fonction.
Alors laissez-moi aller de l'avant et de le faire.
>> Donc, supposons que vous avez cet ensemble de données
et vous ne avez absolument aucune idée de ce que ce est.
Et cela vient effectivement en place assez souvent dans l'industrie
où vous avez juste ces tonnes et des tonnes de choses salissantes
et ils sont incroyablement sans étiquette.
Donc ici, je ai cette ensemble de données et je ne sais pas
ce que ce est si je suis juste montrant le vérifier.
>> Donc, je vais faire la tête la première.
Donc, je vérifie les six premiers colonnes de ce que cet ensemble de données est.
Donc, ce est l'état, pres04, puis Tous ces différents type de colonnes.
Et ce qui est intéressant ici, je suppose, ce est que vous
supposerait que cela ressemble comme une sorte d'élection.
Et je suppose seulement de regarder le fichier
nommer ce est une sorte de collection des données sur les candidats ou les électeurs
qui ont voté pour les présidents spécifiques ou des candidats de président
pour l'élection de 2004.
>> Voici donc les valeurs 1, 2 Donc, une façon de stocker
les candidats de président Voici leurs noms.
Dans ce cas, il semble que ils sont juste des valeurs entières.
Donc 2004, ce était Bush contre Kerry je crois.
Et maintenant, disons que vous ne savez tout simplement pas si 1 correspond à Bush ou 2
correspond à Kerry ou et ainsi de suite et ainsi de suite, non?
>> Et ce est, juste pour moi, un problème assez courant.
Alors, que pouvez-vous faire dans ce cas?
Donc, nous allons vérifier toutes ces autres choses.
>> Etat, je suppose ce vient de différents états.
PartyId, revenu.
Regardons PartyId.
Alors peut-être une chose que vous pouvez faire est examiner chacune des observations
qui ont un PartyId du républicain ou démocrate ou quelque chose.
Alors disons simplement regarder ce PartyId est.
>> Donc, je vais prendre dat et puis je vais
pour ce faire signe dollar opérateur que je ai fait précédemment
et cela va sous-ensemble de cette colonne.
Et puis je vais dans la tête de cette 20, juste pour voir à quoi cela ressemble.
>> Donc, ce est juste un tas de NAS.
Donc, en d'autres termes, vous avez données manquantes sur ces gars.
Mais vous remarquerez également cette dat PartyId est un facteur
si cela vous donne différentes catégories.
Donc, en d'autres termes, peut prendre PartyId Démocrate, républicain, indépendant,
ou autre chose.
>> Allons donc de l'avant et nous allons voir laquelle de ces est-- oh, OK.
Donc, je vais au sous-ensemble à PartyId puis
regardent ceux qui sont Démocrate, par exemple.
Cela va vous donner une valeur booléenne, un énorme booléenne Trues et faux.
>> Et maintenant, disons que je veux au sous-ensemble de ces gars-là.
Donc cela va prendre mon DAT et Quel que soit le sous-ensemble d'observations
avoir égaux PartyId égaux démocrate.
Et ce est assez long parce il ya beaucoup d'entre eux.
Alors maintenant, je vais à la tête de cette dans 20.
>> Et comme vous le remarquez, égaux égaux qui est intéressant dans ce que vous êtes
already-- vous êtes également y compris le NAS.
Donc dans ce cas, vous ne pouvez toujours pas obtenir toute information parce que maintenant vous avez AN
et vous voulez juste pour voir qui de la observation correspondent à démocrate
et non ceux-ci manquant valeurs mêmes.
Alors, comment voulez-vous vous débarrasser de ces AN?
>> Je suis juste en utilisant alors voici la clé sur mon curseur, puis dire se déplacer.
Et puis ici, je vais juste dire is.na datpartyid.
Donc cela et et prendra deux vecteurs différents booléennes
et dire qu'il va être VRAI et FAUX par exemple.
Donc ça va faire cette composante-sage.
Donc ici, je dis prise la trame de données, sous-ensemble
à ceux qui correspondent aux démocrate, et retirer l'un d'eux qui ne sont pas NA.
>> Donc, ce devrait will-- vous donner quelque chose.
Voyons is.na.
Essayons datpartyid is.na.
Et cela devrait donner vous-- sorry-- simplement un vecteur booléenne.
Et puis, parce que ce est si longtemps, Je vais au sous-ensemble à 20.
D'ACCORD.
Donc, cela devrait fonctionner.
>> Et celui-ci sera également Trues.
Ah, mon erreur, ce est que je I'm-- utilisent C ++ et R interchangeable donc je faire
cette erreur tout le temps.
L'opérateur and est effectivement celui que vous voulez.
Vous ne voulez pas utiliser deux esperluette, juste un seul.
D'ACCORD.
>> Voyons donc.
Nous avons donc des sous-ensembles à l' PartyId où ils sont démocrate
et ils ne sont pas les valeurs manquantes.
Et maintenant regardons lesquels ils ont voté.
Donc, il semble que la plupart d'entre eux ont voté pour une.
Donc, je vais aller de l'avant et dire que ce est Kerry.
>> Et même, vous pouvez aller aussi républicain
et je espère, cela devrait vous donner deux.
Ce est juste un tas de différentes colonnes.
Et en effet, ce est deux.
Donc PartyId tout républicain, plupart d'entre eux votent pour deux.
>> Il semble donc que, tout simplement en regardant cela,
Républicain va être un very-- ou PartyId
va être une très facteur important dans la détermination
quel candidat ils sont vais voter pour.
Et ce est évidemment vrai en général.
Et cela correspond à votre l'intuition, bien sûr.
Donc, il semble que je suis de manquer de temps pour
laissez-moi juste dois aller de l'avant et montrer quelques images rapides.
Alors, voici quelque chose qui est un peu plus compliqué avec visualisation.
Donc dans ce cas, ce est une très simple analyse de vérifier simplement ce que
le président de '04 est.
>> Donc dans ce cas, disons que vous voulu répondre à cette question.
Donc, supposons que nous voulions connaître le vote comportement dans l'élection 2004 de président
et comment qui varie selon la race.
Ainsi, non seulement vous voulez voir le comportement de vote,
mais vous voulez des sous-ensembles de chaque race et genre de résumer cela.
Et vous ne pouvez dire par cette notation complexe
que ce est une sorte d'obtenir brumeux.
>> Donc, l'un des plus avancés R paquets qui est aussi un peu récente
dplyr est appelé.
Ce est donc celui-ici.
Et ggplot2 ggg-- est juste une belle façon de faire de meilleures visualisations
que celui intégré.
>> Donc, je vais charger ces deux bibliothèques.
Et puis, je vais aller avant et exécuter cette commande.
Vous pouvez simplement traiter cela comme une boîte noire.
>> Ce qui se passe, ce est que ce tuyau opérateur passait dans cet argument
en ici.
Donc, je suis groupe disant par dat race et alors président 04.
Et puis, tous ces autres commandes filtrons puis résumant
où je fais comte et alors je tracer ici.
OK cool.
Allons donc de l'avant et voir à quoi cela ressemble.
>> Donc ce qui se passe ici, ce est que je juste tracée chacune des courses et puis
lesquels ils ont voté.
Et ces deux différente correspondent à deux valeurs et une.
Si vous voulez être plus élégant, vous pouvez aussi
Il suffit de spécifier que 2 est Kerry-- ou 2 est Bush, puis 1 est Kerry.
Et vous pouvez aussi avoir que, dans votre légende.
>> Et vous pouvez aussi diviser ces graphiques à barres.
Car une chose est que, si vous remarquez,
ce ne est pas très facile d'identifier laquelle de ces deux valeurs sont plus grandes.
Donc, une chose que vous voudriez faire est de profiter de cette zone bleue
et juste le déplacer sur ici, donc vous pouvons comparer ces deux côte à côte.
Et je suppose que ce est quelque chose que je ne ont pas le temps de faire en ce moment,
mais ce est aussi très facile à faire.
Vous pouvez simplement regarder dans les pages de manuel de ggplot.
Ainsi, vous pouvez simplement ne ggplot comme cela et lire dans cette page de manuel.
>> Alors permettez-moi de rapidement vous montrer quelques choses cool.
Allons de l'avant et aller to-- juste une application de l'apprentissage de la machine.
Alors disons que nous avons ces trois paquets je vais donc les charger dans.
Donc, ce contente d'afficher des information après je ai chargé dans la chose.
Donc, je dis cela read.csv, cet ensemble de données, et maintenant
Je vais aller de l'avant et regarder et voir ce qui est à l'intérieur de cet ensemble de données.
>> Ainsi, les 20 premières observations.
Donc, je ai juste X1, X2, et Y. Donc, il semble comme un tas de ces valeurs
sont peut-être allant de 20 à 80 ou plus.
Puis de même pour X2 et ensuite cette Y semble être étiquettes 0 et 1.
>> Pour vérifier cela, je peux il suffit de faire des données sommaires X1.
Puis de même pour toutes les autres colonnes.
Donc résumé est un moyen rapide de tout en vous montrant des valeurs rapides.
Oh, désolé.
Celui-ci devrait être Y.
>> Donc dans ce cas, la donne quantiles, médianes, plafonne ainsi.
Dans ce cas, dataY, vous pouvez voir qu'il va juste être 0 et 1.
Aussi la moyenne est dit 0,6, signifie simplement qu'il
semble que je ai plus que 1s 0s.
>> Alors laissez-moi aller de l'avant et de montrer vous ce que cela ressemble.
Donc je vais juste pour tracer cette.
Voyons comment effacer cela.
Oh OK.
D'ACCORD.
>> Donc, ce est à quoi il ressemble.
Donc, il semble que je ai précisé jaunes 0, puis rouge je spécifie en 1s.
Donc, ici, il ressemble points labels et qu'il
semble que vous vouliez que quelques-uns sorte de regroupement à ce sujet.
>> Et laissez-moi juste aller de l'avant et de montrer vous quelques-unes de ces fonctions intégrées.
Voici donc lm.
Donc, ce est juste essayer pour se adapter à une ligne à cela.
Alors, quelle est la meilleure façon que je peux adapter une ligne telle
qu'il sera mieux séparer ce genre de regroupement.
Et idéalement, vous pouvez simplement voir que je viens de lancer toutes ces commandes
puis, je vais y et ajoutez la ligne.
>> Donc, cela semble être la meilleure estimation.
Ce est en prenant le meilleur qui minimise l'erreur en essayant de se adapter à cette ligne.
Évidemment, cela ressemble sorte de bon, mais ce ne est pas le meilleur.
Et, dans les modèles linéaires général, vont être
vraiment super pour la théorie et la sorte juste des fondamentaux de construction de la machine
apprentissage.
Mais dans la pratique, vous allez vouloir faire quelque chose de plus général.
>> Ainsi, vous pouvez juste essayer de lancer ce qu'on appelle un réseau neuronal.
Ces choses sont de plus en plus commun.
Et ils fonctionnent fantastiquement pour les grands ensembles de données.
Donc dans ce cas, nous ne have-- nous allons see-- nous avons nrow.
Donc nrow dit simplement le nombre de lignes.
Donc dans ce cas, je avoir 100 observations.
>> Alors laissez-moi aller de l'avant et faire un réseau neuronal.
Donc, ce est vraiment sympa parce que je peux juste dire nnet
et puis je suis régression Y. Ainsi, le Y est cette colonne.
Et puis régresser sur les deux autres variables.
Donc, ce est plus court notation de X1 et X2.
>> Donc, nous allons aller de l'avant et exécutez ce.
Oh, désolé.
Je ai besoin de courir toute cette affaire.
Et ce ne est que l'impression notation pour combien rapidement ou pas rapidement, il
convergé.
Donc, il semble que ce ne convergent.
Alors laissez-moi aller de l'avant et d'impression à quoi cela ressemble.
>> Voir ici est l'image et est ici un contour montrant comment il se adapte.
Et ce est just-- vous pouvez voir ce que ce est très, très agréable.
Il pourrait même être overfitting, mais vous pouvez aussi
rendre compte de ce que d'autres des techniques telles que la validation croisée.
Et ceux-ci sont également intégrés dans R.
>> Et permettez-moi de vous montrer Machine à vecteurs de support.
Ce est une autre très commun technique dans l'apprentissage de la machine.
Il est très similaire aux modèles linéaires, mais il utilise ce qu'on appelle une méthode du noyau.
Et nous allons voir comment bien que cela fait.
Ainsi, celui-ci est très semblable à la façon dont et un réseau neuronal exécute,
mais ce est beaucoup plus lisse.
Et ce est basé sur des what-- comment SVM travail.
>> Donc, ce est juste une très aperçu rapide de certains
des fonctions intégrées que vous pouvez faire et également une partie de l'exploration de données.
Permettez-moi donc aller de l'avant et revenir sur les lames.
>> Alors, évidemment, ce est pas très complet.
Et ce est vraiment juste un teaser vous montrer ce que vous pouvez vraiment faire dans R.
Donc, si vous voudrais juste pour en savoir plus, voici
sont un tas de différentes ressources.
>> Donc, si vous êtes friands de manuels ou vous êtes simplement friands de lecture des choses en ligne,
alors ce est un fantastique Hadley par une Wickham,
qui a également créé tous ces paquets vraiment cool.
Si vous êtes friands de vidéos, puis Berkeley a un bootcamp génial
ce est several-- ce est sorte de long.
Et il va vous apprendre presque tout ce que vous souhaitez savoir sur R.
>> Et de même, il ya Codeacademy et toutes ces autres tri
sites du interactifs.
Ils obtiennent aussi common-- plus en plus commun.
Donc, ce est très similaire à Codeacademy.
Et enfin, si vous venez de Communauté et veulent aider,
ceux-ci sont un tas de choses que vous pouvez aller.
De toute évidence, nous avons encore utiliser des listes de diffusion, tout simplement
comme presque tous les autres communauté de langage de programmation.
Et #rstats, ce est notre communauté Twitter.
Ce est tout à fait commun.
Et puis utilisateur!
Est juste notre conférence.
>> Et puis, bien sûr, vous pouvez utiliser tous ces autres Q & A des choses,
comme Stack Overflow, Google, puis GitHub.
Parce que la plupart de ces paquets et beaucoup de la communauté
sera centré autour du développement code, car il est open source.
Et ce est vraiment gentil sur GitHub.
Et enfin, vous pouvez me contacter si vous avez juste des questions rapides.
Ainsi, vous pouvez me retrouver sur Twitter ici, mon site, et juste mon email.
Donc, je espère, que ce était quelque chose-- juste un teaser court
de ce que R est vraiment capable de faire.
Et je espère, que vous venez de vérifier ces trois liens
et voyez ce que vous pouvez faire plus.
Et je suppose que ce est juste à ce sujet.
Merci.
>> [Applaudissements]