<jupyter_start><jupyter_text>Statistical ThinkingDeiry Sofía <NAME> de sistemas Universidad de Antioquia  Lo que hemos visto hasta ahora ...*  Importing data *  Cleaning Data *** Loading and viewing your data* Summary statistics* Visual  data analysis* Tidying data for analysis* Lambda functions* Y ...![alt text](panda.jpg "Title")* Dataframe **EVERYWHERE**<jupyter_code>! pip install --upgrade pip
! pip install matplotlib numpy seaborn sklearn

import pandas as pd

import numpy as np

# Biblioteca usada para diseñar y mostrar graficos.
import matplotlib.pyplot as plt 

from sklearn import datasets<jupyter_output>Requirement already up-to-date: pip in /home/sofia/py3/lib/python3.5/site-packages (18.0)
Requirement already satisfied: matplotlib in /home/sofia/py3/lib/python3.5/site-packages (2.2.3)
Requirement already satisfied: numpy in /home/sofia/py3/lib/python3.5/site-packages (1.15.1)
Requirement already satisfied: seaborn in /home/sofia/py3/lib/python3.5/site-packages (0.9.0)
Requirement already satisfied: sklearn in /home/sofia/py3/lib/python3.5/site-packages (0.0)
Requirement already satisfied: python-dateutil>=2.1 in /home/sofia/py3/lib/python3.5/site-packages (from matplotlib) (2.7.3)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/lib/python3/dist-packages (from matplotlib) (2.0.3)
Requirement already satisfied: pytz in /home/sofia/py3/lib/python3.5/site-packages (from matplotlib) (2018.5)
Requirement already satisfied: cycler>=0.10 in /home/sofia/py3/lib/python3.5/site-packages (from matplotlib) (0.10.0)
Requirement already satisfied: kiwisolver>=1.0.1 [...]<jupyter_text>Metodos para el análisis de nuestro conjunto de datos, tales como:``` df_air.head() `````` df_air.describe() `````` df_air.colmuns `````` df_air.index `````` df_air.shape `````` df_air.size ```¿Quién da más?   Desde un punto de vista del aprendizaje autómatico (Machine Learning)El aprendizaje automatico, es el estudio de sistemas que aprenden apartir de un conjunto de datos y pueda con datos nuevos **predecir** comportamientos o tomar decisiones automáticamente. > Machine learning provides, developing methods that can automatically detect patterns in data and then use the uncovered patterns to predict future data.> Machine learning is a branch of artifcial intelligence. Using computing, we design systems that can learn from data in a manner of being trained. The systems might learn and improve with experience, and with time, re ne a model that can be used to predict outcomes of questions based on the previous learning. [1]![alt text](ml.jpeg "Title")Ahora bien, ¿cómo realizamos la predicción?![alt text](estadistica.jpg "Title")En el curso 15 se aborda la estadistica, despues de obtener y pre-procesarla queremos sacar conclusiones  se debe hacer inferencia a la estadística.  Ahora bien ... vamos a la acciónVamos a echarle a un vistazo a este basa de datos, corresponde a una campaña de marketing por un banco portuguese realizado por llamadas télefonicas. **Objetivo** Predecir si el cliente se va a subscribir a un depósito a plazo.![alt_text](summary.jpg "Summary")[Data](https://archive.ics.uci.edu/ml/datasets/Bank+Marketing)<jupyter_code>df_bank = pd.read_csv("bank-full.csv", sep=";")
df_bank.head()
df_bank = pd.read_csv("weather.csv", sep=";")
df_bank.head()<jupyter_output><empty_output><jupyter_text>Tipos de aprendizaje autómatico Aprendizaje predictivo o supervisado (Supervised Learning): Aprende a partir de entradas $\bf{x}$ con salidas $y$, se tiene conjunto de pares entrada-salida etiquetados $\mathcal{D} = \left\lbrace  \left( {\bf{x}}_i, y_i \right) \right\rbrace _{i=1} ^{N}$. En este caso $\mathcal{D}$ se conoce como el conjunto de entrenamiento y $N$ es el número de muestras de entrenamiento.En una forma simple, cada muestra de entrenamiento ${\bf{x}}_i$ es un vector de números $d$-dimensional que representa variables que se desea modelar y que en el contexto del aprendizaje de máquinas es común llamarlas características (en inglés features).  Extraído de: [Aquí](https://github.com/jdariasl/ML_IntroductoryCourse)  por <NAME>![alt text](Supervised.png  "Supervised")<jupyter_code>df_bank.shape<jupyter_output><empty_output><jupyter_text>Descriptivo o no supervisado (Unsupervised Learning)En este caso unicamente se cuenta con un conjunto $\mathcal{D} = \left\lbrace  \left( {\bf{x}}_i \right) \right\rbrace _{i=1} ^{N}$; y el objetivo es encontrar ``patrones interesantes'' en los datos. Algunas veces se le llama Descubrimiento de conocimientoExtraído de: [Aquí](https://github.com/jdariasl/ML_IntroductoryCourse)  por <NAME>![alt text](Unsupervised.png  "Unsupervised")  Tipos de problemas supervisadosEn general ${\bf{x}}_i$ puede representar un objeto complejo, como una imagen, una frase, un mensaje de correo electrónico, un cliente, una serie de tiempo, una cadena de ADN, una molécula, un grafo, etc. En el aprendizaje supervisado, si la variable de salida $y_i$ toma valores discretos (es categórica), el problema de aprendizaje se conoce como Clasificación. Si por el contrario $y_i$ toma valores reales (continuos), el problema se conoce como Regresión.Extraído de: [Aquí](https://github.com/jdariasl/ML_IntroductoryCourse)  por <NAME><jupyter_code>from sklearn import datasets
iris = datasets.load_iris()
X, y = iris.data, iris.target
import matplotlib.pyplot as plt
plt.title('Problema de 3 clases', fontsize=14)
plt.xlabel('Caracteristica 1')
plt.ylabel('Caracteristica 2')
plt.scatter(X[:,1], X[:,2],c=y,cmap="Accent")
plt.show()
out = df_bank["y"]
out = out.replace("no", 0)
out = out.replace("yes", 1)
x = df_bank["housing"]
y = df_bank["age"]

import matplotlib.pyplot as plt
plt.title('Problema de clasificación', fontsize=14)
plt.xlabel('Edad')
plt.ylabel('Housing')
plt.scatter(x,y,c=out,cmap="Accent")
plt.show()<jupyter_output><empty_output><jupyter_text>Regresión<jupyter_code>a = np.array([1, 2, 3])
x = np.linspace(0,10,100);
y1 = np.zeros(100)
y2 = np.zeros(100)
for i in range(len(x)):
    b = np.array([x[i],x[i]**2,1])
    y1[i] = sum(a*b +  30*(np.random.rand() - 0.5))
    y2[i] = sum(a*b)
plt.title(u'Problema de regresión', fontsize=14)
plt.xlabel(u'Característica 1')
plt.ylabel(u'Variable a predecir')
plt.scatter(x, y1)
plt.plot(x,y2,'r')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12256223244014587, 'fraction_numerical': 0.019185032503567463, 'mean_word_length': 5.550363447559709, 'pattern_counts': {'":': 0, '<': 24, '<?xml version=': 0, '>': 30, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '199423', 'license': 'MIT', 'n_tokens_mistral': 2287, 'n_tokens_neox': 2223, 'n_words': 667, 'path': 'Machine Learning intro.ipynb', 'repo_name': 'deiry/Machine-Learning-Intro', 'size': '6373'}