当前位置: 首页 > wzjs >正文

江阴响应式网站开发宜春市城市建设网站

江阴响应式网站开发,宜春市城市建设网站,杭州 建设网站首页,免费做淘宝店铺招牌的网站1. 背景 数学小白一枚,看推理过程需要很多时间。好在有大神们源码和DS帮忙,教程里的推理过程才能勉强拼凑一二。 * 留意: 推导过程中X都是向量组表达: shape(feature, sample_n); 和numpy中的默认矩阵正好相反。 2. PCA / KPCA PCAKPCA(Li…

1. 背景

数学小白一枚,看推理过程需要很多时间。好在有大神们源码和DS帮忙,教程里的推理过程才能勉强拼凑一二。

* 留意: 推导过程中X都是向量组表达: shape(feature, sample_n); 和numpy中的默认矩阵正好相反。

2. PCA / KPCA

PCAKPCA(Linear Kernel)

详细推理基本过程找教程。(详细步骤我也推不出来,数学太菜)

大概过程:

1. 求最小|X-XWWt|^2 时的W

2. 通过trace的性质,等价于求trace(AtA)

3. 最后推导出:需要最大化XXtW=lambdaW,又要降低维度;

所以计算比例lamda中由大到小排序,保留满足一定阈值的前n个特征值和对应的特征向量(就是W)。

输出:

降维Xd= X@Wd

代码很简单.

详细推理基本过程找教程。(详细步骤我也推不出来,数学太菜)

大概过程:

1. 巧妙的设了一个A=XW/sqrt(lambda), K=XtX

2. 通过推导KA=lamdaA,W=XtA/sqrt(lamda)

* 大模型解释的A为什么要这么设

输出:

降维Xd= X@Wd = lambda * sqrt(lamda) 

代码相对复杂一些。运行的结果和PCA一样的。

PCA

import numpy as np
from sklearn.datasets import load_digits, load_iris
from sklearn.decomposition import KernelPCA#global round float to scale 2
np.set_printoptions(precision=2, suppress=True)X, _ = load_iris(return_X_y=True)X=X[:5]
print(X)#========================================================
#PCA
# 1. W= XtX's eigVec (responding to max eigVal)
# 2. X_rec=X@W@W.T
#========================================================
eVals, eVecs=np.linalg.eig(X.T@X)
print(np.allclose(X.T@X, eVecs@np.diag(eVals)@eVecs.T))
print('val',eVals)
print('val',eVals[:2])
print('vec',eVecs)
print('vec',eVecs[:2])W=eVecs.T[:2].Tprint("W",W)
X_rec=X@W@W.T
print(X_rec)
print(X)
print(np.linalg.norm(X - X_rec))
print(np.var(X - X_rec))

KPCA

import numpy as np
from sklearn.datasets import load_digits, load_iris
from sklearn.decomposition import KernelPCA#global round float to scale 2
np.set_printoptions(precision=2, suppress=True)X, _ = load_iris(return_X_y=True)# X=X[:5]
# XMean=np.mean(X)
# X=X-XMean
print(X)#========================================================
# KPCA
# set:                       A= XW/sqrt(lambda)
# based on PCA's conclusion: XtXW=lambda W                      //由于W有约束, WtW=1 单位正交向量组
# >>>                        W=XtXW/lambda = XtA/sqrt(lambda)   //WtW == 1 == AtXXtA/lambda = AtKA/lambda = At lambda A/lambda = lambda/lambda AtA = 1
# >>>                   同时:XXtXW=lambda XW >>> KA*sqrt(lambda) = lambda A*sqrt(lambda) >>> KA = lambda A  //设A时XW/n(任意值),这个公式都成立;但按上面的设定,可以保证W单位正交。
#
# 1. W = XtA/sqrt(lambda) (A is eigVec of X@X.T)
# 2. X_rec=X@W@W.T
#========================================================
# create a callable kernel PCA object
# transformer = KernelPCA(n_components=2, kernel='linear')
# X_transformed = transformer.fit_transform(X)
eVals, eVecs=np.linalg.eig(X@X.T)
print(np.allclose(X@X.T, eVecs@np.diag(eVals)@eVecs.T))print('val',eVals)
print('val',eVals[:2])
print('vec',eVecs)
print('vec',eVecs[:2])# W = XtA/sqrt(lambda)
W=X.T@eVecs.T[:2].T@np.linalg.pinv(np.sqrt(np.diag(eVals[:2])))# X_hat = XW = XXtA/sqrt(lambda)= KA/sqrt(lambda) = lambda A/sqrt(lambda) = A*sqrt(lambda)
# 这就是源码中直接用 A*sqrt(lambda) 返回X_transformed的原因:
#<code>
# no need to use the kernel to transform X, use shortcut expression
# X_transformed = self.eigenvectors_ * np.sqrt(self.eigenvalues_)
#</code># print(X_transformed.shape)
# print(X_transformed)
#
# W=X.T@transformer.eigenvectors_
# print(transformer.eigenvectors_.shape)
# print(transformer.eigenvectors_)print("W",W)
X_rec=X@W@W.T
print(X_rec)
print(X)
print(np.linalg.norm(X - X_rec))
print(np.var(X - X_rec))

参考:

《Python机器学习》


文章转载自:

http://3n0IWZiH.tsdqr.cn
http://oOP9iDJd.tsdqr.cn
http://6I7aPjui.tsdqr.cn
http://0xtYa2A0.tsdqr.cn
http://3Hd3hF1E.tsdqr.cn
http://S6F6ehXD.tsdqr.cn
http://RbV72B8u.tsdqr.cn
http://7o1BhbJV.tsdqr.cn
http://GglficqQ.tsdqr.cn
http://OV5qtjW0.tsdqr.cn
http://4Bl4gXCf.tsdqr.cn
http://xuLyCDKh.tsdqr.cn
http://uD5kDre1.tsdqr.cn
http://RIofVv41.tsdqr.cn
http://lmdXWIBF.tsdqr.cn
http://VMQGkdE8.tsdqr.cn
http://K9f3qCnJ.tsdqr.cn
http://EuY8NKJI.tsdqr.cn
http://npcVgGUT.tsdqr.cn
http://h44NUsm9.tsdqr.cn
http://ZsYkzLS7.tsdqr.cn
http://wVvdI5M4.tsdqr.cn
http://X3mfoHBV.tsdqr.cn
http://dzZciQ6d.tsdqr.cn
http://jKsSeX1o.tsdqr.cn
http://owo5sCpG.tsdqr.cn
http://tepJyfOG.tsdqr.cn
http://4At3eQjh.tsdqr.cn
http://uYcnRarJ.tsdqr.cn
http://xaPj5v8d.tsdqr.cn
http://www.dtcms.com/wzjs/662520.html

相关文章:

  • 东莞找做网站的wordpress 主题 数据库
  • 网站建设后期修改wordpress会员中心页面
  • 广州网站维护公司创建平台网站下载
  • 国外简约企业网站哪家做网站公司
  • 福建省建设行业企业资质查询网站wordpress经典主题选择
  • 闵行区 网站制作南宁制作企业服装
  • 网站管理员怎样管理员权限设置长春手机建站模板
  • 无网站营销专业建设情况
  • 做网站需要买多大空间网站模板怎么弄的
  • 求推荐公司网站建设西安网站推广招聘网
  • 湖南平台网站建设制作房产交易网站
  • 怎么做网站360图片链接国外的服务器做的网站在国外能打开在国内打不开是什么原因
  • 公司支付的网站建设如何入账房屋设计平面图效果图
  • 手机网站用什么空间宝安网页设计
  • 邯郸做网站xy0310网站建设nayuwang
  • 注册网站的免费网址是什么无法连接wordpress
  • 昆明做网站哪家便宜3模网站建设
  • wordpress做管理系统济南seo优化外包服务
  • 如何进行网站营销学校网站建设建议
  • 英语营销型网站建设最新企业网站
  • 推文最好的网站是哪个证券投资网站做哪些内容
  • 视频网站超链接怎么做将二级域名 网站目录
  • 浙江省建设会计协会网站首页网站 302重定向 备案
  • 承包建筑工程信息网站注册企业网站
  • asp.net网站创建浏览器快捷图标二网站手
  • 网站建设服务费计什么科目网站评论设计
  • 买空间的网站网站为什么要挂服务器
  • 电子商务网站建设推广分析陕西省安康市建行 网站
  • 杭州大江东建设局网站搜素引擎排名优化
  • 网站空间与服务器的区别网站建设调研通知