0% encontró este documento útil (0 votos)
16 vistas3 páginas

Resumen Python 3 Machine Learning

El documento proporciona una guía sobre el uso de Scikit-Learn para aprendizaje automático en Python, incluyendo instalación, importación de datasets y técnicas de preprocesamiento. Se detallan estimadores para clasificación, regresión y agrupación, así como el uso de pipelines y validación de modelos. Además, se mencionan métricas para evaluar el rendimiento de los modelos y métodos para guardar y cargar modelos entrenados.
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)
16 vistas3 páginas

Resumen Python 3 Machine Learning

El documento proporciona una guía sobre el uso de Scikit-Learn para aprendizaje automático en Python, incluyendo instalación, importación de datasets y técnicas de preprocesamiento. Se detallan estimadores para clasificación, regresión y agrupación, así como el uso de pipelines y validación de modelos. Además, se mencionan métricas para evaluar el rendimiento de los modelos y métodos para guardar y cargar modelos entrenados.
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/ 3

Python Machine Learning

Scikit-Learn
• Uso Principal: algoritmos de aprendizaje automático.
• Instalación: sudo pip3 install scikit-learn
• Importación: import sklearn
• Datasets:
from sklearn import datasets # Todos están en el mismo espacio de nombres.
iris = datasets.load_iris() # Existen múltiples (BD pequeñas), se cargan con ‘load_<ds>()’.
news = datasets.fetch_20newsgroups() # BD más grandes, se descargan con ‘fetch_<ds>()’.
generado = datasets.make_blobs # BD generadas, todas son ‘make_<ds>()’.
datos = iris.data # Array de numpy de tamaño (n_samples, n_features).
cols = iris.feature_names # Nombres de las columnas con los datos.
categ = iris.target # Categoría a la que pertenece cada ejemplo (índice).
categ = iris.target_names # Nombres de las categorías.
arch = iris.filename # Ruta completa al archivo físico con los datos.
descri = iris.DESCR # Texto descriptivo del conjunto de datos.
• Utilidades:
from.sklearn.model_selection import train_test_split
x_trn, y_trn, x_val, y_val = train_test_split(x, y, train_size=0.8, test_size=0.2)
from sklearn.model_selection import GridSearchCV # Buscar mejores parámetros.
params = {'pca__n_components': [5, 20, 30, 40, 50, 64], 'logistic__alpha': np.logspace(-4, 4, 5)}
search = GridSearchCV(tubo, params, iid=False, cv=5) # “tubo” es un pipeline.
search.best_params_ # Mejor combinación de parámetros.
search.best_score_ # Mejor puntuación encontrada.
from sklearn.inspection import plot_partial_dependence
plot_partial_dependence(estimador, X, atributos) # Mostrar gráficos con dependencias
• Preprocesado:
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
numerical_transformer = SimpleImputer(strategy='constant') # Datos numéricos.
categorical_transformer = Pipeline(steps=[ # Datos categóricos.
('imputer', SimpleImputer(strategy='most_frequent')),
('onehot', OneHotEncoder(handle_unknown='ignore'))])
preprocessor = ColumnTransformer(
transformers=[
('num', numerical_transformer, numerical_cols),
('cat', categorical_transformer, categorical_cols)])
encoder = LabelEncoder()
encoded = ks[['cat1', 'cat2', 'cat3']].apply(encoder.fit_transform) # Categóricos → Enteros
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import MultiLabelBinarizer
y = LabelBinarizer().fit_transform(y) # Salidas con array one-hot. [0, 0, 1, 0, 0]
y = MultiLabelBinarizer().fit_transform(y) # Salidas con arrays multi-hot. [1, 0, 1, 0, 1]
from sklearn import preprocessing
procesado = preprocessing.normalize(X, norm=’l2’) # Entre cero y uno.
procesado = preprocessing.scale(X) # Media cero y varianza uno.
procesado = preprocessing.minmax_scale(X) # Entre un mínimo y un máximo.
procesado = preprocessing.robust_scale(X) # Ignora los outliners.
procesado = preprocessing.quantile_scale(X) # Redondea hacia los cuantiles indicados.
escala = preprocessing.Normalizer()
escala = preprocessing.StandardScaler()
escala = preprocessing.MinMaxScaler()

