猫史档案馆


四九圣尊

四九圣尊

Lv.1

获赞:3262收藏:1354浏览:123801作品收藏:2805
回复帖子评论
上一页14 页 / 共 15下一页

【只有大佬才能看懂系列】kernels-kmeans解决非线性问题。 中回复

二阶多项式核:center_image

图片没发出去。。。

2018-10-04T12:27:26 点赞:0

【只有大佬才能看懂系列】kernels-kmeans解决非线性问题。 中回复

z就是坐标系中的高啊、center_image

2018-10-04T16:33:04 点赞:0

【只有大佬才能看懂系列】kernels-kmeans解决非线性问题。 中回复

转载一下知乎上的例子:

作者:王赟 Maigo
链接: https://www.zhihu.com/question/24627666/answer/28440943
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我来举一个核函数把低维空间映射到高维空间的例子。

下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横、纵坐标是两个特征。显然,在这个二维空间内,“+”“-”两类数据不是线性可分的。

<figure> </figure>

 

我们现在考虑核函数K(v_1,v_2) = <v_1,v_2>^2,即“内积平方”。
这里面v_1=(x_1,y_1), v_2=(x_2,y_2)是二维空间中的两个点。

这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:
P(x,y)=(x^2,\sqrt{2}xy,y^2)
可以验证,
\begin{align} <P(v_1),P(v_2)> &= \, <(x_1^2,\sqrt{2}x_1y_1,y_1^2),(x_2^2,\sqrt{2}x_2y_2,y_2^2)> \\ &= \, x_1^2x_2^2 + 2x_1x_2y_1y_2+y_1^2y_2^2 \\ &= \, (x_1x_2 + y_1y_2)^2 \\ &= \, \, <v_1,v_2>^2 \\ &= \, K(v_1,v_2) \end{align}

在P这个映射下,原来二维空间中的图在三维空间中的像是这个样子:

<figure><noscript>&lt;img src=" https://pic2.zhimg.com/c5a7b1b83b844fc5fff033c9a0d5d601_b.jpg" data-rawwidth="720" data-rawheight="342" class="origin_image zh-lightbox-thumb" width="720" data-original=" https://pic2.zhimg.com/c5a7b1b83b844fc5fff033c9a0d5d601_r.jpg"&gt;</noscript> </figure>

(前后轴为x轴,左右轴为y轴,上下轴为z轴)

注意到绿色的平面可以完美地分割红色和紫色,也就是说,两类数据在三维空间中变成线性可分的了。

而三维中的这个判决边界,再映射回二维空间中是这样的:

<figure><noscript>&lt;img src=" https://pic3.zhimg.com/8f4a0d456fd9daf934c373024bf15a32_b.jpg" data-rawwidth="720" data-rawheight="329" class="origin_image zh-lightbox-thumb" width="720" data-original=" https://pic3.zhimg.com/8f4a0d456fd9daf934c373024bf15a32_r.jpg"&gt;</noscript> </figure>

这是一条双曲线,它不是线性的

2018-10-04T16:38:15 点赞:0

【只有大佬才能看懂系列】kernels-kmeans解决非线性问题。 中回复

升维后直接用感知机就可以了:(参数多了一个,也就是:x*a1 + y*a2 + z*a3 + b)

a1 = 0
a2 = 0
a3 = 0
b = 0
lr = 0.1
def predict(x,y,z):
return x*a1 + y*a2 + z*a3 + b
for i in range(100):
for i in range(len(x1)):
if predict(x1[i][0],x1[i][1],x1[i][2])>=0 and y1[i] == -1:
a1 = a1 + lr*y1[i]*x1[i][0]
a2 = a2 + lr * y1[i] * x1[i][1]
a3 = a3 + lr * y1[i] * x1[i][2]
b = b+lr*y1[i]
if predict(x1[i][0],x1[i][1],x1[i][2])<0 and y1[i] == 1:
a1 = a1 + lr * y1[i] * x1[i][0]
a2 = a2 + lr * y1[i] * x1[i][1]
a3 = a3 + lr * y1[i] * x1[i][2]
b = b + lr * y1[i]
right = 0
for i in range(len(x1)):
if predict(x1[i][0],x1[i][1],x1[i][2])<0 and y1[i] == -1:
right += 1
if predict(x1[i][0],x1[i][1],x1[i][2])>=0 and y1[i] == 1:
right += 1
print(predict(x1[i][0], x1[i][1], x1[i][2]))
print(right)
center_image 全对,效果不错。

2018-10-04T22:06:56 点赞:1

【只有大佬才能看懂系列】kernels-kmeans解决非线性问题。 中回复

之前核函数的概念写错了,它跟将数据映射到高维不是一个东西。他是将高维数据在低维计算。也就是说我们的数据分布图最后应该是这样的:

center_image————>变成高维 center_image -------------->回到低维计算(取x,z坐标) center_image  

2018-10-05T10:06:04 点赞:0

