1. Regressão linear
A regressão é um método de aprendizagem supervisionada. A ideia central deste método é obter um modelo matemático a partir de dados estatísticos contínuos e, em seguida,
Use este modelo matemático para previsão ou classificação. Os dados processados por este método podem ser multidimensionais.
A regressão foi inventada por Francis Galton, primo de Darwin. Galton completou a primeira previsão de regressão em 1877 com o objetivo de
Preveja o tamanho (altura) da próxima geração de sementes de ervilha (filhos) com base no tamanho da geração anterior de sementes de ervilha (pais). Galton é
A análise de regressão foi aplicada a um grande número de objetos, até mesmo à altura humana. Ele concluiu que se a altura dos pais for superior à altura média
altos, seus filhos também tendem a ter estatura média, mas não tão altos quanto seus pais.Isso pode ser expresso como: a altura da criança tende a retornar à altura média.
Retornar. Galton percebeu isso em muitos estudos e chamou esse método de pesquisa de regressão.
Por exemplo: Existem dados de vendas de casas como segue
E se entrar uma nova área que não esteja no registro de preço de venda?
Solução: Use uma curva para ajustar os dados com a maior precisão possível e, se houver uma nova entrada, podemos adicioná-la à curva
O valor correspondente a este ponto é retornado. Se você usar uma linha reta para ajustá-lo, poderá ficar assim:
Conceitos e símbolos comuns:
Tabela de registro de vendas internas: conjunto de treinamento ou dados de treinamento, que são os dados de entrada em nosso processo
De acordo com, geralmente chamado de x;
Preço de venda da casa: dados de produção, geralmente chamados de y;
Função ajustada (ou hipótese ou modelo): geralmente escrita como y=h(x)
Número de entradas de dados de treinamento (#training set): um dado de treinamento são dados de entrada que consistem em um par de dados de entrada e dados de saída
Dimensão n (número de recursos, #features);
Os recursos neste exemplo são bidimensionais e o resultado é unidimensional. No entanto, o método de regressão pode resolver o problema de recursos multidimensionais e o resultado são valores multidimensionais unidimensionais.
Ou resultados de identificação de problemas para valores contínuos unidimensionais.
Perceber:
(1) Por se tratar de regressão linear, a função aprendida é uma função linear, ou seja, uma função linear
(2) Por ser uma variável única, existe apenas um x;
Modelo de regressão linear univariada:
Relação linear positiva:
Relação linear negativa:
Não importa:
y^=b0+b1x
Esta equação é chamada de linha de regressão estimada.
Entre eles, b0 é o intercepto longitudinal da equação linear estimada, b1 é a inclinação da equação linear estimada, y^ é quando a variável independente x é igual a um determinado valor
, o valor estimado de y.
Exemplo de regressão linear:
Número de anúncios de TV feitos por vendedores de carros versus número de carros vendidos:
Supondo que o número de anúncios em uma semana seja 6, o número estimado de carros vendidos é 5*6+10=40.
Derivação algébrica:
Derivação de matriz:
2. Regressão linear múltipla
A diferença entre regressão linear simples e regressão linear múltipla:
1. Diferença da regressão linear simples: múltiplas variáveis independentes x
2. Modelo de regressão múltipla
y=β0+β1x1+β2x2+…+βpxp+e
Entre eles: β1, β2… βp são valores de parâmetros, e é o valor do erro
3. Equação de regressão múltipla
E(y)=β0+β1x1+β2x2+…+βpxp
4. Estimando múltiplas equações de regressão
y_hat=b0+b1x1+b2x2+…+bpxp
Uma amostra é usada para calcular as estimativas pontuais b0, b1, b2....bp de β0, β1, β2....βp
Por exemplo: uma empresa de courier entrega mercadorias
x1: Quilometragem de transporte x2: Número de transportes y: Tempo total de transporte
3. Função de custo
A função de custo (também chamada de função de perda em alguns lugares) é muito importante em todos os algoritmos de aprendizado de máquina porque
O processo de treinamento do modelo é o processo de otimização da função de custo.A derivada parcial da função de custo para cada parâmetro é o gradiente mencionado na descida do gradiente.
grau, o termo de regularização adicionado ao evitar overfitting também é adicionado após a função de custo. Uma boa função de custo precisa satisfazer os dois requisitos mais básicos
Este requisito: ser capaz de avaliar a precisão do modelo e ser diferenciável em relação aos parâmetros.
Na regressão linear, a função de custo mais comumente usada é o erro quadrático médio (erro quadrático médio), cuja forma específica é:
Como encontrar parâmetros:
Método dos mínimos quadrados: É uma fórmula de solução matemática direta, mas requer que X seja de classificação completa.
Gradiente descendente:
Princípio da descida gradiente: compare uma função com uma montanha. Estamos em uma determinada encosta, olhamos ao redor e descemos um pequeno passo em determinada direção.
O mais rápido que pode cair;
método:
(1) Primeiro determine o tamanho do passo para o próximo passo, que chamamos de taxa de aprendizagem;
(2) Forneça um valor inicial arbitrariamente;
(3) Determine uma direção descendente, desça em um ritmo predeterminado e atualize o valor inicial;
(4) Quando a altura de descida for inferior a um determinado valor definido, pare de descer;
Características do método de descida gradiente:
(1) Diferentes pontos iniciais levam a diferentes valores mínimos, portanto a descida gradiente obtém apenas valores mínimos locais ;
(2) Quanto mais próximo do valor mínimo, mais lenta será a velocidade de declínio;
Se o valor inicial do parâmetro estiver na posição de mínimo local, a derivada deverá ser 0, portanto o valor do parâmetro não será alterado;
Se um valor correto de α for obtido, a função de custo deverá tornar-se cada vez menor;
Observe o valor Q a qualquer momento. Se a função de custo ficar menor, ok, caso contrário, escolha um valor menor.
Como pode ser visto na figura acima, o valor mínimo obtido também é diferente se o valor inicial for diferente, portanto a descida do gradiente obtém apenas o valor mínimo local.
O tamanho do passo descendente é muito importante. Se for muito pequeno, a velocidade para encontrar o valor mínimo da função será muito lenta. Se for muito grande, pode ocorrer um erro.
O fenômeno de ultrapassar o mínimo está agora presente.
Se você descobrir que a função de custo aumentou após calcular o valor da taxa de aprendizagem, será necessário reduzir a taxa de aprendizagem.
def gradientDescent(x,y,theta,alpha,m,numIterations):
xTrans =x.transpose()
for i in range(0,numIterations):
hypothesis=np.dot(x,theta)
loss=hypothesis-y
#cost np.sum(loss *2)/(2 m)
#print("Iteration %d Cost:%f"%(i,cost))
gradient=np.dot(xTrans,loss)/m
theta=theta-alpha*gradient
return theta