TensorFlow - 线性回归(2)

TensorFlow - 线性回归(2)

flyfish

PaddlePaddle的线性回归教程已经做了很详细的代码
这里将PaddlePaddle的代码更改为TensorFlow运行的代码

import tensorflow as tf
import numpy as np

UCI_TRAIN_DATA = None
UCI_TEST_DATA = None
UCI_LABEL_DATA=None

feature_names = [
    'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',
    'PTRATIO', 'B', 'LSTAT', 'convert'
]

def load_data(filename, feature_num=14, ratio=0.8):

    #加载数据,数据之间由空格隔开
    data = np.fromfile(filename, sep=' ')
    print(data.shape)
    print(data.shape[0])#7084
    print(data.shape[0] / feature_num)#506
    data = data.reshape( int(data.shape[0] / feature_num), feature_num)
    print(data.shape)#(506, 14)


    maximums, minimums, avgs = data.max(axis=0), data.min(axis=0), data.sum(
        axis=0) / data.shape[0]

    for i in range(feature_num - 1):
        data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])

    #整理训练集与测试集
    offset = int(data.shape[0] * ratio)
    global UCI_TRAIN_DATA
    global UCI_TEST_DATA
    global UCI_LABEL_DATA

    UCI_TRAIN_DATA = data[:offset]#取前80行
    UCI_TEST_DATA = data[offset:]#取后20%行
    i=feature_num-1;
    data[:, i] = (data[:, i] - avgs[i]) / (maximums[i] - minimums[i])
    UCI_LABEL_DATA = data[:offset, 13:14]#取前80行的最后一列

load_data(r"H:\1.data")


x_data = tf.cast(UCI_TRAIN_DATA,dtype=tf.float32)
y_data =tf.cast(UCI_LABEL_DATA,dtype=tf.float32)
print(x_data.shape)


W= tf.Variable(tf.zeros([14,1]), name="weights",dtype=tf.float32)
# create a variable for biases
b = tf.Variable(0.0, name="biases",dtype=tf.float32)

y=tf.add(tf.matmul( x_data,W) ,b)

# 最小化均方误差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.0000001)  # 学习率为0.0001的梯度下降法
train = optimizer.minimize(loss)

# 初始化TensorFlow参数
init = tf.global_variables_initializer()

# 运行数据流图
sess = tf.Session()
sess.run(init)

# 多次迭代,w和b的拟合值
for step in range(1000):
    sess.run(train)

print( sess.run(W), sess.run(b))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西笑生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值