【梯度下降】梯度下降入门 中回复

求:(x,y)在y=x²上的斜率:

∴(x+∆x) ² = y+ ∆y

∴x²+ ∆x ² + 2 x ∆x = y + ∆y

∴x²/∆x + ∆x  + 2x = y/∆x + ∆y/∆x(上面除以∆x )

∴x²/∆x + ∆x  + 2x - y/∆x = ∆y/∆x

又: ∆x ∆y1/∞ x²= y

∴ ∆x  + 2x =  ∆y/∆x

∴ 2x =  ∆y/∆x 注释:快速求K法

2018-10-26T19:22:49 点赞:0

【梯度下降】梯度下降入门 中回复

import matplotlib.pyplot as plt
th = 1
def function(a,devi=False):
if devi:
return 2*a
else:
return a ** 2
F = [i for i in range(-100,100)]
print(F)
F = [function(i) for i in F ]
lr = 0.01
x = []
y = []
for i in range(100):
th = th-lr*function(th,True)
x.append(th*3)
y.append(th**2)
print(th)
plt.scatter(x,y)
plt.show()
plt.plot(F)
plt.show()

2018-10-26T19:23:54 点赞:0

【少院士】勇敢的少年啊快来申请这最高荣誉! 中回复

真理在手何所惧,心底无私天地宽

2018-10-27T12:39:34 点赞:0

【梯度下降】利用二阶导数调整学习速率 中回复

第一期:https://www.codemao.cn/community/166722

2018-10-27T13:11:18 点赞:0

【梯度下降】利用二阶导数调整学习速率 中回复

导数介越高,反应的信息越复杂。

2018-10-27T21:47:52 点赞:0

【梯度下降】利用二阶导数调整学习速率 中回复

对,写错了,二阶导数是2。这种凹函数可以直接用一阶导数来表达凹凸性,所以就不用求2阶了。

2018-11-02T22:35:33 点赞:0

【梯度下降(原创教程)】横看成岭侧成峰,解决多变量梯度下降 中回复

2018-11-03T13:09:59 点赞:0

【梯度下降(原创教程)】横看成岭侧成峰,解决多变量梯度下降 中回复

代码有个地方写错了,就定义函数那里。不是2xy,是3xy

2018-11-03T19:50:09 点赞:0

【梯度下降(原创教程)】横看成岭侧成峰,解决多变量梯度下降 中回复

 

2018-11-03T22:52:28 点赞:0

【梯度下降,最终章】线性回归 中回复

往期精彩:

1:https://www.codemao.cn/community/166919

2:https://www.codemao.cn/community/166722   

3:https://www.codemao.cn/community/166752

2018-11-09T20:07:03 点赞:0

【拓展—局部加权线性回归】一次函数分类正态分布的数据 中回复

该算法的缺点就是要预测的的数据范围不能超过数据集的范围,所以这个算法最好在数据较大时使用。你可以试一下,用这个算法在这个小数据集上是预测不出当学习时间为12以上的学习效率的,必须要更多的数据才可以:

center_image

2018-11-10T11:17:04 点赞:0

【拓展—局部加权线性回归】一次函数分类正态分布的数据 中回复

往期精彩:

1:https://www.codemao.cn/community/167062

2:https://www.codemao.cn/community/166919

3:https://www.codemao.cn/community/166722   

4:https://www.codemao.cn/community/166752

2018-11-10T11:20:41 点赞:0

【拓展—局部加权线性回归】一次函数分类正态分布的数据 中回复

dd

2018-11-10T16:10:07 点赞:0

我有好作品,我想上首页 中回复

center_image

旷世奇才。

2018-11-11T11:31:34 点赞:0

雷电猴,我想上首页 中回复

center_image

2018-11-11T11:32:26 点赞:0

【作品推荐】希望上精选吧 中回复

center_image

2018-11-11T11:35:22 点赞:0

人机对战复杂游戏开发,挑战的进来。 中回复

center_image

2018-11-11T11:35:37 点赞:0

我的作品啊 中回复

center_image

2018-11-11T11:35:58 点赞:0

猴急啊!我真的想上精选啊!!! 中回复

center_image

2018-11-11T11:37:34 点赞:0

我改了!我改了! 中回复

center_image

2018-11-11T11:40:29 点赞:0

我也要上首页!https://codemao.cn/work/36喵061 中回复

center_image

2018-11-11T11:40:39 点赞:0

【联盟】作喵联盟正式与迪宝工作室联盟 中回复

center_image

2018-11-11T11:41:05 点赞:0

从今天开始永远退网 中回复

center_image

2018-11-11T11:41:16 点赞:0

【dn的巨作】tank io第一版 中回复

center_image

2018-11-11T11:41:44 点赞:0

【优化方法】线性最小二乘 中回复

center_image运用最小二乘法可以拟合高次函数,而且速度极快。

2018-11-24T12:08:11 点赞:0