Problema prático de regressão linear múltipla do TensorFlow

TensorFlow em ação

Problema de regressão linear múltipla

O editor deste artigo usará um exemplo específico para ilustrar como usar o TensorFlow para implementar vários problemas de regressão linear. Vamos tomar a previsão do preço da habitação em Boston como exemplo.

1. Introdução ao cenário

O conjunto de dados de preços de habitação em Boston inclui 506 amostras, cada uma das quais inclui 12 variáveis ​​características e o preço médio de habitação na área. Os preços das casas estão obviamente relacionados a múltiplas variáveis ​​características, portanto, múltiplas variáveis ​​características precisam ser selecionadas para estabelecer uma equação linear. Este é um problema típico de regressão linear multivariada. A seguir está a fórmula do modelo de regressão linear múltipla: y = w0 + w1 x1 + w2 x2 + ... + wn * xn + b
Abaixo está uma exibição parcial do conjunto de dados de preços de habitação em Boston. Usaremos o conjunto de dados para implementar o modelo posteriormente.image.png

2. Leia os dados e normalize-os

Leia arquivos de dados através do pandas e lista de visão geral de estatísticas

 
 
  1. %matplotlib inline

  2. import matplotlib.pyplot as plt

  3. import numpy as np

  4. import tensorflow as tf

  5. import pandas as pd


  6. #读取数据文件

  7. df = pd.read_csv("./boston.csv",header=0)

  8. #显示数据摘要描述信息

  9. print(df.describe())

image.png

 
 
  1. #对数据归一化到0-1之间

  2. for i in range(12):

  3.    df[:,i]=(df[:,i]-df[:,i].min())/(df[:,i].max()-df[:,i].min())


  4. #x_data为归一化后的前12列特征数据

  5. x_data = df[:,:12]

  6. #y_data为最后一列标签数据

  7. y_data = df[:12]

3. Definição do modelo

Primeiro, defina os marcadores de posição para os dados do recurso e do rótulo. Nenhum na forma indica que o número de linhas é desconhecido. No treinamento real, é determinado quantas linhas de amostras são substituídas por vez, de um SDG aleatório de uma amostra a um lote de SDG.

x = tf.placeholder (tf.float32, [Nenhum, 12], nome = "x") y = tf.placeholder (tf.float32, [Nenhum, 1], nome = "y")

Definir a função do modeloimage.png

4. Modelo de treinamento

Definir hiperparâmetros de treinamento

#Number of iterationstrain_epochs = 50 # Learning rate learning_rate = 0.01

Defina a função de perda de erro quadrático médio

com tf.name_scope ("LossFunction"): loss_function = tf.reduce_mean (tf.pow (y-pred, 2)) # 均 方 误差

Selecione o otimizador e inicialize um GradientDescentOptimizer

#Gradient DescentOptimizer optimizer = tf.train.GradientDescentOptimizer (learning_rate) .minimize (loss_function)

5. Crie uma sessão

Declarar sessão

sex = tf.Session ()

Inicialização de variável

init = tf.global_variables_initializer () sess.run (init)

6. Treinamento iterativo

Na fase de treinamento do modelo, defina o número de iterações, cada vez inserindo amostras no modelo uma a uma, execute a operação de otimização de gradiente descendente, após cada iteração, desenhe a curva do modeloimage.pngA imagem abaixo mostra o resultado final do treinamentoimage.png

7. Visualização dos resultados do treinamento

image.png

plt.plot (loss_list)

image.png

8. Visualização do TensorBoard

Declarar sessão

sess = tf.Session () # Define a operação de inicialização das variáveis ​​init = tf.global_variables_initializer ()

Prepare os dados para a visualização do TensorBoard

#Defina o diretório de armazenamento de log logdir = 'd: / log'sum_Loss = tf.summary.scalar ("perda", perda_função) merged = tf.summary.merge_all ()

Gravador de arquivo para criar resumo

sess.run (init) writer = tf.summary.FileWwriter (logdir, sess.graph)

Verifique o gráfico de cálculo image.pngTensorBoard para verificar a perda image.png. Por fim, apresse-se e tente estabelecer seu primeiro modelo de regressão múltipla!

Este artigo é uma contribuição dos leitores, todos são bem-vindos para clicar no link abaixo para contribuir:
contribuições são bem-vindas


--------- Fim ---------

image.png

Acho que você gosta

Origin blog.51cto.com/15064628/2599799
Recomendado
Clasificación