34、基于相关性的最近邻分类距离函数

基于相关性的最近邻分类距离函数

在模式识别领域,最近邻规则是一种广为人知的分类方法,因其简单性和良好的性能而被广泛研究。而距离函数的定义对于在给定数据集上获得良好的分类准确性至关重要,不同的距离函数也被不断提出以提升性能。

1. 现有距离函数的局限性

距离函数可以分为处理有序(连续或离散)、名义(或符号)以及同时包含有序和名义数据的异构输入数据的几类。由于距离的概念本质上是数值化的,大多数现有的距离函数是为具有有序属性的数据定义的。常见的距离函数如欧几里得距离和汉明距离,前者仅限于有序数据,后者通常用于名义属性。还有一些研究者使用重叠度量来处理名义属性。价值差异度量(VDM)是另一种适用于名义属性的距离函数,但这些函数都无法处理异构数据。

现有的使用VDM的系统要么依赖离散化方法将连续属性转换为离散属性(DVDM),要么使用插值方法组合原始连续值(IVDM)。此外,还有其他处理异构数据的距离函数,如异构欧几里得 - 重叠度量(HEOM)和异构VDM(HVDM),但它们缺乏统一处理连续和名义属性的方式。

2. 新距离函数的提出

本文提出了一种基于模糊集相关性的新距离函数,称为模糊相关性差异度量(FCDM)。其主要思想是将VDM理解为计算关联差异的一种方式,并使用相关系数来度量这种关联。FCDM能够以概念上统一的方式处理连续和离散属性。具体来说,使用模糊集对数值属性进行建模,并使用一致范数运算符来组合它们与一组实例中输出类的关系。

3. 背景知识
  • VDM的定义 :Ohnishi等人提出应区分两种相似性,即仅考虑待比较对象表面差异的浅层相似性和基于

相关推荐

高维空间的四大恩赐:球体坍缩、夹角锐化、距离集中与JL引理

高维空间并非只有‘维度灾难’,其内在几何结构蕴含独特优势:当数据维度足够高(通常n≥50)且满足近似各向同性分布时,单位球体积急剧坍缩至薄壳、随机向量夹角趋于正交、成对距离相对差异消失(距离集中化),以及Johnson-Lindenstrauss引理保障随机投影可严格保距。这些现象共同构成高维数据处理的底层逻辑基础,使余弦相似度在文本检索、马氏距离在异常检测、稀疏随机投影在实时推荐等场景中展现出远超低维方法的鲁棒性与效率。理解并工程化利用这四大现象,是突破高维稀疏、冷启动与流式计算瓶颈的关键路径。

weixin_30631587的博客 421

相关性分析实战:从皮尔逊到互信息的多尺度关系勘探

相关性分析是数据科学中最基础也最易误用的统计方法,它不证明因果,却能高效识别变量间的潜在依赖结构。其核心原理在于量化两个变量在分布、排序或信息层面的协同变化程度;技术价值体现在规避线性假设陷阱、抵抗异常值干扰、揭示非单调与非线性关联,并支撑混杂因素控制与机制推断;典型应用场景覆盖金融风控中的特征筛选、电商用户行为归因、工业时序故障预警及A/B测试前的变量探查。本文聚焦斯皮尔曼秩相关、偏相关、互信息(MI)与距离相关系数(dCor)四大关键技术,结合散点图矩阵、LOESS平滑与分组效应验证等工程实践,系统拆解

weixin_30596023的博客 442

不平衡分类实战指南:从数据偏科到业务可信模型

不平衡分类是机器学习在真实场景落地的核心挑战,本质是当正负样本比例严重失衡(如欺诈检测中正样本仅占0.1%~5%)时,传统以Accuracy为导向的建模范式全面失效。其原理在于多数类主导损失函数与评估指标,导致模型忽略关键少数类;技术价值体现在通过代价敏感学习、分层采样、Focal Loss等手段重构优化目标,使模型真正响应业务核心诉求——如高召回率或低漏判率;典型应用场景覆盖金融风控、工业故障预警、医疗影像诊断和广告点击预估;本文聚焦产线级实操,深入解析SMOTE陷阱、RUS科学采样、class_weig

