<jupyter_start><jupyter_text>Análisis de los datos obtenidos  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<jupyter_code>#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
#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__))
#Abrimos el fichero csv con los datos de la muestra
datos = pd.read_csv('prueba1.csv')
datos_filtrados = datos[(datos['Diametro X'] >= 1.2) & (datos['Diametro Y'] >= 1.2)]
%pylab inline
#Mostramos un resumen de los datos obtenidoss
datos_filtrados.describe()
#datos.describe().loc['mean',['Diametro X [mm]', 'Diametro Y [mm]']]
#Almacenamos en una lista las columnas del fichero con las que vamos a trabajar
#columns = ['Diametro X', 'Diametro Y', 'RPM TRAC']
columns = ['Diametro X', 'RPM TRAC']
#Mostramos en varias gráficas la información obtenida tras el ensayo
datos_filtrados[columns].plot(secondary_y=['RPM TRAC'],figsize=(20,20))
#datos_filtrados['RPM TRAC'].plot(secondary_y=True,style='g',figsize=(20,20)).set_ylabel=('RPM')

# Buscamos el polinomio de orden 4 que determina la distribución de los datos
reg = np.polyfit(datos_filtrados['time'],datos_filtrados['Diametro X'],4)
# Calculamos los valores de y con la regresión
ry = np.polyval(reg,datos_filtrados['time'])
print ('P(x)= {} {}*X {}*X^2 {}*X^3 {}*X^4'.format(reg[0],reg[1],reg[2],reg[3],reg[4]) )
plt.plot(datos_filtrados['time'],datos_filtrados['Diametro X'],'*', label=('f(x)'))
plt.plot(datos_filtrados['time'],ry,'ro', label=('regression'))
plt.legend(loc=0)
plt.grid(True)
plt.xlabel('x')
plt.ylabel('f(x)')<jupyter_output><empty_output><jupyter_text>Representamos ambos diámetros en la misma gráfica<jupyter_code>datos_filtrados.ix[:, "Diametro X":"Diametro Y"].plot(figsize=(16,3))
datos_filtrados.ix[:, "Diametro X":"Diametro Y"].boxplot(return_type='axes')<jupyter_output><empty_output><jupyter_text>Mostramos la representación gráfica de la media de las muestras<jupyter_code>pd.rolling_mean(datos[columns], 50).plot(subplots=True, figsize=(12,12))<jupyter_output><empty_output><jupyter_text>Comparativa de Diametro X frente a Diametro Y para ver el ratio del filamento<jupyter_code>plt.scatter(x=datos['Diametro X [mm]'], y=datos['Diametro Y [mm]'], marker='.')<jupyter_output><empty_output><jupyter_text>Filtrado de datosLas muestras tomadas $d_x >= 0.9$ or $d_y >= 0.9$ las asumimos como error del sensor, por ello las filtramos de las muestras tomadas.<jupyter_code>datos_filtrados = datos[(datos['Diametro X [mm]'] >= 0.9) & (datos['Diametro Y [mm]'] >= 0.9)]<jupyter_output><empty_output><jupyter_text>Representación de X/Y<jupyter_code>plt.scatter(x=datos_filtrados['Diametro X [mm]'], y=datos_filtrados['Diametro Y [mm]'], marker='.')<jupyter_output><empty_output><jupyter_text>Analizamos datos del ratio<jupyter_code>ratio = datos_filtrados['Diametro X [mm]']/datos_filtrados['Diametro Y [mm]']
ratio.describe()
rolling_mean = pd.rolling_mean(ratio, 50)
rolling_std = pd.rolling_std(ratio, 50)
rolling_mean.plot(figsize=(12,6))
# plt.fill_between(ratio, y1=rolling_mean+rolling_std, y2=rolling_mean-rolling_std, alpha=0.5)
ratio.plot(figsize=(12,6), alpha=0.6, ylim=(0.5,1.5))<jupyter_output><empty_output><jupyter_text>Límites de calidad Calculamos el número de veces que traspasamos unos límites de calidad. $Th^+ = 1.85$ and $Th^- = 1.65$<jupyter_code>Th_u = 1.85
Th_d = 1.65
data_violations = datos[(datos['Diametro X [mm]'] > Th_u) | (datos['Diametro X [mm]'] < Th_d) |
                       (datos['Diametro Y [mm]'] > Th_u) | (datos['Diametro Y [mm]'] < Th_d)]
data_violations.describe()
data_violations.plot(subplots=True, figsize=(12,12))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.15247185511502692, 'fraction_numerical': 0.020313264806656878, 'mean_word_length': 7.622362869198312, 'pattern_counts': {'":': 2, '<': 35, '<?xml version=': 0, '>': 41, 'https://': 0, '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': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '429924', 'license': 'CC0-1.0', 'n_tokens_mistral': 1686, 'n_tokens_neox': 1639, 'n_words': 347, 'path': 'ipython_notebooks/05_experimentos_tolvas/.ipynb_checkpoints/datos-checkpoint.ipynb', 'repo_name': 'darkomen/TFG', 'size': '4086'}