0 calificaciones0% 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
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 calificaciones0% 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
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)