weixin_30788239的博客 427

工业图像分类:不用深度学习的高鲁棒性传统方案

图像分类是计算机视觉的基础任务,其本质是在特征空间中构建可泛化的决策边界。传统方法依赖手工提取几何、纹理与颜色等物理可解释特征,结合SVM、KNN和决策树等轻量模型,在小样本、低算力、强可维护性场景下展现出独特优势。相比端到端深度学习,该范式规避了数据饥渴、GPU依赖与黑箱决策三大工程瓶颈,特别适用于嵌入式部署、产线质检与快速验证等工业级应用。本文聚焦OpenCV+scikit-learn技术栈,详解从预处理、特征工程到.exe一键部署的完整链路,覆盖苹果/橙子分类、光伏热斑检测、药片缺陷识别等27个真实落

weixin_33907511的博客 342

欧几里得TSP高效求解:从凸包预处理到2-opt优化的工程实践

旅行商问题(TSP)是组合优化的经典难题,而欧几里得TSP因其二维几何约束,成为物流路径规划、电路板布线等实际场景中最常遇到的变体。其核心原理依赖于平面坐标下的三角不等式与边交叉必可优化等几何性质,技术价值在于以极低计算成本(毫秒级)获得误差稳定在2%以内的高质量近似解。相比精确算法(如Concorde)和智能启发式(如遗传算法),基于欧几里得距离的最近邻构造与2-opt局部搜索组合,具备强可解释性、易调试性和高稳定性,特别适合实时响应要求严苛的工程系统。本文聚焦该范式在真实Python工程中的落地细节,涵

weixin_30263073的博客 353

电商视觉搜索技术:从图像匹配到意图理解的演进

视觉搜索作为计算机视觉与电商结合的典型应用,通过深度学习模型将图像内容转化为可计算的向量表示。其核心技术原理基于卷积神经网络(CNN)和Transformer架构的特征提取能力,在向量空间中进行相似度匹配。这种技术突破了传统基于关键词搜索的局限,在电商领域实现了'以图搜图'的购物体验。从工程实践角度看,现代视觉搜索系统需要解决类目耦合、评估标准化等核心挑战。以家居电商为例,用户更关注沙发、茶几等商品的风格一致性而非严格类目匹配。通过引入分类解耦架构和LLM评估框架,系统能更好地理解用户主观意图,提升推荐准确

weixin_30613433的博客 411

29、混合和不完整数据多维缩放的遗传算法及移动机器人定位方法研究

本文研究了基于遗传算法的混合和不完整数据多维缩放方法,并将其应用于移动机器人定位问题。针对多维缩放问题,提出了改进的遗传算子和初始种群选择策略,以提高表示质量和收敛速度。实验表明,该方法在处理混合和不完整数据集时优于传统算法 MDSCAL,尤其在中等半径 r 设置下表现优异。在移动机器人定位方面,结合多目标遗传算法(MOGA)和随机突变爬山法(RMHC),实现了仅使用单个传感器和简化数据库的高效定位。未来的研究方向包括算子优化、参数敏感性分析和方法应用拓展。

gpt4scribbler的博客 52

34、原子层沉积中基于机器学习的分类技术

本文探讨了原子层沉积(ALD)中基于机器学习的分类技术,涵盖二元、多类和多标签分类任务,介绍了多层感知器、k近邻、朴素贝叶斯、支持向量机、决策树、逻辑回归和随机森林等常用算法的原理与优缺点。文章分析了这些技术在材料分类、工艺参数优化、缺陷检测、材料发现及质量控制中的潜在应用,并通过案例研究展示了其在光谱椭偏建模中的实际效果。最后提出了技术应用的操作流程与未来发展方向,强调机器学习在提升ALD过程智能化和自动化方面的巨大潜力。

i7j8k9l的博客 106

34、机器学习算法在分类与癌症预测中的应用分析

