基于python进行数据分析 python基础代码大全

[关键词]1.皮顿2.张量流3.机器学习[场景定义]假设一些样本数据和正确的结果,人为加入一些噪声数据(偏差数据),提供给TensorFlow进行机器学习,看看机器学习效果如何,通过实验了解

本文最后更新时间:  2023-03-20 22:48:54

[关键词]

1.皮顿

2.张量流

3.机器学习

[场景定义]

假设一些样本数据和正确的结果,人为加入一些噪声数据(偏差数据),提供给TensorFlow进行机器学习,看看机器学习效果如何,通过实验了解机器学习。

1)样本数据模型:f(x)= ax ^ 2+bx+c,即抛物线。当然,模型可以任意定义。

2)噪声数据:y = f(x)+随机数,随机数作为偏差值生成噪声数据。

3)输入输出:输入数据X和输出数据Y都是显式的一维数据,是最简单的模型。值:x=[0,300],得到的Y就是输出数据。

将张量流作为tf导入

将numpy作为np导入

将matplotlib.pyplot作为plt导入

导入操作系统

OS . environ[‘TF _ CPP _ MIN _ LOG _ LEVEL & # 8217] = ‘2’

#生成样本数据和图形

numdots=300

输入数据=[]

对于范围内的I(num dots):

x=np.random.normal(0.8,10)

y = 0.3 * x * x-0.2 * x+0.5+NP . random . normal(0,6)

输入数据.追加([x,y])

x _ data =[输入数据中v的v[0]

y _ data =[输入数据中v的v[1]

[神经网络]

为了基于Tesonflow构建神经网络,使用了几种常见的神经网络方法:

1)array . shape():生成矩阵

2)占位符:增加一个计算占位符节点相当于定义一个参数,需要理解清楚。

x = TF . placeholder(dtype = TF . float 32,shape=[144,10],name = & # 8217X & # 8217)

参数描述

Dtype:数据类型,必选,默认数据类型为value,传入的参数为tensorflow下的枚举值(float32,float64 & # 8230…。)

形状:数据形状;可选;如果留空,它将随着输入数据的形状而变化;您可以在多个调用中输入不同形状的数据。

名称:常量名称,可选,默认值不重复,根据创建顺序(Placeholder,Placeholder_1,Placeholder _ 2 & # 8230…。)

3)变量:变量字段,相当于设置了一个变量。

4)relu:整流线性单元,relu),也称修正线性单元。

5)matmul:将矩阵A乘以矩阵B,生成a * B。

6)reduce_mean:计算张量张量沿指定数轴(张量的一维)的平均值,主要用于降维或计算张量(图像)的平均值。

7)GradientDescentOptimizer:实现梯度下降算法的优化器类,用于构造新的梯度下降优化器实例。

#建立神经网络模型

x_data=np.array([x_data])。整形(-1,1)

y_data=np.array([y_data])。整形(-1,1)

x _ h = TF . placeholder(dtype = TF . float 64,shape=[None,1],name = & # 8221xh & # 8221)

y _ h = TF . placeholder(dtype = TF . float 64,shape=[None,1],name = & # 8221yh & # 8221)

w=tf。变量(np.random.normal(0,0.3,size=[1,20]),dtype=tf.float64)

b=tf。变量(np.random.normal(0.0,0.5,size=[20]),dtype=tf.float64)

y0=tf.nn.relu(tf.matmul(x_h,w)+b)

w1=tf。变量(np.random.normal(0,0.5,size=[20,1]),dtype=tf.float64)

b1=tf。变量(np.random.normal(0,0.8,size=[1]),dtype=tf.float64)

y=(tf.matmul(y0,w1)+b1)

los = TF . reduce _ mean((TF . square(y-y _ h)))

tran = TF . train . gradientdescentoptimizer(0.001)。最小化

[机器培训]

训练主要在session中交互,session具有管理CPU/GPU计算和网络连接的能力,相当于一个上下文。使用的参数有:

1) Session:作为会话,1)Session的主要功能:Session指定操作对象的执行环境。session类的构造函数有三个可选参数。

Target(可选):指定连接的执行引擎,它主要用于分布式场景。

Graph(可选):在会话对象中指定要参与计算的图形。

Config(可选):辅助配置会话对象所需的参数(限制CPU或GPU的数量,设置优化参数,设置日志选项等。).

2)global_variables_initializer:返回一个用来初始化计算图中所有全局变量的op。通常作为sess . run(TF . global _ variables _ initializer())启动计算所需的数据流图。

3)session.run:执行计算,参数为:run(op,data),如:

将张量流作为tf导入

a = tf.add(1,2)

#定义一个op运算,等于1+2 = 3。

b = tf.multiply(a,2)

#定义了乘法运算,a*2

session = tf。会话()

v1 =会话.运行(b)

打印(v1)

# v1=(1+2) * 2 =6

replace_dict = {a:20}

# a被重新定义为常数20。

v2 = session.run(b,feed_dict = replace_dict)

打印(v2)

# V2= 20 *2 = 40

如果模型合理,训练次数越高,拟合结果就越准确。本文是一个清晰的抛物线模型,所以训练结果可以很好的回归。

[使用培训结果]

训练结束后,在同样的背景下,可以用训练结果来看学习效果。

#用神经网络计算X上所有点的Y值,画图表,看效果。

testx=np.linspace(-30,30,60,dtype=np.float32)。整形(-1,1)

testy=sess.run(y,feed_dict={x_h:testx})

#plt.scatter(testx,testy)

plt.scatter(x_data,y_data)

plt.plot(testx,testy)

plt.show()

上面的代码可以直接运行,结果是:

蓝点:带噪声的样本数据。

曲线:训练结束后,根据训练结果计算出的数据与去噪后的样本模型非常接近。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。