1
escala = preprocessing.RobustScaler()
escala = preprocessing.QuantileTransformer()
escala = preprocessing.PowerTransformer(method='box-cox') # A curva gaussiana.
from sklearn.preprocessing import OrdinalEncoder() # Categóricas → Numéricas (1...n)
from sklearn.preprocessing import OneHotEncoder() # Categóricas → Numéricas (One-Hot)
from sklearn.preprocessing import KBinsDiscretizer() # Discretizar valores continuos.
from sklearn.preprocessing import Binarizer() # Discretización booleana según umbral.
discreto = KBinsDiscretizer(encode=’ordinal’)
binario = Binarizer(threshold=0.75)
from sklearn.preprocessing import PolynomialFeatures # Agregar componentes polinómicos.
poly = PolynomialFeatures(2) # Generar modelo de orden cuadrático.
from sklearn.preprocessing import FunctionTransformer # Transformaciones personalizadas.
transformador = FunctionTransformer(np.log1p, validate=True)
from sklearn.impute import MissingIndicator # Indica si hay o no valores nulos.
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import SimpleImputer
from sklearn.impute import IterativeImputer
imp = SimpleImputer(missing_values=np.nan, strategy='mean') # Pasar NaN a media de columna.
imp = IterativeImputer() # Más complejas y cuando depende de otras columnas.
• Estimadores: objetos que aprenden (fit) y realizan predicciones (predict).
◦ Clasificación:
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(leaf_size=30, metric='minkowski', n_neighbors=5)
knn.fit(X_trn, y_trn)
y_pred = knn.predict(X_tst)
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression(solver='lbfgs', multi_class='multinomial')
probabilidades = logreg.predic_proba(X)
from sklearn.linear_model import RidgeClassifier
ridge = RidgeClassifier(alpha=0.1)
from sklearn.ensemble import RandomForestRegressor
bosque = RandomForestRegressor(n_estimators=100)
from sklearn.svm import SVC
svc = SVC(C=500, gamma='scale', kernel=’rbf’)
from sklearn.neural_network import MLPClassifier
mlp = MLPClassifier(hidden_layer_sizes=[50, 100, 50, ], solver='adam', alpha=0.0001,
batch_size='auto', momentum=0.9, beta_1=0.9, beta_2=0.999, epsilon=1e-8)
from sklearn.multiclass import OneVsRestClassifier
clf = OneVsRestClassifier(estimator=estimador)
◦ Regresión:
from sklearn.linear_model import LinearRegression
lin = LinearRegression()
from sklearn.linear_model import Ridge
ridge = Ridge(alpha=0.1)
from sklearn.linear_model import Lasso
lasso = Lasso(alpha=0.1)
from sklearn.svm import SVR
svr = SVR(C=500, gamma='scale', kernel=’rbf’)
from xgboost import XGBRegressor
xgb = XGBRegressor(n_estimators=500, learning_rate=0.5, n_jobs=4)
xgb.set_param(learning_rate=0.05) # Cambiar el valor de un parámetro.
◦ Agrupación:
from sklearn.cluster import KMeans
grupos = KMeans(n_clusters=3)
grupos.labels_ # Agrupaciones realizadas.

2
grupos.cluster_centers_ # Datos de centroides.
from sklearn.cluster import FeatureAgglomeration
from sklearn.feature_extraction.image import grid_to_graph
aglomera = FeatureAgglomeration(conectivity=grid_to_graph(…), n_clusters=32)
reducido = aglomera.transform(X) # Reducción de dimensionalidad.
aproximada = aglomera.inverse_transform(reducido) # Recuperar de reducción.
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
pca.components_ # Autovectores
pca.explained_variance_ # Autovalores
• Pipeline:
from sklearn.pipeline import Pipeline
tubo = Pipeline(steps=[('preprocesar', prep), ('pca', pca), ('logistic', logistic)])
tubo.steps # Pasos que se realizan dentro del pipeline.
tubo[0] # Acceder al paso directamente, según índice.
tubo[‘pca’] # Acceder al paso directamente, según clave.
tubo.set_params(pca__C=10) # Parámetros de estimadores: <estimador>__<parámetro>.
tubo.fit(X_train, y_train)
preds = tubo.predict(X_valid)
from sklearn.pipeline import make_pipeline
make_pipeline(Binarizer(), MultinomialNB())
• Validación:
from sklearn.model_selection import cross_val_score
score = mean_absolute_error(y_valid, preds)
scores = -1 * cross_val_score(my_pipeline, X, y, cv=5, scoring='accuracy')
• Guardar/Cargar Modelos: se suelen usar pickle (memoria) y joblib (disco).
import pickle
stm = pickle.dump(estimador)
estimador = pickle.loads(stm)
from joblib import dump, load
dump(estimador, ‘archivo.joblib’)
estimador = load(‘archivo.joblib’)
• Características Principales:
from sklearn.feature_selection import RFE # Recursive Feature Elimination
selector = RFE(modelo, 2, step=1) # modelo = LinearRegression(), por ejemplo.
selector = selector.fit(X, y)
selector.support_ # Indica con booleanos las variables principales.
selector.ranking_ # Indica el orden de las variables según su importancia.
• Métricas:
from sklearn import metrics
accuracy_score(Y_real, Y_predicho)
pecision_score(Y_real, Y_predicho)
recall_score(Y_real, Y_predicho)
confusion_matrix(Y_real, Y_predicho)
f1_score(Y_real, Y_predicho)
r2_score(Y_real, Y_predicho)
especf, sensib, umbrales = metrics.roc_curve(Y, probabilidades)
auc(especf, sensib)
mean_absolute_error(Y_real, Y_predicho)
mean_squared_error(Y_real, Y_predicho)
mean_squared_log_error(Y_real, Y_predicho)
median_absolute_error(Y_real, Y_predicho)
r2_score(Y_real, Y_predicho)
pairwise_distances(X)
manhattan_distances(X)

También podría gustarte