本文详细探讨了机器学习中的KNN和SVM两种监督学习算法在分类任务中的性能特点及优化策略,并深入分析了其在癌症预测与预后中的广泛应用。文章涵盖了KNN与SVM的算法特性、提升KNN准确率的方法、KNN-SVM混合分类器的工作原理及应用案例、癌症预测的重要性及数据挑战、不同机器学习算法在癌症预测中的性能对比,以及特征选择的关键作用。此外,还展望了未来研究方向,如深度学习与传统算法的结合、多模态数据融合等,并提出了实际应用中的注意事项。通过合理的算法选择、特征优化和模型改进,机器学习在癌症预测领域展现了巨大的潜

kubernetes8ctl的博客 92

34、数据分类与预测方法全解析

本文详细解析了数据挖掘中的分类与预测方法,涵盖了决策树、贝叶斯分类、神经网络、支持向量机(SVM)、回归模型等多种技术。文章不仅介绍了各类算法的基本原理和流程,还探讨了它们在实际应用中的优缺点及优化策略。此外,还涉及了评估方法的选择与应用,并通过医疗诊断、金融风险评估和市场营销等实际案例展示了这些方法的实用性。

aa123的博客 100

34、提升用户安全:认证与匿名性技术解析

本文探讨了提升用户安全的两大核心技术:连续用户认证与用户匿名性。在认证方面,重点分析了基于键盘打字生物特征的连续认证技术,涵盖其优势、研究进展及系统设计实现,提出通过行为特征实现非侵入式实时身份验证。在匿名性方面,介绍了TOR的工作原理及其在保护用户隐私中的应用。文章还总结了现有技术的优缺点,并展望了人工智能与机器学习在未来安全技术中的潜力,旨在为构建更安全可靠的网络环境提供思路。

ansible6ops的博客 53

【信息科学与工程学】计算科学与自动化-第八篇04 大语言模型函数与认知函数列表

线性代数运算:矩阵乘法、分解、求逆等微积分运算:梯度、散度、旋度、拉普拉斯算子概率统计:分布函数、统计量、假设检验信号处理:傅里叶变换、小波变换、滤波器。

weixin_49199313的博客 909

langchain入门学习笔记

langchain快速入门

1733

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1500

【Qt-4】QT基于qhttp-server搭建http服务器

QT搭建http服务器

WXG1011的博客 5714

ROS2 -Jazzy 一步一步(第一步_工作空间以及编译)

文件夹作用特点是否需要手动创建/维护src存放自己写的 ROS 2 包一个 workspace 可以有多个包需要手动创建build保存编译过程中的中间文件每个包生成对应子目录自动生成,可删除install保存编译完成后的功能包每个包有独立子目录,含可执行文件自动生成,可删除log保存编译日志用于查看错误原因、调试自动生成,不需修改colcon是 ROS 2 推荐使用的构建工具自动处理功能包的依赖和编译顺序一条命令就能编译整个工作空间。

jerrykorea的博客 1380

企业微信-审批控件中的外部选项的应用全流程完美解决方案

完美解决企业微信所有JS-SDK调用问题 完美解决苹果和PC端不适配的问题

qq_45195039的博客 5872

silero-vad 训练自己的数据

silero-vad 训练自己的数据

jacke121的专栏 816

微信小程序:errno: 1500104, errCode: 10008, errMsg: “writeBLECharacteristicValue:fail:system error, status

微信小程序errno: 1500104, errCode: 10008, errMsg: "writeBLECharacteristicValue:fail:system error, status: UNKNOWN (239)"微信小程序调用蓝牙API,wx.writeBLECharacteristicValue()报错,微信小程序蓝牙写入错误,在开发uniapp微信小程序蓝牙通信功能时报错,蓝牙开发设备控制核心api,微信小程序调用蓝牙API “wx.writeBLECharacteristicValu

✅ 精选推荐文章 3930

Linux下搭建简易的HTTP服务器完成图片显示

篇文章作为Linux下socket(TCP)网络编程的练习,使用C语言代码搭建一个简单的HTTP服务器,完成与浏览器之间的交互,最终在浏览器上显示一张图片;通过这个例子可以巩固socket里多线程使用,也可以方便学习了解HTTP协议。

2588

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 12、重新审视选择密文验证攻击
下一篇: 35、规则三角网格上的汇聚广播调度问题解析
废话输出机427
博客等级 码龄4年 414粉丝 1552原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值