线性回归

线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题。相关知识可看“相关阅读”。

主要思想

在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 训练单特征和多特征的线性回归相关推荐

  1. TensorFlow训练单特征和多特征的线性回归

    线性回归 线性回归是很常见的一种回归,线性回归可以用来预测或者分类,主要解决线性问题.相关知识可看"相关阅读". 主要思想 在TensorFlow中进行线性回归处理重点是将样本和样 ...

  2. python划分训练集和测试集_杨涛的Python机器学习3:单特征与多特征、训练集与测试集,杨桃...

    本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 单特征与多特征 在上一节标签和特征的示例中,我们使 ...

  3. 杨桃的Python机器学习3——单特征与多特征、训练集与测试集

    本人CSDN博客专栏:https://blog.csdn.net/yty_7 Github地址:https://github.com/yot777/ 单特征与多特征 在上一节标签和特征的示例中,我们使 ...

  4. R语言构建xgboost模型:使用xgboost模型训练tweedie回归模型,特征工程(dataframe转化到data.table、独热编码、缺失值删除、DMatrix结构生成)

    R语言构建xgboost模型:使用xgboost模型训练tweedie回归模型,特征工程(dataframe转化到data.table.独热编码.缺失值删除.DMatrix结构生成) 目录

  5. ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签

    ML之FE:在模型训练中,仅需两行代码实现切分训练集和测试集并分离特征与标签 目录 仅需两行代码实现切分训练集和测试集并分离特征与标签 输出结果 实习代码 仅需两行代码实现切分训练集和测试集并分离特征 ...

  6. 小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用

    小Y看浮屠世界-往复式单螺杆混炼挤出机构造特征及其运用 TAG: 炼胶机 乳腺增生的治疗 煤炭化验设备 发电机 一,前言 随着塑料加工业中高分子资料工业的飞速开展,往复 式单螺杆混炼挤出机的开发运用日 ...

  7. CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)—(准确度高达100%)

    CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)-(准确度高达100%) 目录 基于DIY人脸图像数据集( ...

  8. Tensorflow C++使用ops::BatchMatMul实现特征批量乘法

    本例主要测试Tensorflow C++ API中的ops::BatchMatMul算子. 整体来说这个算子比较简单.但是难在官网没有例子.Tensorflow的单测也写得不到位. 话不多说,上代码. ...

  9. svm训练特征提取——图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

    图像特征提取三大法宝:HOG特征,LBP特征,Haar特征 一.HOG特征 1.HOG特征: 即局部归一化的梯度方向直方图,是一种对图像局部重叠区域的密集型描述符, 它通过计算局部区域的梯度方向直方图 ...

最新文章

  1. word公式和文字不在一行上,错位了如何解决
  2. CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测
  3. stdthread(5)并发atomic
  4. input type=checkbox 前面有个可供打钩的小方框 HTML DOM Checkbox 对象
  5. qlistwidgetitem itempressed怎么区分左右键_那个帮你把魂斗罗玩通关的男人,去世了!那年暑假的“上上下下左右左右BABA”,你还记得吗?...
  6. Nginx代理服务器使用
  7. 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化
  8. wordpress音乐播放器插件–PoiPlayer
  9. python人工智能小程序_推荐几款“真”人工智能技术小程序
  10. 贵州小学计算机编程比赛,2019年贵阳市中小学电脑制作活动成功举办
  11. 一款超好用的企业级URL采集软件(Msray-plus)
  12. 计算机网络发展史及分类,计算机网络发展史简介
  13. 图片服务器-存储图片技巧
  14. Java工程师胜任力素质模型,胜任力故事汇编C47│AspiringMinds:高潜力程序员的胜任力素质模型...
  15. gtk 程序设计(c语言版) pdf,GTK+程序设计入门
  16. Scratch(五十一):端午节抛粽子
  17. ntlm-auth java_JAVAMAIL:AUTH NTLM失败
  18. 大蟒蛇养殖教程之“模块”
  19. 常网小站 骗子网站 大家小心别上当
  20. 巧用千寻位置GNSS软件| 线路施工放样应用技巧

热门文章

  1. 【转】打开,另存为,属性等14个javascript代码
  2. [WCF]相关资料整理
  3. 用JS开发跨平台桌面应用,从原理到实践
  4. 3个你必须知道的面试新趋势, 抓住秋招尾巴拿下offer
  5. shell编程脚本练习题
  6. 学习dubbo(四): 启动时检查
  7. Docker大书房:什么是Docker?怎么用?
  8. audio_policy.conf说明(翻译)
  9. UVa 10945 - Mother bear
  10. TurboMail助某水利委员会邮件通讯更新换血