TensorFlow 训练单特征和多特征的线性回归
线性回归
线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题。相关知识可看“相关阅读”。
主要思想
在TensorFlow中进行线性回归处理重点是将样本和样本特征矩阵化。
单特征线性回归
单特征回归模型为:y = wx + b
构建模型
X = tf.placeholder(tf.float32, [None, 1])
w = tf.Variable(tf.zeros([1, 1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(X, w) + b
Y = tf.placeholder(tf.float32, [None, 1])复制代码
构建成本函数
cost = tf.reduce_mean(tf.square(Y-y))复制代码
梯度下降最小化成本函数,梯度下降步长为0.01
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)复制代码
完整代码,迭代次数为10000
import tensorflow as tfX = tf.placeholder(tf.float32, [None, 1])
w = tf.Variable(tf.zeros([1, 1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(X, w) + b
Y = tf.placeholder(tf.float32, [None, 1])# 成本函数 sum(sqr(y_-y))/n
cost = tf.reduce_mean(tf.square(Y-y))# 用梯度下降训练
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)x_train = [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
y_train = [[10],[11.5],[12],[13],[14.5],[15.5],[16.8],[17.3],[18],[18.7]]for i in range(10000):sess.run(train_step, feed_dict={X: x_train, Y: y_train})
print("w:%f" % sess.run(w))
print("b:%f" % sess.run(b))复制代码
多特征线性回归
多特征回归模型为:y = (w{1}x{1} + w{2}x{2} +...+w{n}x{n}) + b,写为y = wx + b。
y为m行1列矩阵,x为m行n列矩阵,w为n行1列矩阵。TensorFlow中用如下来表示模型。
构建模型
X = tf.placeholder(tf.float32, [None, n])
w = tf.Variable(tf.zeros([n, 1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(X, w) + b
Y = tf.placeholder(tf.float32, [None, 1])复制代码
构建成本函数
cost = tf.reduce_mean(tf.square(Y-y))复制代码
梯度下降最小化成本函数,梯度下降步长为0.01
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)复制代码
完整代码,迭代次数为10000
import tensorflow as tfX = tf.placeholder(tf.float32, [None, 2])
w = tf.Variable(tf.zeros([2, 1]))
b = tf.Variable(tf.zeros([1]))
y = tf.matmul(X, w) + b
Y = tf.placeholder(tf.float32, [None, 1])# 成本函数 sum(sqr(y_-y))/n
cost = tf.reduce_mean(tf.square(Y-y))# 用梯度下降训练
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cost)init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)x_train = [[1, 2], [2, 1], [2, 3], [3, 5], [1, 3], [4, 2], [7, 3], [4, 5], [11, 3], [8, 7]]
y_train = [[7], [8], [10], [14], [8], [13], [20], [16], [28], [26]]for i in range(10000):sess.run(train_step, feed_dict={X: x_train, Y: y_train})
print("w0:%f" % sess.run(w[0]))
print("w1:%f" % sess.run(w[1]))
print("b:%f" % sess.run(b))复制代码
总结
在线性回归中,TensorFlow可以很方便地利用矩阵进行多特征的样本训练。
相关阅读
- 线性回归之最小二乘法
- 机器学习之梯度下降法
- 机器学习的监督学习在研究什么
欢迎关注:
TensorFlow 训练单特征和多特征的线性回归相关推荐
- TensorFlow训练单特征和多特征的线性回归
线性回归 线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题.相关知识可看"相关阅读". 主要思想 在TensorFlow中进行线性回归处理重点是将样本和样 ...
- python划分训练集和测试集_杨涛的Python机器学习3:单特征与多特征、训练集与测试集,杨桃...
本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 单特征与多特征 在上一节标签和特征的示例中,我们使 ...
- 杨桃的Python机器学习3——单特征与多特征、训练集与测试集
本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 单特征与多特征 在上一节标签和特征的示例中,我们使 ...
- R语言构建xgboost模型:使用xgboost模型训练tweedie回归模型,特征工程(dataframe转化到data.table、独热编码、缺失值删除、DMatrix结构生成)
R语言构建xgboost模型:使用xgboost模型训练tweedie回归模型,特征工程(dataframe转化到data.table.独热编码.缺失值删除.DMatrix结构生成) 目录
- ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签
ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签 目录 仅需两行代码实现切分训练集和测试集并分离特征与标签 输出结果 实习代码 仅需两行代码实现切分训练集和测试集并分离特征 ...
- 小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用
小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用 TAG: 炼胶机 乳腺增生的治疗 煤炭化验设备 发电机 一,前言 随着塑料加工业中高分子资料工业的飞速开展,往复 式单螺杆混炼挤出机的开发运用日 ...
- CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)—(准确度高达100%)
CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)-(准确度高达100%) 目录 基于DIY人脸图像数据集( ...
- Tensorflow C++使用ops::BatchMatMul实现特征批量乘法
本例主要测试Tensorflow C++ API中的ops::BatchMatMul算子. 整体来说这个算子比较简单.但是难在官网没有例子.Tensorflow的单测也写得不到位. 话不多说,上代码. ...
- svm训练特征提取——图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
图像特征提取三大法宝:HOG特征,LBP特征,Haar特征 一.HOG特征 1.HOG特征: 即局部归一化的梯度方向直方图,是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图 ...
最新文章
- word公式和文字不在一行上,错位了如何解决
- CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测
- stdthread(5)并发atomic
- input type=checkbox 前面有个可供打钩的小方框 HTML DOM Checkbox 对象
- qlistwidgetitem itempressed怎么区分左右键_那个帮你把魂斗罗玩通关的男人,去世了!那年暑假的“上上下下左右左右BABA”,你还记得吗?...
- Nginx代理服务器使用
- 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化
- wordpress音乐播放器插件–PoiPlayer
- python人工智能小程序_推荐几款“真”人工智能技术小程序
- 贵州小学计算机编程比赛,2019年贵阳市中小学电脑制作活动成功举办
- 一款超好用的企业级URL采集软件(Msray-plus)
- 计算机网络发展史及分类,计算机网络发展史简介
- 图片服务器-存储图片技巧
- Java工程师胜任力素质模型,胜任力故事汇编C47│AspiringMinds:高潜力程序员的胜任力素质模型...
- gtk 程序设计(c语言版) pdf,GTK+程序设计入门
- Scratch(五十一):端午节抛粽子
- ntlm-auth java_JAVAMAIL:AUTH NTLM失败
- 大蟒蛇养殖教程之“模块”
- 常网小站 骗子网站 大家小心别上当
- 巧用千寻位置GNSS软件| 线路施工放样应用技巧