现在我们回到LDA的原理上,我们在第一节说讲到了LDA希望投影后希望同一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,但是这只是一个感官的度量。
现在我们首先从比较简单的二类LDA入手,严谨的分析LDA的原理。
    假设我们的数据集D={(x1,y1),(x2,y2),...,((xm,ym))}D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本xixi为n维向量,yi∈{0,1}yi∈{0,1}。
我们定义Nj(j=0,1)Nj(j=0,1)为第j类样本的个数,Xj(j=0,1)Xj(j=0,1)为第j类样本的集合,而μj(j=0,1)μj(j=0,1)为第j类样本的均值向量,定义Σj(j=0,1)Σj(j=0,1)为第j类样本的协方差矩阵(严格说是缺少分母部分的协方差矩阵)。
    μjμj的表达式为:μj=1Nj∑x∈Xjx(j=0,1)μj=1Nj∑x∈Xjx(j=0,1)    ΣjΣj的表达式为:Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)Σj=∑x∈Xj(x−μj)(x−μj)T(j=0,1)    由于是两类数据,因此我们只需要将数据投影到一条直线上即可。
假设我们的投影直线是向量ww,则对任意一个样本本xixi,它在直线ww的投影为wTxiwTxi,对于我们的两个类别的中心点μ0,μ1μ0,μ1,在在直线ww的投影为wTμ0wTμ0和wTμ1wTμ1。
由于LDA需要让不同类别的数据的类别中心之间的距离尽可能的大,也就是我们要最大化||wTμ0−wTμ1||22||wTμ0−wTμ1||22,同时我们希望同一种类别数据的投影点尽可能的接近,也就是要同类样本投影点的协方差wTΣ0wwTΣ0w和wTΣ1wwTΣ1w尽可能的小,即最小化wTΣ0w+wTΣ1wwTΣ0w+wTΣ1w。
综上所述,我们的优化目标为:argmaxwJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)wargmax⏟wJ(w)=||wTμ0−wTμ1||22wTΣ0w+wTΣ1w=wT(μ0−μ1)(μ0−μ1)TwwT(Σ0+Σ1)w    我们一般定义类内散度矩阵SwSw为:Sw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)TSw=Σ0+Σ1=∑x∈X0(x−μ0)(x−μ0)T+∑x∈X1(x−μ1)(x−μ1)T    同时定义类间散度矩阵SbSb为:Sb=(μ0−μ1)(μ0−μ1)TSb=(μ0−μ1)(μ0−μ1)T    这样我们的优化目标重写为:argmaxwJ(w)=wTSbwwTSwwargmax⏟wJ(w)=wTSbwwTSww    仔细一看上式,这不就是我们的广义瑞利商嘛!这就简单了,利用我们第二节讲到的广义瑞利商的性质,我们知道我们的J(w)J(w)最大值为矩阵S−12wSbS−12wSw−12SbSw−12的最大特征值,而对应的ww为S−12wSbS−12wSw−12SbSw−12的最大特征值对应的特征向量!而S−1wSbSw−1Sb的特征值和S−12wSbS−12wSw−12SbSw−12的特征值相同,S−1wSbSw−1Sb的特征向量w′w′和S−12wSbS−12wSw−12SbSw−12的特征向量ww满足w′=S−12www′=Sw−12w的关系!    注意到对于二类的时候,SbwSbw的方向恒为μ0−μ1μ0−μ1,不妨令Sbw=λ(μ0−μ1)Sbw=λ(μ0−μ1),将其带入:(S−1wSb)w=λw(Sw−1Sb)w=λw,可以得到w=S−1w(μ0−μ1)w=Sw−1(μ0−μ1),也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向ww了。
2024/7/30 21:57:26 3KB MATLAB 人脸识别 LDA knn
1
sigmoid函数:nonlin(输出矩阵,矩阵,[是否求导(boolean)])底数矩阵:NumInd(输出矩阵,底常数,矩阵,[矩阵是否要系数(Double)])矩阵指数:ArrInd(输出矩阵,指常数,矩阵,[矩阵是否要系数(Double)])数加矩阵:NumAdd(输出矩阵,加常数,矩阵,[矩阵是否要系数(Double)])数减矩阵:NumSub(输出矩阵,被减数,矩阵,[矩阵是否要系数(Double)])数乘矩阵:NumDot(输出矩阵,被乘数,矩阵,[矩阵是否要系数(Double)])矩阵加法:ArrAdd(输出矩阵,矩阵A,矩阵B,[结果是否要系数(Double)])矩阵减法:ArrSub(输出矩阵,矩阵A,矩阵B,[结果是否要系数(Double)])哈达玛积:ArrDot(输出矩阵,矩阵A,矩阵B,[结果是否要系数(Double)])数乘矩阵:NumDot(输出矩阵,乘常数,矩阵)矩阵乘法:Dot(输出矩阵,矩阵A,矩阵B)矩阵可视化:ArrVis(矩阵)输出字符串转置矩阵:ArrT(输出矩阵,矩阵,[结果是否要系数(Double)])一维数组矩阵化:ArrA(输出矩阵,列数,一维数组)元素矩阵化:Arr(输出矩阵,列数,元素1,元素2,元素3...)矩阵绝对值:ArrAbs(输出矩阵,矩阵,[结果是否要系数(Double)])矩阵元素平均:Mean(矩阵)输出双精度小数随机小数矩阵:Rand(输出矩阵,行数,列数,[矩阵是否要系数])随机整数矩阵:intRand(输出矩阵,行数,列数,下限,上限)
2024/7/30 3:02:33 10KB VB 矩阵
1
随机森林降维算法,直接修改输入输出路径,就可以运行的VS项目。
2024/7/29 17:42:18 8.28MB 随机森林 C语言
1
零资源分下载,分享精神至上~3.0版新加入三维天空模拟系统。
其中的3D人物模型使用的是真三国无双6中的一个女角色。
背景音乐为仙剑奇侠传3主题曲。
一个综合型的Direct3D示例程序的3.0版。
用键盘上W,A,S,D,I,J,K,L,↑,↓,←,→12个键加上鼠标在美丽的三维空间中翱翔。
包括了Direct3D初始化,DirectInput输入处理,顶点缓存,光照与材质,文字输出,颜色,纹理贴图,四大变换,网格模型,X文件载入等等知识(当然还有默认被开启的深度缓存),地形系统模拟,三维天空模拟。
源码的配套博文是《【VisualC++】游戏开发四十九浅墨DirectX教程十七三维天空的实现》,文章地址为http://blog.csdn.net/zhmxy555/article/details/8715196,点击Release文件夹下的exe文件可以直接看到运行效果,运行需要DirectX运行库的支持。
报缺少D3D的DLL系列错误的童鞋们请google/百度一下“DirectX9.0cruntime”,下载并装个最新版的。
报缺少MVCR100D.Dll错误的朋友们去下一个安装就可以了,或者直接点击sln打开工程再次编译一次。
如果是想调试并运行源代码,但是报错了,请去下载最新版DirectXSDK并进行DirectX开发环境的配置。
编写环境:VS2010我的博客地址是http://blog.csdn.net/zhmxy555,源码结合配套文章一起看效果更佳。
希望能和大家一起交流,共同学习,共同进步。
2024/7/29 14:44:42 10.67MB DirectX Win32 C++ Direct3D
1
eMPrint打印监控软件是一套集打印管理、打印内容监控、刷卡打印、漫游打印、密码打印、打印负载均衡、添加页眉、添加水印、添加二维码、打印审核、打印成本控制于一体的打印安全管理软件。
全面进行打印监视、控制和审计,有效利用打印资源,可节约打印成本30%,杜绝打印泄密!让网络打印尽在您的掌控。
eMPrint打印监控软件功能●打印记录监控·准确监控每次打印的打印时间、用户(与域AD结合)、计算机名、部门(组)、文档名、文档内容、单面(双面)、页数、份数、纸张大小、色彩、打印费用等信息;
●打印内容监控·实现打印内容的监控和查看,实现打印文档的电子化,保障打印信息安全;
·完整保存每次打印任务的全部内容,方便实时查看;
●刷卡打印(保密打印)打印监控  ·结合单位的员工卡,刷卡后打印(支持IC/ID/HID等卡),可与考勤卡、门禁卡等集成;
·到打印机前刷卡后打印,杜绝了传统打印方式下,打印出的文件未能及时取走导致泄密的现象,增强了打印的保密性和文档的安全性;
·杜绝了打印的随意性,减少打印浪费;
●漫游打印打印监控·实现“走到哪里就到哪里打印”,“想用哪台打印机打印就用哪台打印机打印”;
·用户电脑不用为每台打印机安装驱动,就可以使用网络中的任何一台打印机;
·到分公司出差,无需安装分公司的打印机,就可以使用分公司的打印机进行打印。
●强制标识(添加页眉、添加水印、添加二维码)打印监控-添加页眉,在打印出的文档的页眉或页脚位置,强制添加页眉或页脚信息,如:打印人、打印时间等信息;
·添加水印,在打印出的文档上强制添加水印,如:单位信息、机密等信息;
·添加二维码,在页眉或页脚位置强制添加二维码,二维码信息包括:打印人、时间、计算机或自定义信息..●打印审核·可针对部门/用户/打印机/服务器启用人工审核,则打印任务必须经过管理员审核、批准后才送往打印机,适合敏感信息和高成本打印机的全面监控;
做到有目的的打印,有效杜绝无用打印,细化打印管理,培训良好打印习惯,节约打印成本;
·可设置多个“审核”管理员;
eMPrint打印监控软件截图
2024/7/27 15:49:02 39.7MB 应用软件-扫描打印
1
提出了一种用于全局优化的混合差分进化算法。
在新算法中,混沌系统的随机性被用来在搜索空间中尽可能多地散布个体,模式搜索方法被用来加速局部开发,而DE算子被用来跳到一个更好的点。
证明了全局收敛。
详细研究了三种典型的混沌系统。
在包含13个高维函数的基准示例上的数值实验表明,该新方法以较少的计算量实现了更高的成功率和最终解决方案。
2024/7/27 13:07:01 215KB differential evolutionary algorithm; global
1
石墨烯具有特殊的二维柔性结构,可调控费米能级特性和优异的光学、电学性能。
利用有限元法,对覆石墨烯微纳光纤光场调控进行理论分析,通过改变石墨烯与缓冲层结构覆微纳光纤的角度,破坏光纤的对称性结构,使光纤具有双折射特性,双折射度大小与石墨烯覆盖角度有关;
通过外加电压的方法改变石墨烯的化学势,可对光纤进行开关调控,由此设计出一种包覆石墨烯的微纳光纤电吸收型调制器并进行性能分析。
通过数值分析可发现当覆盖光纤角度为270°时,1550nm处双折射度可达1.23×10-3;
电吸收调制器工作在1550nm时,器件长度为18μm,消光比为7dB,3dB带宽可达到927MHz,插入损耗为0.58dB
2024/7/26 21:24:07 6.02MB 物理光学 双折射 微纳光纤 电光调控
1
演示了使用VisualStudio自带控件进行Panel分割形成电视墙的方法  使用VisualStuido2010,DotNet版本为3.5  可以非常方便的通过二维数组来定义不同的Panel分割方式  分割后的每个Panel可以单击选择,双击放大  主要用于视频监控类软件的界面设计方案
2024/7/26 19:46:29 1.52MB SplitPanel 多画面分割 Panel分割 电视墙
1
在水利工程领域,PEST在地下水、地表水模型中应用较多,而基于PEST改进的PEST++在水动力学模型参数优化中的应用则十分鲜见,因此本文应用PEST++对一维水动力学模型进行参数优化的研究。
2024/7/26 17:24:26 8.54MB PEST 参数优化 灵敏度分析 水文模型
1
本代码主要利用MATLAB工具实现MATLAB——二维插值实例,简单明了,易于理解
2024/7/25 19:16:07 271B MATLAB 二维插值
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