tensorflow 多元線性回歸實現的總結
1,定義演算法公式,也就是神經網路forward時的計算
2,定義loss,選定優化器,並指定優化器優化loss
3,迭代地對資料進行訓練
4,在測試集或驗證集上對準確率進行評測
1,定義演算法公式,也就是神經網路forward時的計算
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
# mn.source_url = ""
my_mnist = input_data.read_data_sets(
"mnist_data_bak/"
, one_hot=
true
)# the mnist data is split into three parts:
# 55,000 data points of training data (mnist.train)
# 10,000 points of test data (mnist.test), and
# 5,000 points of validation data (mnist.validation).
# each image is 28 pixels by 28 pixels
# 輸入的是一堆,none表示不限輸入條數,784表示每張都是乙個784個畫素值的一維向量
# 所以輸入的矩陣是none乘以784二維矩陣
x = tf.placeholder(dtype=tf.float32, shape=
(none
,784))
# 初始化都是0,二維矩陣784乘以10個w值
w = tf.variable(tf.zeros(
[784,10
]))b = tf.variable(tf.zeros([10
]))y = tf.nn.softmax(tf.matmul(x, w)
+ b)
# 訓練
# labels是每張都對應乙個one-hot的10個值的向量
y_ = tf.placeholder(dtype=tf.float32, shape=
(none,10
))
2,定義loss,選定優化器,並指定優化器優化loss
# 定義損失函式,交叉熵損失函式
# 對於多分類問題,通常使用交叉熵損失函式
# reduction_indices等價於axis,指明按照每行加,還是按照每列加
cross_entropy = tf.reduce_mean(
-tf.reduce_sum(y_ * tf.log(y)
,reduction_indices=[1
]))train_step = tf.train.gradientdescentoptimizer(
0.5)
.minimize(cross_entropy)
3,迭代地對資料進行訓練
# 訓練
# labels是每張都對應乙個one-hot的10個值的向量
y_ = tf.placeholder(dtype=tf.float32, shape=
(none,10
))# 定義損失函式,交叉熵損失函式
# 對於多分類問題,通常使用交叉熵損失函式
# reduction_indices等價於axis,指明按照每行加,還是按照每列加
cross_entropy = tf.reduce_mean(
-tf.reduce_sum(y_ * tf.log(y)
,reduction_indices=[1
]))train_step = tf.train.gradientdescentoptimizer(
0.5)
.minimize(cross_entropy)
4,在測試集或驗證集上對準確率進行評測
# 評估
# tf.argmax()是乙個從tensor中尋找最大值的序號,tf.argmax就是求各個**的數字中概率最大的那乙個
correct_prediction = tf.equal(tf.argmax(y,1)
, tf.argmax(y_,1)
)# 用tf.cast將之前correct_prediction輸出的bool值轉換為float32,再求平均
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)
)# 初始化變數
sess = tf.interactivesession(
)tf.global_variables_initializer(
).run(
)for _ in
range
(1000):
batch_xs, batch_ys = my_mnist.train.next_batch(
100)
sess.run(train_step, feed_dict=
)print
("trainset batch acc : %s "
% accuracy.
eval()
)print
("validset acc : %s"
% accuracy.
eval()
)# 測試
print
("testset acc : %s"
% accuracy.
eval()
)
線回與非線回 sklearn 多元線性回歸
前面用自寫函式解決了多元問題,現在用sklearn庫來解決多元線性問題 老朋友,不介紹了 import numpy as np from numpy import genfromtxt 把線性回歸模型庫單獨匯出來 from sklearn import linear model 把畫圖工具庫匯出來 ...
多元線性回歸
多元線性回歸的基本原理和基本計算過程與一元線性回歸相同,但由於自變數個數多,計算相當麻煩,一般在實際中應用時都要借助統計軟體。介紹多元線性回歸的一些基本問題。但由於各個自變數的單位可能不一樣,比如說乙個消費水平的關係式中,工資水平 受教育程度 職業 地區 家庭負擔等等因素都會影響到消費水平,而這些影...
多元線性回歸
from numpy import genfromtxt 用來讀取資料轉化為矩陣 from sklearn import linear model 含有回歸的模型 datapath r c users qaq desktop delivery dummy.csv 路徑 deliverydata ge...