Modelado de un sistema con ipython

Uso de ipython para el análsis y muestra de los datos obtenidos durante la producción. Los datos analizados son del filamento de bq el día 20 de Julio del 2015


In [1]:
#Importamos las librerías utilizadas
import numpy as np
import pandas as pd
import seaborn as sns
import sklearn as sk
from sklearn.linear_model import Ridge
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import make_pipeline

In [2]:
#Mostramos las versiones usadas de cada librerías
print ("Numpy v{}".format(np.__version__))
print ("Pandas v{}".format(pd.__version__))
print ("Seaborn v{}".format(sns.__version__))
print ("Sklearn v{}".format(sk.__version__))


Numpy v1.9.2
Pandas v0.16.2
Seaborn v0.6.0
Sklearn v0.16.1

In [3]:
#Abrimos el fichero csv con los datos de la muestra
datos = pd.read_csv('datos.csv')

In [37]:
#datos_filtrados = datos[(datos['Diametro X'] >= 1.2) & (datos['Diametro Y'] >= 1.2)]

In [4]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [6]:
#Mostramos un resumen de los datos obtenidoss
datos.describe()
#datos.describe().loc['mean',['Diametro X [mm]', 'Diametro Y [mm]']]


Out[6]:
time temperatura entrada
count 475.000000 475.000000 475.000000
mean 35700.000000 34.217895 40.105263
std 20589.742592 9.328896 19.941620
min 150.000000 25.600000 0.000000
25% 17925.000000 25.700000 50.000000
50% 35700.000000 30.300000 50.000000
75% 53475.000000 41.500000 50.000000
max 71250.000000 55.200000 50.000000

In [7]:
#Almacenamos en una lista las columnas del fichero con las que vamos a trabajar
#columns = ['Diametro X', 'Diametro Y', 'RPM TRAC']
columns = ['temperatura', 'entrada']

In [10]:
#Mostramos en varias gráficas la información obtenida tras el ensayo
datos[columns].plot(secondary_y=['entrada'],figsize=(10,10))
#datos_filtrados['RPM TRAC'].plot(secondary_y=True,style='g',figsize=(20,20)).set_ylabel=('RPM')


Out[10]:
<matplotlib.axes._subplots.AxesSubplot at 0xfc674b0>

In [25]:
# Buscamos el polinomio de orden 4 que determina la distribución de los datos
reg = np.polyfit(datos['time'],datos['temperatura'],4)
# Calculamos los valores de y con la regresión
ry = np.polyval(reg,datos['time'])
#print ('P(x)= {} {}*X {}*X^2'.format(reg[0],reg[1],reg[2]) )

In [26]:
plt.plot(datos['time'],datos['temperatura'],'b^', label=('f(x)'))
plt.plot(datos['time'],ry,'ro', label=('regression'))
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')


Out[26]:
<matplotlib.text.Text at 0x132b1af0>

Representamos ambos diámetros en la misma gráfica