Fundamentos prácticos

1

Aplica Platzidoro en este curso y asegura el éxito de tu aprendizaje

2

Los fundamentos de machine learning que aprenderás

3

Introducción a Numpy

4

Introducción y manipulación de datos con Pandas

5

Introducción a ScikitLearn

6

Comandos básicos de las librerías usadas en el curso (Numpy, Pandas y ScikitLearn)

Regresión Lineal y Logística

7

¿Qué es la predicción de datos?

8

Sobreajuste y subajuste en los datos

9

Regresión lineal simple y regresión lineal múltiple

10

Regresión lineal simple con Scikit-Learn: división de los datos

11

Regresión lineal simple con Scikit-Learn: creación del modelo

12

Regresión logística con Scikit-Learn: definición y división de datos

13

Regresión logística con Scikit-Learn: evaluación del modelo

14

Matriz de confusión

15

PlatziDoro Cápsula 1

Árboles de decisión

16

¿Qué es un árbol de decisión y cómo se divide?

17

Comprendiendo nuestro data set para la creación de un árbol de decisión

18

Creando un clasificador con Scikit-Learn

19

Entrenamiento del modelo de clasificación

20

Visualización del árbol de decisión

K-Means

21

¿Qué es K-Means?

22

Cargando el data set de Iris

23

Construcción y evaluación del modelo con K-Means

24

Graficación del modelo

25

PlatziDoro Cápsula 2

Aprendizaje profundo

26

Introducción al aprendizaje profundo

27

Conceptos básicos de Tensor Flow

28

Red neuronal convolucional

29

Conociendo el set de datos para la creación de la red neuronal

30

Crea y entrena tu primera red neuronal convolucional con Tensor Flow

31

Evaluación de la red convolucional

32

PlatziDoro Cápsula 3

Despedida

33

Recomendaciones para analizar correctamente tu problema

34

Siguientes pasos para continuar aprendendiendo de Machine Learning

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Regresión logística con Scikit-Learn: definición y división de datos

12/34
Recursos

Aportes 28

Preguntas 9

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Tal vez sea básico lo que voy a decir pero cuando me di cuenta me hizo mucho sentido: La razón porque X esta en mayúscula es porque matemáticamente estamos hablando de una matriz, en cambio y es minúscula porque estamos hablando de un vector.

Cuando ejecuto la caja [7] me sale el siguiente error:

/usr/local/lib/python3.6/dist-packages/sklearn/linear_model/_logistic.py:940: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)```

Como puedo aumentar el numero de iteraciones?

Regresión Logística
Modelo de regresión que está más enfocado en la clasificación de datos cualitativos, entregándonos como resultado un 0 o 1 (sí o no)

Implementación del código

  • Importar las librerías necesarias
import pandas as pd
from sklearn.model_selection import train_test_split #permite dividir nuestros datos
from sklearn import metrics #nos permite evaluar nuestro modelo
from sklearn.linear_model import LogisticRegression() #modelo que vamos a aplicar
import matplotlib.pyplot as plt
import seaborn as sns #nos permite mejorar la presentación de los gráficos
%matplotlib inline #nos permite insetar gráficos en el notebook
  • Importamos nuestros datos y generamos nuestras variables
diabetes = pd.read_csv(<nombre_archivo>)
feature_cols = ['Pregnancies','Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age'] #columnas presentes en el dataset
x= diabetes[feature_cols]
y= diabetes[['Outcome']]
X_train, X_test, Y_train, Y_test = train_test_split(x,y,test_size=0.25, random_state=0)
  • Entrenamos el modelo
logreg = LogisticRegression()
logreg.fit(X_train,Y_train)
y_pred = logreg.predict(X_test) #Recogemos las predicciones que entrega nuestro modelo para los datos de prueba

Acabo de entender porqué se llama regresión logísitica. La función de activación es un caso específico de una curva logística o u sigmoide.

Por si a alguien le sale el mismo error del numero de iteraciones

ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.

Increase the number of iterations (max_iter) or scale the data as shown in:
    https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
  extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)

Se soluciona cambiando el valor predefinido en LogisticRegression. En otras palabras:

logreg = LogisticRegression(max_iter=len(X_train))
logreg.fit(X_train, Y_train)
y_pred = logreg.predict(X_test)

Me gusta más usarlo de esta forma como en otros cursos, da lo mismo, no?

x = df.drop(['Outcome'],axis=1)
y = df['Outcome']

logreg = LogisticRegression()
logreg.fit(X_train, Y_train)
y_pred = logreg.predict(X_test)```

Alguien me explica, por favor, por qué al momento de definir nuestros features y etiquetas (X’s Y Y’'s) en la regresión lineal utilizamos .values y aquí, en la regresión logística no ?
Gracias!

si tuvieron un warning por alcanzar el número máximo de iteraciones, deben modificar el parámetro del objeto LogisticRegression()

logreg = LogisticRegression(max_iter=10000)

Para ampliar un poco más los conceptos teoricos y entender los casos de uso de la Regresión Logistica les recomienda este post.

Hola, tengo una pregunta, por qué cuando se usa el Predict no se hace con X_train en vez de X_test?

cada vez que tiene un erro es de dedo uy copie mal 54 files pff un error de dedo

%matplotlib inline

El comando ajusta el backend de la función mágica matplotlib, lo que significa es que el resultado de los plots generados en la celda se muestran en la misma celda. No es necesario incluir el %matplotlib inline puesto que ya viene por defecto.

Intentando reproducir el código de la clase me tope el error

AttributeError: 'str' object has no attribute 'decode'. Did you mean: 'encode'?

Al parecer scikit-learn esta tratando de decodificar un string que ya esta decodificado, después de buscar como solucionarlo logré hacerlo añadiendo solver = ‘liblinear’ a la hora de llamar el método

logreg = LogisticRegression(solver='liblinear')

%matplotlib inline

Si NO usan esa línea, les devolvería algo así en Jupyter Notebooks:


Si agregan %matplotlib inline, tendrían esto:


Fuente: https://stackoverflow.com/questions/43027980/purpose-of-matplotlib-inline

Compañeros, no entiendo exactamente como funciona

y_pred = logreg.predict(X_test)```

No debería de colocarse también Y_test ya que la predicción se basa en torno a los dos parámetros del test
De antemano gracias

alguien sabe si existe algun app para apreder alt 251 y me copie 'X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.25, random_state = 0)'÷Ï~

Me lanza el siguiente error y no se a que se deba

![](

La función head() por defecto te muestra los primeros 5 elementos, así que no es necesario especificarlo, a menos que solo desees mostrar (por ejemplo) los primeros 3 elementos. 😃

La información es limpia pues pasa por un proceso previo

Excelente clase, muy bien explicados los conceptos y el código!

diabetes.columns

Index([‘Pregnancies’, ‘Glucose’, ‘BloodPressure’, ‘SkinThickness’, ‘Insulin’,
‘BMI’, ‘DiabetesPedigreeFunction’, ‘Age’, ‘Outcome’],
dtype=‘object’)

Si alguien se quiere ahorrar el escribir todas las columnas

fc = list(diabetes.columns)

# Elimina SkinThickness
fc.pop(3)

# Elimina Outcome
fc.pop(7)

# Para mostrar los elementos en la lista
fc

Uso fc solo para hacer la diferencia de feauture_cols, pueden usarlo igual

Definición de Regresión Logístisca

yo lo solvente asi