A partir da entrada linear simples aprendizado de máquina análise de regressão

Qual é a análise de regressão

A análise de regressão (análise de regressão) é uma análise estatística para determinar a relação quantitativa entre duas ou mais variáveis ​​interdependentes. Usar uma análise gama, regressão muito largo de acordo com o número de variáveis ​​envolvidas, dividida em uma regressão e análise de regressão múltipla, de acordo com o número de variáveis ​​dependentes podem ser divididos em análise de regressão simples e análise de regressão múltipla, de acordo com a relação entre os tipos de variáveis ​​independentes e dependentes , análise de regressão pode ser dividido em regressão linear e não-linear. Se a análise de regressão, apenas uma variável independente e inclui uma variável dependente, e a relação entre os dois linear aproximada está disponível, isto é chamado análise de regressão, de uma análise de regressão linear. Se a análise de regressão compreende dois ou mais variáveis ​​independentes, e que existe uma correlação linear entre variáveis ​​independentes, que é referido como a análise de regressão linear múltipla.

Na verdade, dar-lhe algum momento, resolução de equações lineares

Permitir bar entrada direta

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
x = np.linspace(0,30,50)
y = x+ 2*np.random.rand(50) 
plt.figure(figsize=(10,8))
plt.scatter(x,


Existem 50 pontos no mapa, de forma rápida para encontrar equações lineares

from sklearn.linear_model import LinearRegression  #导入线性回归
model = LinearRegression()  #初始化模型
x1 = x.reshape(-1,1)   # 将行变列  得到x坐标
y1 = y.reshape(-1,1)   # 将行变列  得到y坐标
model.fit(x1,y1)  #训练数据
model.predict(40) #预测下x=40 ,y的值
array([[40.90816511]]) # x=40的预测值

Ou desenhar um mapa para ver melhor

plt.figure(figsize=(12,8))
plt.scatter(x,y)
x_test = np.linspace(0,40).reshape(-1,1)
plt.plot(x_test,model.predict(x_test))

Há fotos e eu não sei os parâmetros da equação

Temos um modelo de como não podemos saber

model.coef_   #array([[1.00116024]])   斜率
model.intercept_   # array([0.86175551])  截距

y = 1.00116024 * x + 0.86175551

Avaliar como bom ou mau que este modelo
não é certamente que quanto mais próximo o melhor ponto ao quadrado da distância da linha reta tão pequeno quanto possível

np.sum(np.square(model.predict(x1) - y1))
16.63930773735106 # 这个不错,挺小的

Eu não acredito que é o melhor, em seguida, adicione uma interceptação bit pouco 0,01

y2 = model.coef_*x1 + model.intercept_ + 0.01
np.sum(np.square(y2 - y1))   #  16.64430773735106

Ou desenhar um mapa

plt.figure(figsize=(10,10))
plt.scatter(x1,y1)
plt.plot(x1,model.predict(x1),color = 'r')
plt.plot(x1 , model.coef_*x1 + model.intercept_ +1, color = 'b')  # 用大的1区别这两条线,0.01两条线几乎重合

Publicado 824 artigos originais · Louvor obteve 269 · vista 290 000 +

Acho que você gosta

Origin blog.csdn.net/weixin_44510615/article/details/105285860
Recomendado
Clasificación