In [2]:
# librerias
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
In [5]:
# leer el csv
data = pd.read_csv('../../data/db_join_wrf_tpro_10_25_tmid_10_20.csv')
In [6]:
# estructura del dataFrame
data.head()
Out[6]:
In [9]:
# columnas del dataframe
data.columns
Out[9]:
In [10]:
# información del dataFrame
data.info()
In [15]:
# utilizar solo las columnas con datos
data = data[['incidencia', 'prec', 'tmax', 'tmin', 'tpro', 'humr', 'dpoint','tmidnight','indicePresencia','porcentajePresencia']]
In [17]:
# checar estructura del dataFrame
data.head()
Out[17]:
In [18]:
rl = LinearRegression()
rl.fit(data, data['incidencia'])
Out[18]:
In [19]:
# lista de coeficientes B para cada X
list(zip(data.columns, rl.coef_))
Out[19]:
In [21]:
# generando las predicciones
predicciones = rl.predict(data)
predicciones_df = pd.DataFrame(predicciones, columns=['Pred'])
# predicciones de las primeras 5 líneas
predicciones_df.head()
Out[21]:
In [22]:
# calculando el desvio
np.mean(data['incidencia'] - predicciones)
Out[22]:
In [33]:
# creando un dataset de ejemplo
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=4)
In [34]:
# Importando el modelo
from sklearn.linear_model import LogisticRegression
rlog = LogisticRegression() # Creando el modelo
In [35]:
# Dividiendo el dataset en entrenamiento y evaluacion
X_entrenamiento = X[:-200]
X_evaluacion = X[-200:]
y_entrenamiento = y[:-200]
y_evaluacion = y[-200:]
rlog.fit(X_entrenamiento, y_entrenamiento) #ajustando el modelo
Out[35]:
In [36]:
# Realizando las predicciones
y_predic_entrenamiento = rlog.predict(X_entrenamiento)
y_predic_evaluacion = rlog.predict(X_evaluacion)
In [37]:
# Verificando la exactitud del modelo
entrenamiento = (y_predic_entrenamiento == y_entrenamiento).sum().astype(float) / y_entrenamiento.shape[0]
print("sobre datos de entrenamiento: {0:.2f}".format(entrenamiento))
evaluacion = (y_predic_evaluacion == y_evaluacion).sum().astype(float) / y_evaluacion.shape[0]
print("sobre datos de evaluación: {0:.2f}".format(evaluacion))
In [47]:
# Creando un dataset de ejemplo
X, y = make_classification(1000, 20, n_informative=3)
In [48]:
# Importando el arbol de decisión
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
In [49]:
ad = DecisionTreeClassifier(criterion='entropy', max_depth=3) # Creando el modelo
ad.fit(X, y) # Ajustando el modelo
Out[49]:
In [50]:
#generando archivo para graficar el arbol
with open("mi_arbol.dot", 'w') as archivo_dot:
tree.export_graphviz(ad, out_file = archivo_dot)
In [51]:
# utilizando el lenguaje dot para graficar el arbol.
!dot -Tjpeg mi_arbol.dot -o arbol_decision.jpeg
In [56]:
# verificando la precisión
print("precisión del modelo: {0: .2f}".format((y == ad.predict(X)).mean()))
In [60]:
# Creando un dataset de ejemplo
X, y = make_classification(1000)
In [61]:
# Importando el random forest
from sklearn.ensemble import RandomForestClassifier
In [62]:
rf = RandomForestClassifier() # Creando el modelo
rf.fit(X, y) # Ajustando el modelo
Out[62]:
In [63]:
# verificando la precisión
print("precisión del modelo: {0: .2f}".format((y == rf.predict(X)).mean()))
In [88]:
# determinar los valores
X = data.iloc[:, 1:]
y = data['incidencia']
In [89]:
# Importando el random forest
from sklearn.ensemble import RandomForestClassifier
In [94]:
rf = RandomForestClassifier() # Creando el modelo
rf.fit(X,y)
In [93]:
# verificando la precisión
print("precisión del modelo: {0: .2f}".format((y == rf.predict(X)).mean()))
In [81]:
# importanto SVM
from sklearn import svm
from sklearn.svm import SVC
In [82]:
# determinar los valores a utilizar
data.columns
Out[82]:
In [83]:
# determinar la información
X = data.iloc[:, 1:]
y = data['incidencia']
In [84]:
# tamaño de la malla del gráfico
h = 0.02
In [86]:
# creando el SVM con sus diferentes métodos
C = 1.0 # parametro de regulacion SVM
svc = svm.SVC(kernel='linear', C=C).fit(X, y)
rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(X, y)
poly_svc = svm.SVC(kernel='poly', degree=3, C=C).fit(X, y)
lin_svc = svm.LinearSVC(C=C).fit(X, y)
In [ ]: