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.
2. Leia os dados e normalize-os
Leia arquivos de dados através do pandas e lista de visão geral de estatísticas
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
import pandas as pd
#读取数据文件
df = pd.read_csv("./boston.csv",header=0)
#显示数据摘要描述信息
print(df.describe())
#对数据归一化到0-1之间
for i in range(12):
df[:,i]=(df[:,i]-df[:,i].min())/(df[:,i].max()-df[:,i].min())
#x_data为归一化后的前12列特征数据
x_data = df[:,:12]
#y_data为最后一列标签数据
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 modelo
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 modeloA imagem abaixo mostra o resultado final do treinamento
7. Visualização dos resultados do treinamento
plt.plot (loss_list)
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 TensorBoard para verificar a perda . 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