Práctica de regresión del método de mínimos cuadrados

Práctica de regresión del algoritmo de mínimos cuadrados de Python

concepto basico

Modelo de regresión lineal

Para diferentes conjuntos de datos, el proceso de minería de datos o aprendizaje automático es el proceso de establecer un modelo de datos. Para los problemas de regresión, la fórmula general para la predicción del modelo lineal es la siguiente:

** y = w [0] * x [0] + w [1] * x [1] + w [2] x [2] +… + w [p] x [p] + b

Aquí x [0] ax [p] representan las características del punto de datos retrasado (el número de características en este ejemplo es p + 1), w y b son los parámetros del modelo de aprendizaje e y es el resultado de la predicción. Para un solo conjunto de datos de características, la fórmula es la siguiente:

* y = w [0] x [0] + b

Como puede ver, esto es muy similar a la ecuación de línea recta en las matemáticas de la escuela secundaria. Donde w [0] es la pendiente. Para conjuntos de datos con más características, w contiene la pendiente a lo largo de cada elemento de coordenadas de característica. Alternativamente, también puede pensar en el valor de respuesta predicho como una suma ponderada de las características de entrada, con la ponderación dada por el elemento de w.

Introducción al algoritmo

Algoritmo de mínimos cuadrados

El algoritmo de mínimos cuadrados ordinarios, o regresión lineal, es el método lineal más simple y clásico para problemas de regresión. La regresión lineal busca los parámetros w y b para hacer el cuadrado medio entre el valor predicho del conjunto de entrenamiento y el valor objetivo de regresión verdadero y El el error es mínimo.
El error cuadrático medio es la suma de los cuadrados de la diferencia entre el valor predicho y el valor verdadero dividido por el número de muestras.

Fuentes de datos

Datos divididos del juego de fps en primera persona csgo: https://www.kaggle.com/sp1nalcord/mycsgo-data
Inserte la descripción de la imagen aquí

csgo es un juego de disparos en primera persona. Los datos incluyen el retraso de la red (ping) de cada jugador, el número de muertes, el número de muertes, la puntuación, etc.
Oye, todavía conozco bien el juego. Este es el único bloguero que puede comprender los conjuntos de datos de varias dimensiones sin mirar la introducción en inglés de los datos originales.

Procesamiento de datos

1. Importar bibliotecas de terceros

import pandas as pd
import numpy as np
import winreg
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression#导入线性回归算法
from sklearn.metrics import r2_score

Las reglas antiguas aparecen primero para importar cada módulo necesario para el modelado a su vez
2. Leer el archivo

import winreg
real_address = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',)
file_address=winreg.QueryValueEx(real_address, "Desktop")[0]
file_address+='\\'
file_origin=file_address+"\\源数据-分析\\avocado.csv"#设立源数据文件的桌面绝对路径
glass=pd.read_csv(file_origin)#https://www.kaggle.com/neuromusic/avocado-prices

Porque cada vez que descarga datos, debe transferir el archivo al directorio raíz de Python o leerlo en la carpeta de descarga, lo cual es muy problemático. Así que configuré una ruta de escritorio absoluta a través de la biblioteca winreg, de modo que solo necesito descargar los datos al escritorio o pegarlos en una carpeta específica en el escritorio para leerlos, y no se confundirán con otros datos.
De hecho, hasta este paso, estamos pasando por el proceso, básicamente cada minería de datos tiene que hacerse nuevamente, no hay nada que decir.

3. Limpieza de los datos Se
Inserte la descripción de la imagen aquí
puede ver que estos datos no incluyen valores perdidos y no hay superposición de atributos entre cada valor de característica, por lo que no hay necesidad de ningún procesamiento por el momento.

4. Modelado

X_train,X_test,y_train,y_test=train_test_split(csgo[["Ping","Kills","Assists","Deaths","MVP","HSP"]],csgo["Score"],random_state=1)

La puntuación se divide en valores predichos, otros atributos se dividen en valores de características y los datos se dividen en conjunto de entrenamiento y conjunto de prueba.

LR=LinearRegression()
LR.fit(X_train,y_train)
prediction=LR.predict(X_test)
r2_score(y_test,prediction)

Después de introducir el algoritmo knn, después del modelado, se puntúa la precisión del conjunto de prueba y los resultados obtenidos son los siguientes:
Inserte la descripción de la imagen aquí

Se puede ver que la precisión del modelo es de aproximadamente el 94%.
En este punto, el modelado de este conjunto de datos está completo.

5. Resumen

1. Se puede sentir que el algoritmo de mínimos cuadrados no es difícil, pero de hecho es uno de los algoritmos más clásicos e importantes. Debido a que muchos otros algoritmos de regresión lineal se derivan de la fórmula de su modelo, debe comprender la fórmula de este modelo.
Debe tener su propia comprensión del principio del algoritmo y puede que no esté especializado en la investigación y el desarrollo de algoritmos, pero debe saber cómo usar el algoritmo y en qué escenarios se usa.

2. Puede ver que este algoritmo no requiere ajuste de parámetros, porque este algoritmo no tiene ningún parámetro, lo cual es una ventaja, pero también refleja una cosa, es decir, no hay forma de controlar la complejidad del modelo, y no hay forma de pasarlo. Ajuste el algoritmo en sí para mejorar la precisión del modelo.

Hay muchos lugares a los que no les está yendo muy bien. Los internautas son bienvenidos a hacer sugerencias y espero encontrar algunos amigos para discutir juntos.

Supongo que te gusta

Origin blog.csdn.net/weixin_43580339/article/details/112271333
Recomendado
Clasificación