CursosEmpresasBlogLiveConfPrecios

Análisis de regresión multivariable

Clase 9 de 18 • Curso de Regresión Lineal con Python y scikit-learn

Contenido del curso

Introducción al curso

  • 1
    Tu primera regresión lineal con scikit-learn

    Tu primera regresión lineal con scikit-learn

    09:00 min
  • 2
    Análisis de datos para tu primera regresión lineal

    Análisis de datos para tu primera regresión lineal

    09:49 min
  • 3
    Entrenando un modelo de regresión lineal con scikit-learn

    Entrenando un modelo de regresión lineal con scikit-learn

    14:01 min

Cómo funciona la regresión lineal

  • 4
    ¿Qué es la regresión lineal?

    ¿Qué es la regresión lineal?

    04:26 min
  • 5
    Cuándo utilizar un modelo de regresión lineal

    Cuándo utilizar un modelo de regresión lineal

    03:53 min
  • 6
    Función de pérdida y optimización: mínimos cuadrados

    Función de pérdida y optimización: mínimos cuadrados

    06:10 min
  • 7
    Evaluando el modelo: R^2 y MSE

    Evaluando el modelo: R^2 y MSE

    04:49 min

Regresión lineal multivariable

  • 8
    Regresión lineal multivariable

    Regresión lineal multivariable

    03:45 min
  • 9
    Análisis de regresión multivariable

    Análisis de regresión multivariable

    Viendo ahora

Proyecto práctico

  • 10
    Regresión lineal para predecir los gastos médicos de pacientes

    Regresión lineal para predecir los gastos médicos de pacientes

    04:15 min
  • 11
    Exploración y preparación de datos

    Exploración y preparación de datos

    07:49 min
  • 12
    Análisis de correlación de los datos

    Análisis de correlación de los datos

    09:57 min
  • 13
    Entrenamiento del modelo

    Entrenamiento del modelo

    10:40 min
  • 14
    Evaluando el modelo

    Evaluando el modelo

    13:20 min
  • 15
    Mejorando el modelo

    Mejorando el modelo

    13:59 min

Pasos siguientes

  • 16
    ¿Qué hay más allá de la linealidad?

    ¿Qué hay más allá de la linealidad?

    04:26 min
  • 17
    Siguientes pasos en modelos de inteligencia artificial

    Siguientes pasos en modelos de inteligencia artificial

    02:11 min
  • 18
    Comparte tu proyecto de regresión lineal y certifícate

    Comparte tu proyecto de regresión lineal y certifícate

