%% -*- (fset 'tejer [?\C-x ?\C-s escape ?n ?S escape ?n ?P right return ?\C-x ?1]) -*-
%% -*- (local-set-key "\C-c\C-c" 'tejer) -*-
\documentclass[mathserif]{beamer}\usepackage[]{graphicx}\usepackage[]{xcolor}
% maxwidth is the original width if it is less than linewidth
% otherwise use linewidth (to make sure the graphics do not exceed the margin)
\makeatletter
\def\maxwidth{ %
  \ifdim\Gin@nat@width>\linewidth
    \linewidth
  \else
    \Gin@nat@width
  \fi
}
\makeatother

\definecolor{fgcolor}{rgb}{0.345, 0.345, 0.345}
\newcommand{\hlnum}[1]{\textcolor[rgb]{0.686,0.059,0.569}{#1}}%
\newcommand{\hlstr}[1]{\textcolor[rgb]{0.192,0.494,0.8}{#1}}%
\newcommand{\hlcom}[1]{\textcolor[rgb]{0.678,0.584,0.686}{\textit{#1}}}%
\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}%
\newcommand{\hlstd}[1]{\textcolor[rgb]{0.345,0.345,0.345}{#1}}%
\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.161,0.373,0.58}{\textbf{#1}}}%
\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.69,0.353,0.396}{#1}}%
\newcommand{\hlkwc}[1]{\textcolor[rgb]{0.333,0.667,0.333}{#1}}%
\newcommand{\hlkwd}[1]{\textcolor[rgb]{0.737,0.353,0.396}{\textbf{#1}}}%
\let\hlipl\hlkwb

\usepackage{framed}
\makeatletter
\newenvironment{kframe}{%
 \def\at@end@of@kframe{}%
 \ifinner\ifhmode%
  \def\at@end@of@kframe{\end{minipage}}%
  \begin{minipage}{\columnwidth}%
 \fi\fi%
 \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
 \colorbox{shadecolor}{##1}\hskip-\fboxsep
     % There is no \\@totalrightmargin, so:
     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
 \MakeFramed {\advance\hsize-\width
   \@totalleftmargin\z@ \linewidth\hsize
   \@setminipage}}%
 {\par\unskip\endMakeFramed%
 \at@end@of@kframe}
\makeatother

\definecolor{shadecolor}{rgb}{.97, .97, .97}
\definecolor{messagecolor}{rgb}{0, 0, 0}
\definecolor{warningcolor}{rgb}{1, 0, 1}
\definecolor{errorcolor}{rgb}{1, 0, 0}
\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX

\usepackage{amsmath}
\usepackage{alltt}       % antiambiguo
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usetheme{Hannover}
\usepackage{heuristica}                 % antiambiguo y graso
\usepackage[heuristica,vvarbb,bigdelims]{newtxmath}
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\begin{document}
\title{Árboles de decisión}
\author{N. Corral,\\C. Carleos}
\frame{\titlepage}
\frame{\tableofcontents}
\section{Ejemplo}

\section{Ejercicios}
\begin{frame}[fragile]\frametitle{Ejercicio 1: mtcars}
  \begin{itemize}
  \item Construir un modelo de regresión lineal para estimar
    \verb+mpg+ a partir del resto de variables.
  \item Construir un árbol de regresión con el mismo objetivo.
  \item Comparar ambos modelos:
    \begin{itemize}
    \item Con la información que producen las funciones de R.
    \item Con el método de retención (entrenamiento y validación).
    \item Con validación cruzada.
    \end{itemize}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]\frametitle{Ejercicio 2: iris}
  \begin{itemize}
  \item Construye un árbol de clasificación para los datos
    \verb+iris+ a partir de todas sus variables (en la
    presentación usamos sólo las de los pétalos).
  \item ¿Se gana algo respecto a usar sólo los pétalos?
  \item Compáralo con el análisis dicriminante.
  \end{itemize}
\end{frame}

\begin{frame}[fragile]\frametitle{Iris: a toda mecha}
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlkwd{library}\hlstd{(rpart)}
\hlkwd{rpart}\hlstd{(Species}\hlopt{~}\hlstd{., iris)}
\end{alltt}
\begin{verbatim}
## n= 150 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
## 1) root 150 100 setosa (0,3333 0,3333 0,3333)  
##   2) Petal.Length< 2.45 50   0 setosa (1,0000 0,0000 0,0000) *
##   3) Petal.Length>=2.45 100  50 versicolor (0,0000 0,5000 0,5000)  
##     6) Petal.Width< 1.75 54   5 versicolor (0,0000 0,9074 0,0926) *
##     7) Petal.Width>=1.75 46   1 virginica (0,0000 0,0217 0,9783) *
\end{verbatim}
\end{kframe}
\end{knitrout}
\end{frame}

\begin{frame}[fragile]\frametitle{Protocolo para \'arboles}
  \begin{enumerate}
  \item Determinar el n\'umero adecuado de permutaciones
    para validaci\'on cruzada.  Sean
    \begin{itemize}
    \item \(n\) el tama\~no muestral.
    \item \(p\) el n\'umero de predictores
    \end{itemize}
    entonces podr\'\i a bastar
    \begin{itemize}
    \item \( n < 1000 \cap p<100 \Rightarrow \mathtt{xval=}n \)
    \item \( n > 10^4 \Rightarrow \mathtt{xval=}10 \)
    \end{itemize}
  \item Crear un \'arbol completo
    \begin{itemize}
    \item cp = 0
    \item minsplit = 2 \'o minbucket = 1
    \item xval = 10 \'o \(n\)
    \end{itemize}
  \item Fijarse en si \verb|xstd|
    (errores t\'\i picos obtenidos por cruzvalidaci\'on)
    son reducidos.  Si no, aumentar \verb+xval+
  \item Buscar el par\'ametro de complejidad (cp) adecuado
\begin{verbatim}
plotcp (arbol)
\end{verbatim}
  \item Poder el \'arbol
\begin{verbatim}
arbol1 <- prune (arbol)
\end{verbatim}
  \end{enumerate}
\end{frame}

\begin{frame}[fragile]\frametitle{Iris: protocolo para \'arboles}
\begin{knitrout}
\definecolor{shadecolor}{rgb}{0.969, 0.969, 0.969}\color{fgcolor}\begin{kframe}
\begin{alltt}
\hlstd{a} \hlkwb{<-} \hlkwd{rpart}\hlstd{(Species}\hlopt{~}\hlstd{., iris,}
           \hlkwc{control}\hlstd{=}\hlkwd{rpart.control}\hlstd{(}\hlkwc{xval}\hlstd{=}\hlnum{150}\hlstd{,}
                                 \hlkwc{cp}\hlstd{=}\hlnum{0}\hlstd{,}
                                 \hlkwc{minsplit}\hlstd{=}\hlnum{2}\hlstd{))}
\end{alltt}
\end{kframe}
\end{knitrout}
\end{frame}
\begin{frame}[fragile]\frametitle{}
printcp(a)  
\end{frame}
\begin{frame}[fragile]\frametitle{}
plotcp(a)
\end{frame}
\begin{frame}[fragile]\frametitle{}
a1 <- prune(a, 0.01)
\end{frame}

% \begin{frame}[fragile]\frametitle{Ejercicio 3: tejido mamario}
%   \begin{itemize}
%   \item Construye un árbol de clasificación para los datos
%     sobre tejido mamario
%     de la Hoja 2.  Compáralo con el resultado obtenido con análisis discriminante.
%   \end{itemize}
% \end{frame}

\section{Bibliografía}
\begin{frame}[fragile]\frametitle{Más detalles}
  \begin{itemize}
  \item \url{https://es.wikipedia.org/wiki/Aprendizaje_basado_en_%C3%A1rboles_de_decisi%C3%B3n}
  \item \url{https://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf}
  \item \url{https://www.researchgate.net/publication/263671703_Fifty_Years_of_Classification_and_Regression_Trees}
  \end{itemize}
\end{frame}
\end{document}
