0% encontró este documento útil (0 votos)
218 vistas1 página

Guía de Referencia de Scikit-Learn

Este documento proporciona una guía de referencia sobre el uso de Scikit-learn, una librería de Python para machine learning. Explica cómo implementar varios algoritmos de aprendizaje supervisado y no supervisado como Naive Bayes, KNN, árboles de decisión, bosques aleatorios y SVM. También cubre técnicas de preprocesamiento de datos, partición de datos de entrenamiento y prueba, métricas de evaluación de modelos y validación cruzada. El objetivo es proporcionar una introducción básica a los conceptos y
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
218 vistas1 página

Guía de Referencia de Scikit-Learn

Este documento proporciona una guía de referencia sobre el uso de Scikit-learn, una librería de Python para machine learning. Explica cómo implementar varios algoritmos de aprendizaje supervisado y no supervisado como Naive Bayes, KNN, árboles de decisión, bosques aleatorios y SVM. También cubre técnicas de preprocesamiento de datos, partición de datos de entrenamiento y prueba, métricas de evaluación de modelos y validación cruzada. El objetivo es proporcionar una introducción básica a los conceptos y
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 1

Facultad de

Programa de formación Machine Learning and Data Science MLDS

Naïve bayes Evaluación del desempeño


Guía de referencia Scikit-learn from sklearn.naive_bayes import GaussianNB Métricas para clasificación
gnb = GaussianNB()
Scikit-learn es una librería de código abierto de Python con una Exactitud
licencia comercialmente usable que implementa una serie de algoritmos KNN
de aprendizaje computacional, preprocesamiento, validación cruzada y print(knn.score(X_test, y_test)) score de modelos
visualización en una única interfaz construida con Numpy, Scipy y from sklearn import neighbors from sklearn.metrics import accuracy_score accurancy_score de
Matplotlib. print(accuracy_score(y_test, y_pred)) metrics
knn = neighbors.KNeighborsClassifier(n_neighbors=14)
Ejemplo básico Árboles de decisión Reporte de Clasificación
from sklearn import tree, datasets, preprocessing from sklearn.metrics import classification_report precision, recall,
from sklearn.model_selection import train_test_split from sklearn import tree
clf = tree.DecisionTreeClassifier(criterion='gini') classification_report(y_test, y_pred) F-1
from sklearn.metrics import accuracy_score
iris = datasets.load_iris()
X, y = iris.data[:, :2], iris.target Bosques aleatorios Matriz de Confusión
X_train, X_test, y_train, y_test = train_test_split(X, y, from sklearn.metrics import confusion_matrix
random_state=33) from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(max_depth=2, print(confusion_matrix(y_test, y_pred))
scaler = preprocessing.StandardScaler().fit(X_train)
X_train = scaler.transform(X_train) random_state=32) Métricas para regresión
X_test = scaler.transform(X_test)
clf = tree.DecisionTreeClassifier(max_depth=3) Máquinas de Vectores de Soporte (SVM)
clf.fit(X_train, y_train) Error Absoluto Medio
y_pred = clf.predict(X_test) from sklearn.svm import SVC from sklearn.metrics import mean_absolute_error
print(accuracy_score(y_test, y_pred)) svc = SVC(kernel='linear') print(mean_absolute_error(y_true, y_pred))
Cargar datos Aprendizaje no supervisado Error Cuadrático Medio
Los modelos de scikit-learn aceptan datos numéricos almacenados en from sklearn.metrics import mean_squared_error
arreglos de Numpy o en matrices dispersas de Scipy. Otros tipos de datos Análisis de Componentes Principales (PCA)
print(mean_squared_error(y_test, y_pred))
convertibles a arreglos de Numpy también son aceptables, como listas y
DataFrames de Pandas. from sklearn.decomposition import PCA
pca = PCA(n_components=0.95) Métricas para agrupamientos
Partición Entrenamiento - Prueba K-Means Inercia
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) from sklearn.cluster import KMeans print(k_means_model.inertia_)
k_means = KMeans(n_clusters=5, random_state=2)
Preprocesamiento Coeficiente de Silueta
Predicción
Estandarización - media cero y varianza uno labels = k_means_model.labels_
Modelos supervisados
print(metrics.silhouette_score(X, labels, metric='euclidean'))
scaler = preprocessing.StandardScaler()
X_train_standarized = scaler.fit_transform(X_train) y_pred = svc.predict(X_test) Predecir etiquetas
y_pred = knn.predict_proba(X_test) Probabilidad de etiquetas Homogeneidad
# NO se hace fit con los datos de prueba
X_test_standarized = scaler.transform(X_test) from sklearn.metrics import homogeneity_score
Modelos no supervisados print(homogeneity_score(y_true, y_pred))
Normalización - vectores con norma 1
y_pred = k_means.predict(X_test) Etiqueta en agrupamiento Validación cruzada
# fit no hace nada
scaler = preprocessing.Normalizer()
X_train_normalized = scaler.transform(X_train) Pipelines from sklearn.cross_validation import cross_val_score
X_test_normalized = scaler.transform(X_test) print(cross_val_score(knn, X_train, y_train, cv=5))
Ejemplo básico print(cross_val_score(lr, X, y, cv=4))
Binarización
from sklearn.pipeline import Pipeline Afinar modelos
binarizer = preprocessing.Binarizer(threshold=0.0) pipe = Pipeline([('scaler', StandardScaler()),
X_binary = binarizer.fit_transform(X) ('svc', SVC())]) Búsqueda de hiperparámetros - GridSearch
Codificación de variables categóricas # Un pipeline puede ser usado como cualquier modelo
from sklearn.grid_search import GridSearchCV
pipe.fit(X_train, y_train) params = {"n_neighbors": np.arange(1,9),
enc = preprocessing.OneHotEncoder() pipe.score(X_test, y_test)
X_train_encoded = enc.fit_transform(X_train) "metric": ["euclidean", "cityblock"]}
grid = GridSearchCV(estimator=knn, param_grid=params)
Ejemplo avanzado grid.fit(X_train, y_train)
Codificación de etiquetas
from sklearn.pipeline import make_pipeline print(grid.best_score_)
enc = preprocessing.LabelEncoder() from sklearn.compose import make_column_transformer print(grid.best_estimator_.n_neighbors)
y = enc.fit_transform(y)
Búsqueda de Hiperparámetros aleatorizada
num_proc = make_pipeline(
Imputación de variables faltantes SimpleImputer(strategy='median'), StandardScaler()) from sklearn.grid_search import RandomizedSearchCV
imp = preprocessing.Imputer(missing_values=0, strategy='mean', cat_proc = make_pipeline( params = {"n_neighbors": range(1,10),
axis=0) SimpleImputer(strategy='constant', "weights": ["uniform", "distance"]}
fill_value='missing' rsearch = RandomizedSearchCV(estimator=knn, param_distributions=params,
Discretización ), cv=4, n_iter=8, random_state=47)
OneHotEncoder(handle_unknown='ignore')) rsearch.fit(X_train, y_train)
from preprocessing import KBinsDiscretizer print(rsearch.best_score_)
# Se aplican transformaciones a cada columna
discretizer = KBinsDiscretizer(n_bins=[3, 2, 2], encode='ordinal') preprocessor = make_column_transformer(
(num_proc, ('feat1', 'feat3')),
Generación de características polinomiales (cat_proc, ('feat0', 'feat2')))

from sklearn.preprocessing import PolynomialFeatures clf = make_pipeline(preprocessor, LogisticRegression())


poly = PolynomialFeatures(2)
Evaluación del desempeño
Modelos
Métricas para clasificación
Aprendizaje supervisado
Exactitud
Regresión lineal
print(knn.score(X_test, y_test)) score de modelos
from sklearn.linear_model import LinearRegression from sklearn.metrics import accuracy_score accurancy_score de
print(accuracy_score(y_test, y_pred)) metrics
lr = LinearRegression(normalize=True)

También podría gustarte