#!/usr/bin/env python # coding: utf-8 # In[1]: #Carga de las librerías import urllib.request import pandas as pd from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.tree import DecisionTreeClassifier # In[2]: #Descargamos los datos desde internet! file_name = 'dataR2.csv' def download_file(file_name): print('Descargando el dataset') url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00451/dataR2.csv' urllib.request.urlretrieve(url, file_name) download_file(file_name) # In[3]: #Ahora si cargamos los datos en jupyter! data = pd.read_csv(file_name) data.head() # **Insights**: # # * El dataset se compone de 10 columnas de las cuales 9 corresponden a variables independientes, que usaremos para predecir el target. # # * Classification es la variable a predecir. Todas las variables son numéricas, ya sea enteras o reales y no tiene valores nulos. # In[4]: #Separamos en X e y X = data.drop(["Classification"], axis=1) y = data["Classification"] # In[5]: #Separamos en train y test! (X_train, X_test,y_train, y_test) = train_test_split(X,y,stratify=y,test_size=0.30,random_state=42) # In[6]: #Creamos un arbol de decisión sencillo y lo fiteamos tree = DecisionTreeClassifier(random_state=42) tree.fit(X_train, y_train) # In[7]: y_test_pred = tree.predict(X_test) #Prediccion en Test # A lo largo de este notebook, se solicita calcular las métricas requeridas como así también su correspondiente interpretación: # # 1. Calcular la métrica Accuracy. # In[8]: ###Completar from sklearn.metrics import accuracy_score accuracy_score(y_test,y_test_pred) # 2. Crear la Matriz de Confusión # In[9]: ###Completar from sklearn.metrics import confusion_matrix confusion_matrix(y_test, y_test_pred) # 3. Calcular la métrica Recall # In[10]: ###Completar from sklearn.metrics import precision_score precision_score(y_test, y_test_pred) # 4.Calcular la métrica F1 score # In[11]: ###Completar from sklearn.metrics import recall_score recall_score(y_test, y_test_pred) # In[12]: from sklearn.metrics import f1_score f1_score(y_test, y_test_pred) # # Random Forest # In[13]: #Creamos un random forest! model = RandomForestClassifier(random_state=42, n_estimators=100, class_weight="balanced", max_features="log2") model.fit(X_train, y_train) # In[14]: y_test_pred = model.predict(X_test) #Prediccion en Test # 1. Calcular la métrica Accuracy. # In[15]: ###Completar from sklearn.metrics import accuracy_score accuracy_score(y_test,y_test_pred) # 2. Calcular la métrica Precision # In[16]: ###Completar from sklearn.metrics import precision_score precision_score(y_test, y_test_pred) # 3. Calcular la métrica Recall # In[17]: ###Completar from sklearn.metrics import recall_score recall_score(y_test, y_test_pred) # 4. Calcular la métrica F1 score # In[18]: ###Completar from sklearn.metrics import f1_score f1_score(y_test, y_test_pred) # # Created in deepnote.com # Created in Deepnote