1.
Instalar Python (Lenguaje de Programación)
Navegador de preferencia
PYTHON
[Link]
Desde cualquier opción
Marcar las dos
Instalar ahora
No es pesado
CMD
Terminal
2. IDE (Entorno de Desarrollo Integrado) – Visual Studio Code
Clic derecho abrir con VS CODE
Segunda con una carpeta
Atajo
CTRL – SHIFT – P
Dejar ENGLISH
RESTART
INSTALAR – EXTENSIONES
Poderes
Identifica errores de sintaxis-errores – autocompletado
Ayuda a ejecutar cuadernos o Notebooks, facilita a ejecutar bloques de Python
No SCRIPT completos solo bloques – resultados parciales – fragmentos de código
EJERCICIO
1.
Mas Opciones
INSTALAR
Validar que tipos de archivos son con sus iconos asignados
Primer archivo de PYTHON. Folder
Nuevo archivo
[Link]
Py extensión Python
Sentencia Python
Play
Atajos:
Explorador de archivos
Muestra una terminal en el IDE
CTRL B desde fuera de la terminal minimizo la barra lateral
CTRL J desde la terminal ocultar – activar
Mas espacio CTRL J y luego CTRL B
GESTOR DE ARCHIVOS
Instalar los Notebooks ejecutar bloques de código de Python de manera separada
Terminal integrada IDE del VS CODE
Instala recursos que Jupyter funcionen Notebook de manera correcta
Papelera
Cerrar la terminal.
CREAR OTRO ARCHIVO:
son extensiones de Notebook de Jupyter
Se coloca el icono correspondiente de Jupyter. Con la extensión de Material Icon
Crea un nuevo archivo.
Code
Como correr Python
La misma sentencia print
Autocompletado – TAB
IDE extensión Python
Ejecutar bloque de código
Ejecución
Primera línea de código con Python
Otra forma de ejecutar
Control enter al final
Shift Enter.
Ejecuta y crea una nueva línea
Ct
rl enter
Ejecución de linea de código con el lenguaje Python
Configurar entorno de desarrollo
1. Python
2. VS Code
3. Archivos (. Py)
4. Archivos (.ipynb) notebook
Con mucho empeño y dedicación
[Link]
Scikit-learn es una de las bibliotecas más utilizadas para Machine Learning en Python. La
documentación oficial es un excelente recurso para aprender sobre los algoritmos,
transformaciones de datos y métricas de evaluación.
Ejercicio:
# 1. Importación de librerías
import pandas as pd
from [Link] import files
from sklearn.model_selection import train_test_split
from [Link] import StandardScaler, OneHotEncoder
from [Link] import ColumnTransformer
from [Link] import Pipeline
from sklearn.linear_model import LogisticRegression
from [Link] import DecisionTreeClassifier
from [Link] import SVC
from [Link] import classification_report,
confusion_matrix, roc_auc_score, roc_curve, auc
import [Link] as plt
import seaborn as sns
# 2. Carga y exploración de datos
uploaded = [Link]()
nombre_archivo = next(iter(uploaded))
df = pd.read_csv(nombre_archivo, sep=';')
print("Primeras filas del dataset:")
print([Link]())
# 3. Preprocesamiento de datos
target = 'CategoriaPrestamo'
cat_features =
df.select_dtypes(include=['object']).[Link]()
num_features = df.select_dtypes(include=['int64',
'float64']).[Link]()
if target in cat_features:
cat_features.remove(target)
if target in num_features:
num_features.remove(target)
print(f"Variables categóricas: {cat_features}")
print(f"Variables numéricas: {num_features}")
X = [Link](target, axis=1)
y = df[target]
preprocessor = ColumnTransformer(
transformers=[
('num', StandardScaler(), num_features),
('cat', OneHotEncoder(handle_unknown='ignore'),
cat_features)
])
# 4. División de datos
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=42)
# 5. Definición de modelos
models = {
'Regresión Logística': LogisticRegression(max_iter=1000),
'Árbol de Decisión': DecisionTreeClassifier(),
'SVM': SVC(probability=True)
}
# 6. Entrenamiento y evaluación de modelos
for name, model in [Link]():
print(f"Entrenando modelo: {name}")
pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', model)])
[Link](X_train, y_train)
y_pred = [Link](X_test)
# Para modelos que tengan predict_proba (no todos tienen)
y_prob = pipeline.predict_proba(X_test)[:, 1] if hasattr(model,
"predict_proba") else None
print(f"Resultados para {name}:")
print(classification_report(y_test, y_pred))
# Matriz de confusión
cm = confusion_matrix(y_test, y_pred)
[Link](cm, annot=True, fmt='d')
[Link](f'Matriz de Confusión - {name}')
[Link]('Predicción')
[Link]('Real')
[Link]()
# Curva ROC solo para modelos con probabilidades
if y_prob is not None:
fpr, tpr, _ = roc_curve(y_test, y_prob,
pos_label=[Link]()[1])
roc_auc = auc(fpr, tpr)
[Link](fpr, tpr, label=f'{name} (AUC = {roc_auc:.2f})')
[Link]([0,1],[0,1],'k--')
[Link]('Tasa de Falsos Positivos')
[Link]('Tasa de Verdaderos Positivos')
[Link]('Curva ROC')
[Link](loc='lower right')
[Link]()
# 7. Hacer predicciones de aprobación de préstamos para nuevos
clientes
import pandas as pd
# Definir datos del nuevo cliente en un DataFrame (sin la variable
objetivo)
nuevo_cliente = [Link]({
'Edad': [35],
'IngresosMensuales': [4500],
'PuntuacionCrediticia': [720],
'NumPrestamosPrevios': [1]
})
# Usar el pipeline del modelo entrenado, por ejemplo la Regresión
Logística
pipeline = Pipeline(steps=[('preprocessor', preprocessor),
('classifier',
LogisticRegression(max_iter=1000))])
# Entrenar el pipeline con los datos de entrenamiento
[Link](X_train, y_train)
# Realizar la predicción para el nuevo cliente
prediccion = [Link](nuevo_cliente)
probabilidad = pipeline.predict_proba(nuevo_cliente)[:,1]
print(f"Predicción de aprobación (1=aprobado, 0=rechazado):
{prediccion[0]}")
print(f"Probabilidad de aprobación: {probabilidad[0]:.2f}")