minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
A regressão logística é um método de aprendizagem estatística comumente usado, usado principalmente para resolver problemas de classificação.Apesar da palavra “regressão” no nome, na verdade é um algoritmo de classificação
Este é o uso mais básico e comum da regressão logística.Ele pode prever se um evento ocorrerá e o resultado de saída será sim ou não
Por exemplo:
Todos esses exemplos têm uma característica comum, ou seja, existem apenas dois resultados, verdadeiro (1) e falso (0)
A regressão logística pode ser estendida a problemas de classificação multicategorias por meio de métodos como One-vs-Rest ou softmax
Por exemplo:
Todos esses exemplos têm uma característica comum, ou seja, o mesmo objeto tem vários resultados possíveis, semelhantes às nossas questões comuns de múltipla escolha. Existem várias opções, mas há apenas uma opção que melhor se adapta à resposta.
A regressão logística não apenas fornece resultados de classificação, mas também produz valores de probabilidade, o que é muito útil em muitos cenários.
Por exemplo:
Todos esses exemplos têm uma característica comum, que é a previsão, ou seja, usar resultados conhecidos para deduzir resultados desconhecidos.
Imagine que você é médico e precisa determinar se um paciente tem determinada doença. A regressão logística é como um assistente inteligente para ajudá-lo a fazer esse julgamento. Assim como um médico analisa vários indicadores do exame físico de um paciente, a regressão logística considerará vários fatores relacionados (nós os chamamos de características). Algumas métricas podem ser mais importantes que outras. A regressão logística atribui um “peso” a cada fator, refletindo sua importância. Finalmente, em vez de simplesmente dizer “sim” ou “não”, dá uma probabilidade. Por exemplo, “A probabilidade deste paciente contrair a doença é de 70%”. Você pode definir um padrão, por exemplo, se ultrapassar 50% é considerado “sim”, caso contrário é considerado “não”. A regressão logística “aprende” com um grande número de casos conhecidos. Assim como um médico ganhando experiência em um grande número de casos.
É claro que o papel da regressão logística vai muito além disso, limitado pelo espaço (Na verdade, eu só quero ser preguiçoso), não vou entrar em muita introdução.
Pessoalmente, não gosto de fornecer muitas fórmulas matemáticas de maneira prolixa e, em seguida, dizer que os princípios subjacentes são essas fórmulas matemáticas e deixar que você mesmo as compreenda lentamente.O que espero é ser capaz de analisar algumas fórmulas básicas e por que é necessário usá-las. Isso é algo que espero poder explicar claramente em meu artigo.
e = b0 + b1x1 + b2x2 + ... + bn*xn
Não importa se você não entende o código, basta olhar a imagem
- import matplotlib.pyplot as plt
- import numpy as np
- import matplotlib.font_manager as fm
-
- # Generate some simulated house data
- np.random.seed(0)
- area = np.random.rand(100) * 200 + 50 # House area (square meters)
- price = 2 * area + 5000 + np.random.randn(100) * 500 # House price (ten thousand yuan)
-
- # Fit the data using linear regression
- from sklearn.linear_model import LinearRegression
- model = LinearRegression()
- model.fit(area.reshape(-1, 1), price)
-
- # Get the regression coefficients
- b0 = model.intercept_
- b1 = model.coef_[0]
-
- # Plot the scatter plot
- plt.scatter(area, price, label="House Data")
-
- # Plot the regression line
- plt.plot(area, b0 + b1*area, color="red", label="Linear Regression")
-
- # Set the plot title and axis labels
- plt.title("Linear Regression of House Area and Price")
-
- # Set the font to SimSun (楷体)
- font_prop = fm.FontProperties(fname=r"C:WindowsFontssimkai.ttf", size=12) # Replace with your SimSun font path
-
- plt.xlabel("House Area (Square Meters)", fontproperties=font_prop)
- plt.ylabel("House Price (Ten Thousand Yuan)", fontproperties=font_prop)
-
- # Add legend
- plt.legend()
-
- # Show the plot
- plt.show()
1. Gere dados de simulação de 100 casas
- np.random.seed(0)
- area = np.random.rand(100) * 200 + 50
- price = 2 * area + 5000 + np.random.randn(100) * 500
2. Use regressão linear para ajustar os dados
- from sklearn.linear_model import LinearRegression
- model = LinearRegression()
- model.fit(area.reshape(-1, 1), price)
3. Obtenha o coeficiente de regressão (b0 ~ bn)
- b0 = model.intercept_
- b1 = model.coef_[0]
4. Desenhe um gráfico de dispersão
plt.scatter(area, price, label="House Data")
5. Desenhe a linha de regressão
plt.plot(area, b0 + b1*area, color="red", label="Linear Regression")
6. Defina o título do artigo
plt.title("Linear Regression of House Area and Price")
7. Defina a fonte para itálico e tamanho da fonte (se houver)
- font_prop = fm.FontProperties(fname=r"C:WindowsFontssimkai.ttf", size=12)
- plt.xlabel("House Area (Square Meters)", fontproperties=font_prop)
- plt.ylabel("House Price (Ten Thousand Yuan)", fontproperties=font_prop)
8. Adicione uma legenda
plt.legend()
9. Exibir gráficos
plt.show()
Este código usa regressão linear para ajustar a relação entre área da casa e preço (os títulos horizontais e verticais são descritos em inglês para evitar erros)
Algumas pessoas podem perguntar: Por que produzimos uma quantidade tão grande de dados?
Boa pergunta~
Com esses dados, podemos calcular aproximadamente e = b0 + b1x1 + b2x2 + ... + bn*xn E o coeficiente?
Especificamente:
Ao coletar uma grande quantidade de dados, podemos utilizar um modelo de regressão linear para calcular esses coeficientes e construir um modelo preditivo.Este modelo pode nos ajudar a compreender o impacto de diferentes fatores na variável alvo e prever o valor da variável alvo no futuro (semelhante a y = kx + b em matemática. Com k e b específicos, podemos prever y obtendo x , a diferença é que existem mais coeficientes k aqui)
σ(x) = 1 / (1 + exp(-x))
A imagem da função sig fica assim:
Como mencionamos antes, o uso mais básico da regressão logística é resolver problemas de classificação binária.
O objetivo da regressão logística é converter a saída de um modelo linear (que pode ser qualquer número real) em um valor de probabilidade que represente a probabilidade de ocorrência de um evento, e o valor de probabilidade deve naturalmente variar de 0 a 1.
A função sigmóide realiza esta tarefa perfeitamente: comprime a saída do modelo linear entre 0 e 1 e, à medida que o valor de entrada aumenta, o valor de saída aumenta gradualmente, o que é consistente com a tendência de mudança do valor de probabilidade.
Observe a função de sig. Quando se aproxima do infinito positivo, aproxima-se de 1 infinitamente. Quando se aproxima do infinito negativo, não se enquadra no nosso problema de 0 ou de 1?
Então alguém quer dizer de novo, então você está errado. Embora se diga que os dois lados podem estar infinitamente próximos, o meio não pode ser alcançado. Por exemplo, 0,5 está entre 0 e 1, então você diz que 0,5 está próximo de 0. Ou está se aproximando de 1?
Embora se diga que os números do meio não podem ser próximos, posso defini-lo artificialmente ~
Por exemplo, se eu colocar os números >= 0,5 na categoria 1 e os números < 0,5 na categoria 0, o problema será resolvido ~
Portanto, 0,5 não é um ponto crítico, mas um limite que estabelecemos artificialmente para classificação.
p = σ(b0 + b1*x1 + b2*x2 + ... + bn*xn) = 1 / (1 + exp(-(b0 + b1*x1 + b2*x2 + ... + bn*xn)))
Já falamos muito antes apenas para apresentar esta fórmula
Dá dor de cabeça só de olhar? Só de olhar para isso me dá dor de cabeça, então por que não simplificamos isso ~
Veja, é muito mais revigorante assim, igual a um cara bonito que não gosta de se vestir bem. Ele arrumou um pouco a aparência, e aí você descobriu, uau, esse cara está tão lindo ~.
Ahem, estou divagando ~ EntãoA regressão logística é, na verdade, regressão linear + função sigmóide
z na função sigmóide usa regressão linear e = b0 + b1x1 + b2x2 + ... + bn*xn substituir
Então, o que isso faz?
OK, vamos dar uma olhada ~
A essência da regressão logística éPrever a probabilidade de um evento ocorrer .Não classifica diretamente os dados, mas mapeia os resultados da regressão linear para o intervalo 0~1 por meio de uma função (função sigmóide). O valor neste intervalo representa a possibilidade de ocorrência do evento.
A base da regressão logística é a regressão linear. A regressão linear constrói um modelo linear e tenta ajustar os dados com uma função linear para obter um valor previsto.Este valor previsto pode ser qualquer valor e não é restrito pelo intervalo 0~1.
A função Sigmóide é uma função "mágica" que converte o valor previsto obtido pela regressão linear no intervalo 0~1, e os valores neste intervalo podem ser interpretados como a probabilidade de ocorrência do evento.
Para realizar a classificação binária, precisamos definir um limite, geralmente 0,5.Se a probabilidade prevista for maior que o limite, é determinada como uma classe positiva, caso contrário, é determinada como uma classe negativa.
Por exemplo:
A função à esquerda pode ser vista como uma função de regressão linear e a função à direita é a função sigmóide mapeada.