Tomar examen

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads

      Comentarios

      Martín Álvarez

      Martín Álvarez

      student•
      hace 3 años
        Alberto Gonzalez

        Alberto Gonzalez

        student•
        hace 3 años
        José Pablo Cabrera Romo

        José Pablo Cabrera Romo

        student•
        hace 3 años
      Andres Gutiérrez Castillo

      Andres Gutiérrez Castillo

      student•
      hace 4 años
        Efrem Medina

        Efrem Medina

        student•
        hace 4 años
        Joel Orellana

        Joel Orellana

        student•
        hace 4 años
      Luis Fernando Laris Pardo

      Luis Fernando Laris Pardo

      student•
      hace 4 años
        Mateo Zarate Guerrero

        Mateo Zarate Guerrero

        student•
        hace 4 años
        Erika Alexandra García Barrios

        Erika Alexandra García Barrios

        student•
        hace 4 años
      Felipe Sebastián Zepeda González

      Felipe Sebastián Zepeda González

      student•
      hace 3 años
        Juan R. Vergara M.

        Juan R. Vergara M.

        student•
        hace 3 años
        Carlos Andrés

        Carlos Andrés

        student•
        hace 2 años
      Tomas Dale

      Tomas Dale

      student•
      hace 4 años
      Ever Orlando Reyes Ruiz

      Ever Orlando Reyes Ruiz

      student•
      hace 4 años
        Gabriel Divenuto

        Gabriel Divenuto

        student•
        hace 3 años
      Juan Santiago Gutierrez Estrada

      Juan Santiago Gutierrez Estrada

      student•
      hace 3 años
        Juan R. Vergara M.

        Juan R. Vergara M.

        student•
        hace 3 años
        Alberto Gonzalez

        Alberto Gonzalez

        student•
        hace 3 años
      KEVIN XAVIER FREGOSO ROMERO

      KEVIN XAVIER FREGOSO ROMERO

      student•
      hace 4 años
        Luis Fernando Laris Pardo

        Luis Fernando Laris Pardo

        student•
        hace 4 años
      Santiago Nicolas Diez

      Santiago Nicolas Diez

      student•
      hace 4 años
        Jhonatan Smith Garcia Muñoz

        Jhonatan Smith Garcia Muñoz

        student•
        hace 3 años
      Tomas Dale

      Tomas Dale

      student•
      hace 4 años
      Dick Saide Suárez Blanco

      Dick Saide Suárez Blanco

      student•
      hace 4 años
      Ángel Samuel Suesca Ríos

      Ángel Samuel Suesca Ríos

      student•
      hace 4 años
      Juan Pablo Ocampo

      Juan Pablo Ocampo

      student•
      hace 2 años
        Antonio Demarco Bonino

        Antonio Demarco Bonino

        student•
        hace 2 años
      Alfonso Andres Zapata Guzman

      Alfonso Andres Zapata Guzman

      student•
      hace 4 años
      Hugo Montoya Diaz

      Hugo Montoya Diaz

      student•
      hace 4 años
      Giancarlo Zevallos Lecca

      Giancarlo Zevallos Lecca

      student•
      hace un año
      Wilmer Fernando Sanabria

      Wilmer Fernando Sanabria

      student•
      hace 7 meses
      jhon Robert Matamoros

      jhon Robert Matamoros

      student•
      hace 3 años
        Yonatan Efraín Jara Boza

        Yonatan Efraín Jara Boza

        student•
        hace 3 años
      Antonio Demarco Bonino

      Antonio Demarco Bonino

      student•
      hace 2 años
      Jhon Freddy Tavera Blandon

      Jhon Freddy Tavera Blandon

      student•
      hace 3 años
        jabes nestor frias martinez

        jabes nestor frias martinez

        student•
        hace 3 años

      Si les aparece un error en la línea

      ax = fig.gca(projection = '3d')

      Intenten cambiando ese comando por

      ax = fig.add_subplot(projection='3d')

      Parece ser un error de versión de matplotlib

      Muchas gracias por esta aclaratoria, tenía el error al que te refieres!

      ¡Gracias, bro!

      graficacion 3d interactiva con plotly

      recomiendo mas usar plotly para graficar y asi obtener una grafica deinamica como la siguiente:

      el codigo es el siguiente: Nota: no realice el paso de escalamiento(para mas facilidad)

      #LIBs import plotly.express as px import plotly.graph_objects as go # TRAINING MODEL X = df[['RM', 'INDUS']].values y = df['MEDV'].values.reshape(-1, 1) slr = LinearRegression() slr.fit(X, y) # PLOTTING mesh_size = .02 margin = 0 # Create a mesh grid on which we will run our model x_min, x_max = X[:,0].min() - margin, X[:,0].max() + margin y_min, y_max = X[:,1].min() - margin, X[:,1].max() + margin xrange = np.arange(x_min, x_max, mesh_size) yrange = np.arange(y_min, y_max, mesh_size) xx, yy = np.meshgrid(xrange, yrange) # Run model pred = slr.predict(np.c_[xx.ravel(), yy.ravel()]) pred = pred.reshape(xx.shape) # Generate the plot fig = px.scatter_3d(df, x='RM', y='INDUS', z='MEDV') fig.update_traces(marker=dict(size=5)) fig.add_traces(go.Surface(x=xrange, y=yrange, z=pred, name='pred_surface')) fig.show()

      referencia: https://plotly.com/python/ml-regression/

      no conocia plotly, la comenzare a usar mas! gracias.

      wowww, la sintaxis cambia mucho de matplotlib?

      Este vídeo es el más pesado (siento yo) del curso, déjenme todas las dudas que tengan y estoy pendiente para ustedes 😄

      Sii una pregunta, sabes de algún curso en Platzi dónde muestren Regresión Lineal Multivariable con el método del Gradiente Descendente?

      Pues yo sí creo que está durito :c

      Quizá esto llega un poco tarde, pero me parece que el proceso de regresión de la grilla falla porque en primera instancia no se normalizaron los datos en X1 y X2. Una solución es generar la grilla a partir de X_std.

      x1_range=np.arange(X_std[:,0].min(),X_std[:,0].max()) x2_range=np.arange(X_std[:,1].min(),X_std[:,1].max()) x1, x2 = np.meshgrid(x1_range,x2_range) pred=slr.predict(np.array([x1.flatten(),x2.flatten()]).T).reshape(x1.shape) fig=plt.figure(figsize=(8,8)) ax = fig.add_subplot(projection='3d') ax.plot_surface(x1,x2,pred, alpha=0.4, linewidth=2) ax.scatter3D(X_std[:,0],X_std[:,1],y_std, color='r',alpha=1) ax.view_init(elev=10,azim=5) ax.set_xlabel('RM') ax.set_ylabel('INDUS') ax.set_zlabel('MEDV') plt.show()
      Figure 6.png

      Gracias amigo, me has ayudado bastante 👍🥇✔

      me has ayudado Gxs

      PREDECIR PARA 2 VARIABLES

      import numpy as np

      rooms = 5 indus =3

      v1 = np.array([rooms,indus]).reshape(1,-1)

      precio = sc_y.inverse_transform(slr.predict(v1))

      print("El precio de una casa con 5 habitaciones y 3 indus en Boston es de ", precio)

      Lineas código para evitar warnings about deprecated:

      # Creating the plot. fig = plt.figure(figsize=(10, 10)) axes = plt.axes(projection='3d') axes.plot_surface(x1, x2, prediction, alpha=1) axes.scatter(df['RM'], df['INDUS'], df['MEDV'], label='Housing Data', marker='.', color='r') axes.view_init(10, 5) plt.show()

      Ever, muchísimas gracias !!!

      Si usaron el Collab de la clase y les sale un error al ejecutar el bloque de “Generando predicción con el modelo”, deben actualizarlo al siguiente.

      num_rooms_std = sc_x.transform(np.array([5.0,10]).reshape(1, -1)) price_std = slr.predict(num_rooms_std) print('El precio en miles es de %.3f'% sc_y.inverse_transform(price_std)) El precio en miles es de 12.865

      En cuyo caso es una predicción para una casa con 5 habitaciones y de la variable INDUS de 10, dado que es un modelo que usa 2 variables y no una solamente. Adicionalmente noten que el reshape pasa de ser (-1, 1) a ser (1,-1)

      Excelente gracias 🥇

      Gracias Juan!

      Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or como se puede resolver?

      Claro, puedes sustituir así el código :D Gracias por mencionar esto fig = plt.figure() ax = fig.add_subplot(projection='3d')

      Me parece y según lo visto hasta ahora que R, en lo que se refiere a estadistica, es tremendamente mas poderoso que python e incluso mas sencillo. Es realmente mucha la diferencia. Alguno que maneje R comparte esta opinión?

      Aqui un estadistico en R. Y en efecto, apenas estoy familiarizandome con Python y en definitiva, R es más amigable y sencillo a la par que poderoso en terminos estadisticos. Igual, hay que sacarle provecho a ambas herrmientas.

      Si solo desean ver el plano, otra forma de grafico

      import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import * import numpy as np

      RANGOS

      x1_range = np.arange(df['RM'].min(), df['RM'].max()) x2_range = np.arange(df['INDUS'].min(), df['INDUS'].max())

      X1, X2 = np.meshgrid(x1_range, x2_range)

      plano = pd.DataFrame({'RM':X1.ravel(), 'INDUS':X2.ravel()})

      pred = slr.predict(plano).reshape(X1.shape) pred = sc_y.inverse_transform(pred) Z = pred

      from matplotlib import cm my_col = cm.jet(Z/np.amax(Z))

      fig , ax = plt.subplots(subplot_kw={"projection":"3d"}) surf = ax.plot_surface(X1,X2,pred, facecolors = my_col) fig.colorbar(surf);

      ----->Análisis de regresión multivariable<----

      σ Objetivo: Reacomodar las lineas de codigo anteriores para poder usar 1 . Importar un herramienta que se le llama toolkits. Usando from mpl_toolkits.mplot3d import* + Lo cual nos ayuda a basicamente graficar en 3d + Luis uso " * " al final, y menciono que significa "everything" (interesante 🤔) 2.Procede a importar numpy usando algo ya visto anteriormente: " import numpy as np" -----------> Explica que se necesita crear un plano, para generar una malla en 3era dimension, y no solo un plano cartesiano. 3. Lo siguiente es usar las variables anteriores " (RM) " " (INDUS) ". Usando " x_range = np.arrange (df [ 'RM' ].min (), df [ 'RM' ].Max() ) " + Notese que se hizo un " arreglo a la funcion minima de ' RM ', asi como para su funcion Maxima . " (Algo asi como delimitar el alcance minimo y el maxio que tiene la funcion dentro del plano). 4. Continua haciendo un copy / paste del codigo anterior y cambia el nombre de la variable " x1_range " a " x2_range " +Esto ya que ahora estamos usando una segunda variable. 5. Interesantemente esta es la funcion que nos permite crear la malla del plano, y esta es la siguiente. " X1, X2 = np.meshgrid(x1_range, x2_range) ". +Debido a que igual no estoy entendiendo al 100% lo que esta pasando. Es importante recalcar la maenra tan peculiar en la ques esta escrito el dodigo, la cual es la estructura de la funcion para crear la malla. + Con esto se crea una malla con todas las variables.

      6. Todo lo anterior ya definido, ahora solo resta crear el plano, para ello se crea la variable " plano " y se aplica lo siguiente: " plano = pd.DataFrame({‘RM’:X1.ravel(), ‘INDUS’:X2.ravel()}) " + se esta defininedo como un Data Frame. + Que a su vez tiene como primera variable el promedio de las casas (RM). + Notese que despues de ' RM ' se utliza " : " el cual es para darle paso a la definicion que es ," X1. ravel() ". +" X1.ravel ()" , el cual a su vez esta poniendo (o invocando el arreglo de numpy que se hizo anteriormente), haciendolo mas sencillo y mejor de graficar. +Por ultimo, Luis agrega solo la siguiente variable que es " ' INDUS ' "y desues se usan dos ( "." ) puntos para deifinir que tiene " X2.ravel () " +Notese que se esta usando llaves ( " { } " )en donde estan las variables. ...interesante 🤔

      σ Una vez definido el plano con el que vamos a trabajar. 1. " pred = slr.predict(plano).reshape(X1.shape)" +Se crea una variable, la cual basicamente se le dice a la prediccion que tenga la misa forma de x1 y que todas las variables tengan las mismas caracteristicas. ( Asi se vuelva mas facil de entender para que maplotlib cree el grafico en 3era dimension ).

      2.pred = sc_y.inverse_transform(pred) +Pondresmos la inversa para que muestre los resultados en comparacion con los precios. + Luis hace nota de que se esta utilizando " sc_y " debido a que se esta usando codigo de anteriores ejercicios. Mas que en casos mas como ahora estamos usando 3 variables, esta bien podria llamarse " sc_z ". 3. Ahora cuando ya tienes la grafica pero ahora sigue definirla como fig = plt.figure() 4. A lo que Luis de inmediatamente despues explica que un axis sobre esta figura de tal manera de que sepa que es una figura en 3 dimensiones. A lo que se usa.

      " ax = fig.gca (projection='3d') " +Lo que se le esta diciendo a Matplotlib, es que tiene que hace una grafica en 3 dimensiones. 7. Lo siguiente es crear la superficie, la malla que se va a usar. Para ello ya se tiene la funcion apropiara, la cual es: " ax.plot_surface (X1,X2,pred, alpha=0.4) " +Diciendo asi que basicamente se va hacer una superficie con la variable" x1", "x2" y la variable " predi " (o prediccion, ya establecida anteriormente). +Asi mismo, agregando al final (y antes de cerrar parentesis) , la cacteristica " alpha = 0.4 ". Lo cual agrega solo un valor de transparencia a la figura, lo que permitira que sea mas legible. ax.plot.dca (projection = '3d') " 8.Ya con esto definido lo ultimo que se tiene que hacer es invocar la version scatter de las variables que ya definiste. Como se muestra a continuacion : " ax.scatter3D( df ['RM'], df ['INDUS'], df ['MEDV'], color = 'R', marker = '.' ) " ---------------->Pasaron muchas cosas. + notese que ax. scatter, ya no es "ax.plotscatter" sino "ax.scatter3D" y esto por que sencillamente ahora estamos usando una grafica 3D y asi que tamb se tomen en cuentan las 3 variables que lo crean. + Y que al final las unicas cosas a destacar tambien, son el que se le pide que el color a usar sea Rojo ( 'R' ) y tamb un marcador que tenga forma de un punto ( '.' ). 9.Lo siguiente que se hizo fue cambiar el punto de vista desde el cual se mostraba la grafica 3D. Para cambiarla se escribio la linea: "ax.view_init (elev = 10, azim =5) + Asiendo asi el que el modelo se vea desde una perspectiva mas adecuada. y se aprecien mejor los detalles del mismo. 10. Por ultimo se escribe "plt.show" Para mostrar el resultado.

      En economîa y econometría esta es una de las cosas mas fundamentales. La regresión lineal permite que podamos estudiar bajo el supuesto de ceteris paribus.

      Si te sale el error: TypeError: gca() got an unexpected keyword argument 'projection' cambila la linea de codigo :

      ax = fig.gca(projection='3d')

      por

      ax = fig.add_subplot(111, projection='3d')

      Brillante. Muchas gracias por tu aporte a la comunidad.

      Realice el escalamiento de nuestras variables y luego grafique. Para como se indico en el ejercicio pasado, se ajustara mejor nuestro modelo. Pero esto me genero una duda, ya que aqui como usamos solo 3 variables para graficar, un scatter 3d nos da las dimensiones visualmente, pero y si en algun caso requirieramos usar 3 variables para predecir otra? tendriamos 4 dimensiones, como lo graficariamos para verlo visualmente? Tengo la nocion de que entraria en juego el PCA para tomar las 3 dimensiones que capturen mejor nuestra varianza y asi graficar? o estos conceptos no se mezclan?

      import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import * import numpy as np x1_range = np.arange(X_std[:,0].min(),X_std[:,0].max()) x2_range = np.arange(X_std[:,1].min(),X_std[:,1].max()) X1, X2 = np.meshgrid(x1_range, x2_range) plano = pd.DataFrame({'RM':X1.ravel(), 'INDUS':X2.ravel()}) plano pred = slr.predict(plano).reshape(X1.shape) import plotly.graph_objects as go import plotly.express as px fig = go.Figure(data=[go.Surface(x=X1, y=pred, z=X2, opacity=0.5)]) fig1 = px.scatter_3d(x=X_std[:,0], y=y_std[:,0], z=X_std[:,1], color_discrete_sequence=['#FA0087'], opacity=0.8) fig1.update_traces(marker=dict(size=5)) fig.add_traces( data=fig1.data ) fig.update_layout(title='Ejercicio', scene_camera_eye=dict(x=1.87, y=0.88, z=-0.64), width=700, height=700, margin=dict(l=65, r=50, b=65, t=90)) fig.show()
      newplot (21).png

      🤔

      1_r3aOsJoXHX7uC2nxn2lygQ.png

      Al ser programador por años, percato que este código no sigue los patrones de código limpio, y no solo lo digo por el profesor en como declara las variables, sino que también la librería que usa muchas abreviaciones, y no es nada entendible estar escribiendo de esa forma, como: gca, elev, azim, etc) se que algunas son fáciles de deducir, pero cuando uno recién es nuevo en esto, parece que esta todo en chino.

      Muchas gracias por ir explicando el porque del codigo que se pone alli, me ha costado un monton entender machine learning y hasta que por fin mi mente esta absorbiendo todo. Mil gracias.

      Hola tengo el siguiente error: UserWarning: X has feature names, but LinearRegression was fitted without feature names warnings.warn(, alguien me puede ayudar?

      Si le haces una captura con el código, podrá ser más sencillo ayudarte

      Le hice un par de retoques al código para que quede más vistoso el scatter3D:

      from mpl_toolkits.mplot3d import * x_01_range = np.arange(df['RM'].min(), df['RM'].max(), 1) x_02_range = np.arange(df['INDUS'].min(), df['INDUS'].max()) X_01, X_02 = np.meshgrid(x_01_range, x_02_range) plane = pd.DataFrame({'RM': X_01.ravel(), 'INDUS': X_02.ravel()}) pred = slr.predict(plane).reshape(X_01.shape) pred = sc_y.inverse_transform(pred) fig = plt.figure(figsize=(15, 10)) ax = fig.add_subplot(111, projection='3d') ax.scatter3D(df['RM'], df['INDUS'], df['MEDV'], color='blue') ax.plot_surface(X_01, X_02, pred, color='red', alpha=0.4) ax.view_init(10, 15 ) ax.set_xlabel('RM') ax.set_ylabel('INDUS') ax.set_zlabel('MEDV') plt.show()

      ##Plotly

      Este código utiliza la biblioteca Plotly para crear una figura 3D con una superficie basada en las predicciones del modelo y puntos dispersos representando los datos reales. Puedes personalizar la apariencia de la gráfica según tus preferencias modificando los parámetros en el código.

      Captura de pantalla 2023-06-17 104803.png

      te quedo bien bonito