tensorflow线性回归预测鲍鱼数据

代码如下:

import tensorflow as tf
import csv
import numpy as np
import matplotlib.pyplot as plt
# 设置学习率
learning_rate = 0.01
# 设置训练次数
train_steps = 1000
#数据地址:http://archive.ics.uci.edu/ml/datasets/Abalone
with open(‘./data/abalone.data‘) as file:
    reader = csv.reader(file)
    a, b = [], []
    for item in reader:
        b.append(item[8])
        del(item[8])
        a.append(item)
    file.close()
x_data = np.array(a)
new_x_data = []
for i in x_data[:,0]:
    if i == ‘M‘:
        i = 1
    elif i == ‘F‘:
        i = 2
    elif i == ‘I‘:
        i = 3
    new_x_data.append(i)
new_data = np.array(new_x_data)
x_data = np.delete(x_data,0,axis=1)
print(x_data.shape)
print(new_data.shape)
x_data = np.column_stack((new_data,x_data)) #添加一列,将new_data添加到x_data中
print(x_data)
print(x_data[:,0])
y_data = np.array(b)
for i in range(len(x_data)):
    y_data[i] = float(y_data[i])
    for j in range(len(x_data[i])):
        x_data[i][j] = float(x_data[i][j])
# 定义各影响因子的权重
weights = tf.Variable(np.ones([8,1]),dtype = tf.float32)
x_data_ = tf.placeholder(tf.float32, [None, 8])
y_data_ = tf.placeholder(tf.float32, [None, 1])
bias = tf.Variable(1.0, dtype = tf.float32)#定义偏差值
# 构建模型为:y_model = w1X1 + w2X2 + w3X3 + w4X4 + w5X5 + w6X6 + w7X7 + w8X8 + bias
y_model = tf.add(tf.matmul(x_data_ , weights), bias)
# 定义损失函数
loss = tf.reduce_mean(tf.pow((y_model - y_data_), 2))
#训练目标为损失值最小,学习率为0.01
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print("Start training!")
    lo = []
    sample = np.arange(train_steps)
    for i in range(train_steps):
        for (x,y) in zip(x_data, y_data):
            z1 = x.reshape(1,8)
            z2 = y.reshape(1,1)
            sess.run(train_op, feed_dict = {x_data_ : z1, y_data_ : z2})
        l = sess.run(loss, feed_dict = {x_data_ : z1, y_data_ : z2})
        lo.append(l)
    print(weights.eval(sess))
    print(bias.eval(sess))
    # 绘制训练损失变化图
    plt.plot(sample, lo, marker="*", linewidth=1, linestyle="--", color="red")
    plt.title("The variation of the loss")
    plt.xlabel("Sampling Point")
    plt.ylabel("Loss")
    plt.grid(True)
    plt.show()

原文地址:https://www.cnblogs.com/ywjfx/p/12303360.html

时间: 2024-10-03 19:33:23

tensorflow线性回归预测鲍鱼数据的相关文章

C# chart.DataManipulator.FinancialFormula()公式的使用 线性回归预测方法

最近翻阅资料,找到 chart.DataManipulator.FinancialFormula()公式的使用,打开另一扇未曾了解的窗,供大家分享一下. 一 DataManipulator类 运行时,执行数据操作.此类是通过chart中DataManipulator属性对外公开的. 在C#中的继承关系如下: System.Object System.Web.UI.DataVisualization.Charting.DataFormula System.Web.UI.DataVisualizat

线性回归预测波士顿房价

预测波士顿的房价,上次已经通过房间数目预测了房价,这次用多元线性回归预测. 根据之前推导的多元线性回归的参数 接下来是多元线性回归的代码实现 def LinearRegression_(x,y): np.array(x) np.array(y) a = (np.linalg.inv(x.T.dot(x))).dot(x.T).dot(y) 上次大致了解了得个feature的name.下面是‘ZN’和‘RM’的散点图(由于我比较懒所以只实现这两个) 我们可以看出每个特征的数据范围相差较大,为了加快

线性解码器——解决数据缩放问题

稀疏自编码器效果不错,但是有个固有缺陷:必须对输入数据的范围缩放到(0,1). 设想一个图像如果不经预处理,直接把大于1的值输入稀疏自编码器,那么被sigmoid一下,就成了(0,1)的范围了,再被sigmoid一下,还是在(0,1)范围.这样残差根本没办法算,因为经过了sigmoid变换之后的数据已经不可能与输入数据相等了. 但是如果我们把第三层,原先的sigmoid函数换成恒等函数,事情就发生了变化. 这样我们就能用实值输入,不需要放缩样本到(0,1)范围,比如这在处理彩色图像.PCA白化时

tensorflow使用tensorboard实现数据可视化

撰写时间:2017.5.17 网上关于这方面的教程很多,不过都偏向与如何整理图,就是通过增加命名域使得图变得好看.下面主要讲解如何搭建起来tensorboard. 系统环境:ubuntu14.04,python2.7,tensorflow-0.11 创建summary op 1.需要在图中创建summary的操作.常用的summary操作有tf.summary.scalar和tf.summary.histogram. 注:图中必须存在summary节点.不然会报错,如下图报错 merge合并操作

Tensorflow 处理libsvm格式数据生成TFRecord (parse libsvm data to TFRecord)

#写libsvm格式 数据 write libsvm ? ? #!/usr/bin/env python #coding=gbk # ============================================================================== # \file gen-records.py # \author chenghuige # \date 2016-08-12 11:52:01.952044 # \Description # ========

Tensorflow机器学习入门——读取数据

TensorFlow 中可以通过三种方式读取数据: 一.通过feed_dict传递数据: input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) output = tf.multiply(input1, input2) with tf.Session() as sess: feed_dict={input1: [[7.,2.]], input2: [[2.],[3.]]} print(sess.run(out

SPSS-如何进行多元线性回归预测

http://jingyan.baidu.com/article/4e5b3e1955c89391901e24d0.html 在数据分析行业内,最困难的一项工作就是对未来的某项变化进行预测,以下给各位分享如何利用多元线性回归模型对因变量进行预测: 步骤: 建立预测模型:这里模型为:本例中收集了某地区过去16年的蛾量.卵量.降水量.雨日以及幼虫密度的历史数据,这里蛾量.卵量.降水量和雨日可以统计得到,因此需要这4个自变量来预测因变量幼虫密度,这里建立模型Y=a+x1*b1+x2*b2+x3*b3+

HTML5线性图表 图表数据区域可着色

这是一款基于Canvas的HTML5图表应用,在图表数据初始化的时候伴随动画效果. 在线演示: 点击演示 源代码下载: 点击下载 核心jQuery代码: var myData = { labels : ["Mo","Di","Mi","Do","Fr","Sa","So"], datasets : [ { fillColor : "rgba(220,220,

[What-Why-How] 线性回归预测

What 现有多个变量X1, X2, X3, ....会对结果数据Y产生影响,现在要求出这些变量Xn对于最终结果的影响权重.找到一个线(两个变量),面(三个变量)来拟合这些权重的数值.通过训练数据得到这些参数,然后使用这些参数(模型)对新数据进行预测 例如,拟合一个平面: 其中 θ0表示预置的权重参数. 误差 真实值和预测值之间肯定是要存在差异的 误差是独立并且具有相同分布,并且服从均值为0方差为θ2的高斯分布(正态分布) 似然函数:,什么样的参数跟我们的数据组合后恰好时真实值.  样本数据 -