作者abc95007 (别理我)
看板Python
标题[问题] 多组数据线性回归
时间Mon Mar 5 14:54:43 2018
目前使用 python , 会些基础的 tensorflow 跟 pytroch , 大概就回归跟CNN部分
想请问目前工作上遇到的问题
x = np.linspace(0, 1, 255)[:, np.newaxis]
y = np.power(x, 2.2)
plt.scatter(x, y)
X 255 个点当中找出 30个点线性回归
但如果同时於
y1 = np.power(x, 1.8)
y2 = np.power(x, 2.2)
y3 = np.power(x, 2.6)
同时找出 y1,y2,y3 找出一组 X 30个点的线性回归
之後可能为更多组的 Y 找出共同的一组 X 30个点
https://i.imgur.com/nzou2NS.jpg
试问是否可用 deep learning 来处理?
或是还有其他方法?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.89.123
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1520232886.A.28D.html
※ 编辑: abc95007 (42.73.89.123), 03/05/2018 15:00:37
1F:推 goldflower: 看不太懂...什麽叫做255个点找出30个点做回归03/05 15:12
更正一下
这应该也不能叫做线性回归(?)
三条曲线上 要找出共同的一组30个X绑点
例如
(x(0),y1(0)), (x(6),y1(6)).....(x(255),y1(255))
共30个绑点可以代表第一条曲线
(x(0),y2(0)), (x(6),y2(6)).....(x(255),y2(255))
共30个绑点可以代表第二条曲线
以此类推
目的是想要找到 1~255之中
x=1,6....255, 30个最佳值绑点
※ 编辑: abc95007 (110.50.128.152), 03/05/2018 16:34:40
2F:推 vfgce: 你是要用30个点找出一个直线来拟合曲线?03/05 17:22
3F:推 vfgce: 然後你的30个点是给定的,还是要学习出来的?03/05 17:26
255里面取30个点,不知道这30个点落在哪里?
最後我是需要在12条曲线找出找出共同最佳的30个点
这应该就要学习出来吧??
想说用程式是跑应该有优雅一点的写法
暴力解最後应该也是try的出来.....
※ 编辑: abc95007 (110.50.128.152), 03/05/2018 17:33:26
4F:推 vfgce: 这比较不像deep learning做的,比较像数学吧..03/05 17:43
5F:推 vfgce: 255点中取30点的组合就不像deep learning要处理的,03/05 17:46
6F:→ Kazimir: 资质愚钝 我看不太出来选X的依据是什麽..03/05 17:53
7F:推 vfgce: 不过若是你的y,都是X的1次方以上,那麽斜率变化较小的前30点03/05 17:54
8F:→ vfgce: 就是要拟合直线最佳的30点...,当然不是次方而是其他函数03/05 17:55
9F:→ vfgce: 就不一定了.03/05 17:55
的确 其实比较像是数学问题啦
这问题主要是用来显示器的颜色校正
像是矫正Gamma2.2 还有其他曲线
但255灰阶当中的只能设定其中30个点
给与特定的电压值
其余的225个点就线性内插出来
※ 编辑: abc95007 (110.50.128.152), 03/05/2018 18:40:55
10F:推 EGsux: 这不是deep learning 阿 是 optimization03/05 18:47
11F:→ EGsux: 甚麽是最佳的30点 要讲出来xd 03/05 18:48
12F:推 EGsux: 最常使用的30点吗? 最平均分布的三十点吗? 03/05 18:50
13F:推 EGsux: 如果是代表曲线 你要用数学定义出"最佳"才可以用framework03/05 18:53
14F:→ EGsux: 去帮你做微积分03/05 18:53
第一条曲线中设定30个点可以任意设定值
其余就内插
接下来算这255各点与原本的y1数据loss值,loss就用常用的方均根值
得到loss1,依此类推到loss12
loss总和最小的30各点就是我想求的
理论上头尾刻度会切的较细,中间较粗
※ 编辑: abc95007 (110.50.128.152), 03/05/2018 19:01:09
15F:推 EGsux: 比如说 把你TF的 cost function 定为 x在0到255曲线下面积 03/05 18:56
16F:→ EGsux: 跟自定义直线面积的差 03/05 18:56
17F:→ Kazimir: 30个点是从y1上选的 可是一样是用这条直线来算y2的loss 03/05 20:46
18F:→ Kazimir: 这样吗? 03/05 20:47
https://imgur.com/a/xy0HO
用画的应该比较清楚
应该会有一组30个X点
使得各虚线与各条实线的面积总和最小值
※ 编辑: abc95007 (220.133.187.22), 03/05/2018 22:52:26
22F:推 vfgce: 所以你的曲线为12条不同的幂函数,那麽这30点一定是连续, 03/06 08:19
23F:推 vfgce: 否则X越散,Y越散,问题就简化为从头开始找连续的30点,所得 03/06 08:30
24F:→ vfgce: 的误差最小,但若gamma值皆大於1,那麽就是前30点,若gamma 03/06 08:31
25F:→ vfgce: 值皆大於1,那麽就是後30点. 03/06 08:32
26F:→ vfgce: 这两种状况所得到的最佳解同时也是各曲线的最佳解. 03/06 08:32
27F:→ vfgce: 但若gamma值为>1及<1混合,那麽,这30点应该是往中间靠,就 03/06 08:34
28F:→ vfgce: 从第一点,开始算连续30点误差,再来第二点算连续30 点, 03/06 08:35
29F:→ vfgce: 一直做下去,再看从那一点开始的连续30点所得误差最小. 03/06 08:36
30F:→ vfgce: 这个最佳解就非各曲线的最佳解. 03/06 08:36
31F:→ vfgce: 总之,这根本不是deep learning. 03/06 08:37
32F:→ vfgce: 硬要用deep learning 解会弄得非常怪异.且未必得到最佳解 03/06 08:38
33F:推 EGsux: 其实这是微积分的问题 说不定用 excel也解的出囧 03/06 09:37
34F:→ EGsux: 你把tf跟pytorch当成微积分工具就好 不要管 DL甚麽的 03/06 09:38
35F:推 EGsux: 而且理论上头尾都比较接近直线所以点没那麽多才对吧 03/06 09:46
36F:推 CaptPlanet: 起手式 import tensorflow as tf 03/07 11:28