martes, 8 de mayo de 2018

Machine Learning for Data Analysis - Classification Tree

# -*- coding: utf-8 -*-
"""
Created on Sun Dec 13 21:12:54 2015

@author: ldierker
"""

# -*- coding: utf-8 -*-

from pandas import Series, DataFrame
import pandas as pd
import numpy as np
import os
import matplotlib.pylab as plt
from sklearn.cross_validation import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
import sklearn.metrics

os.chdir("C:\TREES")

"""
Data Engineering and Analysis
"""
#Load the dataset

AH_data = pd.read_csv("tree_addhealth.csv")

data_clean = AH_data.dropna()

data_clean.dtypes
data_clean.describe()


"""
Modeling and Prediction
"""
#Split into training and testing sets

predictors = data_clean[['BIO_SEX','HISPANIC','WHITE','BLACK','NAMERICAN','ASIAN',
'age','ALCEVR1','ALCPROBS1','marever1','cocever1','inhever1','cigavail','DEP1',
'ESTEEM1','VIOL1','PASSIST','DEVIANT1','SCHCONN1','GPA1','EXPEL1','FAMCONCT','PARACTV',
'PARPRES']]

targets = data_clean.TREG1

 #DIVISIÓN DE DATOS ENTRE ENTRENAMIENTO Y TEST
pred_train, pred_test, tar_train, tar_test  =   train_test_split(predictors, targets, test_size=.4)

pred_train.shape
pred_test.shape
tar_train.shape
tar_test.shape

#Build model on training data
classifier=DecisionTreeClassifier()
classifier=classifier.fit(pred_train,tar_train) #Pasamos el target y los trainers predictors

predictions=classifier.predict(pred_test)

sklearn.metrics.confusion_matrix(tar_test,predictions)
sklearn.metrics.accuracy_score(tar_test, predictions)

#Displaying the decision tree
from sklearn import tree
#from StringIO import StringIO
from io import StringIO
#from StringIO import StringIO
from IPython.display import Image
out = StringIO()
tree.export_graphviz(classifier, out_file=out)
import pydotplus
graph=pydotplus.graph_from_dot_data(out.getvalue())
Image(graph.create_png())

lunes, 3 de octubre de 2016

Diseño e implementación de un sistema abierto de pulsioximetría (Resumen)

Con este Trabajo de Fin de Grado, se pretende ahondar en el funcionamiento de un pulsioxímetro, a modo de introducción en el inmenso campo de la ingeniería biomédica, una disciplina que pone a la ingeniería al servicio de la medicina para desarrollar nuevas herramientas y métodos que permitan mejorar la calidad de vida de las personas.
Mediante un caso práctico como es el diseño e implementación de un pulsioxímetro que nos permita obtener la cantidad de oxígeno en sangre (SpO2) y la curva pletismográfica pretendemos además desarrollar los conocimientos obtenidos durante el Grado en Ingeniería Electrónica Industrial y Automática.

Nos centraremos principalmente en el diseño de esquemáticos, haciendo uso de distintas herramientas de simulación que nos permitan evaluar nuestros diseños,  para posteriormente realizar un PCB (placa de circuito impreso) lo que nos facilitará la fabricación de un prototipo para su posterior análisis y calibración.

 Saturación de oxígeno en sangre


La saturación de oxígeno en sangre (SpO2) es el parámetro que se utiliza para expresar la cantidad de hemoglobina oxigenada (HbO2) respecto al total (HbO2 + Hb) que hay presente en el cuerpo de un ser vivo. En otras palabras, describe el grado de capacidad de transporte de oxígeno en sangre.

La SpO2 no es una medida absoluta sino que se trata de una fracción porcentual de todas las moléculas de hemoglobina (Hb) que transporta oxígeno en la sangre arterial. En la sangre humana encontramos principalmente dos tipos de hemoglobina: la oxihemoglobina, que transporta fundamentalmente el O2 hasta los tejidos (HbO2), y la desoxihemoglobina o Hb reducida (HHb), es decir, aquella que no está saturada en su totalidad, encontrándose fundamentalmente en la sangre venosa. La HHb se transforma en HbO2 en los pulmones al saturarse por completo de oxígeno.

En condiciones normales, la saturación de O2 en sangre arterial es del 95-100% y es proporcional a la PaO2 que corresponde a la presión parcial de O2 disuelto en el plasma.



lunes, 19 de octubre de 2015

Introducción a la Criptografía

Con este trabajo comenzamos una serie de seminarios acerca de la seguridad informática para la realización de estos seminarios seguimos una serie de vídeos de la plataforma Intypedia de la Universidad Carlos III de Madrid.
Comenzamos repasando las ventajas que nos permite la conexión a Internet. La conectividad a Internet hoy en día es algo indispensable, nos permite comunicarnos con nuestros familiares, enterarnos de las últimas noticias, trabajar a distancia o en nuestro caso manejar nuestra planta de producción a distancia.
Si bien son muchas las ventajas, también hay una serie de inconvenientes que debemos tener en cuenta cuando vayamos a conectarnos a la red. La red de Internet es un espacio abierto al que cualquier persona pueda acceder, y si nosotros podemos acceder a nuestra planta de forma remota debemos tomar las medidas de seguridad necesarias para controlar los usuarios que acceden a nuestro sistema.