TensorFlow定义一个线性分类模型
来源:互联网 发布:苹果6s淘宝虚拟定位 编辑:程序博客网 时间:2024/04/28 06:22
今天我们要用TF定义一个线性分类模型。线性分类模型可以说是最最基础的机器学习模型了。如果还有印象的话,高中时候,我们应该就学过用‘最小二乘法’对一系列(x,y)数据拟合出一条线性表达式,y=kx+b.不过今天我们做的模型难度要再提升一些:如果,其中的x是作为一个多维向量,具有多维的特征呢?这就是“多元线性回归”。那么我们一步一步来解释如何从零构建y=wx+b模型吧!这里的w是一个矩阵。
import tensorflow as tfimport numpy as npimport pandas as pd
我们使用一组经典的数据,这是一组九十年代威斯康辛州记录的良性细胞(标记为0)和恶性细胞(标记为1)的细胞厚度(1-10)和细胞尺寸大小(1-10)。简言之,我们想通过细胞的厚度和尺寸大小来判断这个细胞是恶性细胞还是良性细胞~
train=pd.read_csv('C:/users/administrator/desktop/breast-cancer-train.csv')
test=pd.read_csv('C:/users/administrator/desktop/breast-cancer-test.csv')
x_train=np.float32(train[['Clump Thickness','Cell Size']].T) #读取特征数据之后,为了计算方便,我们进行矩阵转置y_train=np.float32(train['Type'].T) #训练数据的标记
x_test=np.float32(test[['Clump Thickness','Cell Size']].T)y_test=np.float32(test['Type'].T)接下去,我们需要定义两个关键的变量!变量会在每一轮训练之后保存下来,在下一轮训练中的参数将会使用其保存下来的值!b=tf.Variable(tf.zeros([1])) #线性模型的截距,设置初始值为1.0w=tf.Variable(tf.random_uniform([1,2],-1.0,1.0))#定义一个1*2的矩阵,初始值为-1和1均匀分布的随机数定义我们的线性函数:
y=tf.matmul(w,x_train)+b
接着,我们要定义优化目标,通常我们是要让训练值与真实值间的欧氏距离(均方误差)最小,那么代码如下所示:loss=tf.reduce_mean(tf.square(y-y_train)) #tf.redece_mean()是对数据的结果求均值使用最常见的梯度下降法估计参数w,b,这里我们设置步长为0.01optimizier=tf.train.GradientDescentOptimizer(0.01)train=optimizier.minimize(loss) #优化lossinit=tf.initialize_all_variables()#初始化所有变量参数
sess=tf.Session()
我们可以看到每100轮迭代之后的w和b值。我们的测试样本一共有175条,那么接下来我们来计算一下训练的这个模型的精度。我们以0.5为界限,精度代码如下。sess.run(init) #开跑
for step in range(1000): #迭代1000次 sess.run(train) if step%100==0: print(step,sess.run(w),sess.run(b))test_true=0for i in range(175): a=sess.run(w)[0][0]*x_test[0][i]+sess.run(w)[0][0]*x_test[1][i]+sess.run(b)-0.5 if a<0 and y_test[i]==0: test_true+=1 if a>0 and y_test[i]==1: test_true+=1print(test_true/175)最后附上数据pan.baidu.com/s/1dENAUTr,祝学习愉快!
阅读全文
2 0
- TensorFlow定义一个线性分类模型
- 谷歌开源图像分类工具TF-Slim,定义TensorFlow复杂模型
- tensorflow线性模型示例
- 11.线性分类模型
- 广义线性模型分类
- 学习TensorFlow,线性回归模型
- TensorFlow实现一元线性模型
- 11-分类的线性模型
- 使用Tensorflow自定义一个线性分类器用于对“良/恶性乳腺癌肿瘤”进行预测
- tensorflow实现线性分类之MNIST
- 用tensorflow构建线性回归模型
- tensorflow线性模型以及Wide deep learning
- tensorflow入门(2)线性模型
- tensorflow线性模型以及Wide deep learning
- 基于tensorflow的线性回归模型
- Tensorflow模拟简单线性模型小栗子
- 2.tensorflow 线性回归模型 matplot显示
- TensorFlow 实现一元线性回归模型
- 洛谷P2889 [USACO07NOV]挤奶的时间Milking Time
- 1785 数据流中的算法(模拟,乱搞)
- 简单选择排序(C语言版本)
- 1201: 华科版C语言程序设计教程(第二版)课后习题3.7
- 未解决问题集合
- TensorFlow定义一个线性分类模型
- JavaScrip实现计算器
- MongoDB常用命令汇总之修改、添加、删除集合数据。
- 归并排序
- 堆排序
- 猫狗队列求解
- java并发编程--并发容器CopyOnWriteArrayList
- Android Studio 打包签名教程
- Java重要知识点