当前位置:首页 » 操作系统 » nn算法

nn算法

发布时间: 2022-08-18 04:14:17

Ⅰ 神经网络算法是什么

Introction
--------------------------------------------------------------------------------

神经网络是新技术领域中的一个时尚词汇。很多人听过这个词,但很少人真正明白它是什么。本文的目的是介绍所有关于神经网络的基本包括它的功能、一般结构、相关术语、类型及其应用。

“神经网络”这个词实际是来自于生物学,而我们所指的神经网络正确的名称应该是“人工神经网络(ANNs)”。在本文,我会同时使用这两个互换的术语。

一个真正的神经网络是由数个至数十亿个被称为神经元的细胞(组成我们大脑的微小细胞)所组成,它们以不同方式连接而型成网络。人工神经网络就是尝试模拟这种生物学上的体系结构及其操作。在这里有一个难题:我们对生物学上的神经网络知道的不多!因此,不同类型之间的神经网络体系结构有很大的不同,我们所知道的只是神经元基本的结构。

The neuron
--------------------------------------------------------------------------------

虽然已经确认在我们的大脑中有大约50至500种不同的神经元,但它们大部份都是基于基本神经元的特别细胞。基本神经元包含有synapses、soma、axon及dendrites。Synapses负责神经元之间的连接,它们不是直接物理上连接的,而是它们之间有一个很小的空隙允许电子讯号从一个神经元跳到另一个神经元。然后这些电子讯号会交给soma处理及以其内部电子讯号将处理结果传递给axon。而axon会将这些讯号分发给dendrites。最后,dendrites带着这些讯号再交给其它的synapses,再继续下一个循环。

如同生物学上的基本神经元,人工的神经网络也有基本的神经元。每个神经元有特定数量的输入,也会为每个神经元设定权重(weight)。权重是对所输入的资料的重要性的一个指标。然后,神经元会计算出权重合计值(net value),而权重合计值就是将所有输入乘以它们的权重的合计。每个神经元都有它们各自的临界值(threshold),而当权重合计值大于临界值时,神经元会输出1。相反,则输出0。最后,输出会被传送给与该神经元连接的其它神经元继续剩余的计算。

Learning
--------------------------------------------------------------------------------

正如上述所写,问题的核心是权重及临界值是该如何设定的呢?世界上有很多不同的训练方式,就如网络类型一样多。但有些比较出名的包括back-propagation, delta rule及Kohonen训练模式。

由于结构体系的不同,训练的规则也不相同,但大部份的规则可以被分为二大类别 - 监管的及非监管的。监管方式的训练规则需要“教师”告诉他们特定的输入应该作出怎样的输出。然后训练规则会调整所有需要的权重值(这是网络中是非常复杂的),而整个过程会重头开始直至数据可以被网络正确的分析出来。监管方式的训练模式包括有back-propagation及delta rule。非监管方式的规则无需教师,因为他们所产生的输出会被进一步评估。

Architecture
--------------------------------------------------------------------------------

在神经网络中,遵守明确的规则一词是最“模糊不清”的。因为有太多不同种类的网络,由简单的布尔网络(Perceptrons),至复杂的自我调整网络(Kohonen),至热动态性网络模型(Boltzmann machines)!而这些,都遵守一个网络体系结构的标准。

一个网络包括有多个神经元“层”,输入层、隐蔽层及输出层。输入层负责接收输入及分发到隐蔽层(因为用户看不见这些层,所以见做隐蔽层)。这些隐蔽层负责所需的计算及输出结果给输出层,而用户则可以看到最终结果。现在,为免混淆,不会在这里更深入的探讨体系结构这一话题。对于不同神经网络的更多详细资料可以看Generation5 essays

尽管我们讨论过神经元、训练及体系结构,但我们还不清楚神经网络实际做些什么。

The Function of ANNs
--------------------------------------------------------------------------------

神经网络被设计为与图案一起工作 - 它们可以被分为分类式或联想式。分类式网络可以接受一组数,然后将其分类。例如ONR程序接受一个数字的影象而输出这个数字。或者PPDA32程序接受一个坐标而将它分类成A类或B类(类别是由所提供的训练决定的)。更多实际用途可以看Applications in the Military中的军事雷达,该雷达可以分别出车辆或树。

联想模式接受一组数而输出另一组。例如HIR程序接受一个‘脏’图像而输出一个它所学过而最接近的一个图像。联想模式更可应用于复杂的应用程序,如签名、面部、指纹识别等。

The Ups and Downs of Neural Networks
--------------------------------------------------------------------------------

神经网络在这个领域中有很多优点,使得它越来越流行。它在类型分类/识别方面非常出色。神经网络可以处理例外及不正常的输入数据,这对于很多系统都很重要(例如雷达及声波定位系统)。很多神经网络都是模仿生物神经网络的,即是他们仿照大脑的运作方式工作。神经网络也得助于神经系统科学的发展,使它可以像人类一样准确地辨别物件而有电脑的速度!前途是光明的,但现在...

是的,神经网络也有些不好的地方。这通常都是因为缺乏足够强大的硬件。神经网络的力量源自于以并行方式处理资讯,即是同时处理多项数据。因此,要一个串行的机器模拟并行处理是非常耗时的。

神经网络的另一个问题是对某一个问题构建网络所定义的条件不足 - 有太多因素需要考虑:训练的算法、体系结构、每层的神经元个数、有多少层、数据的表现等,还有其它更多因素。因此,随着时间越来越重要,大部份公司不可能负担重复的开发神经网络去有效地解决问题。

NN 神经网络,Neural Network
ANNs 人工神经网络,Artificial Neural Networks
neurons 神经元
synapses 神经键
self-organizing networks 自我调整网络
networks modelling thermodynamic properties 热动态性网络模型

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
网格算法我没听说过
好像只有网格计算这个词

网格计算是伴随着互联网技术而迅速发展起来的,专门针对复杂科学计算的新型计算模式。这种计算模式是利用互联网把分散在不同地理位置的电脑组织成一个“虚拟的超级计算机”,其中每一台参与计算的计算机就是一个“节点”,而整个计算是由成千上万个“节点”组成的“一张网格”, 所以这种计算方式叫网格计算。这样组织起来的“虚拟的超级计算机”有两个优势,一个是数据处理能力超强;另一个是能充分利用网上的闲置处理能力。简单地讲,网格是把整个网络整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。

Ⅱ 粒子群算法是怎么用于字符识别的

字符识别可看做属于模式识别范畴,模式识别即对已有的模式进行识别,即分类。

粒子群本身是一个搜索算法或者优化算法,本质说,它不能用于分类。但是,结合其他的一些分类算法,把分类的问题看成一个问题的优化问题的时候,粒子群就可以用于分类了。

举个粒子,最近邻分类NN,指的是测试集中的样本与训练集中距离最近样本的模式(类别)相同。

现在假定给了训练集A,测试集B。假设类别已知为C类。如果训练集A特征大的时候,势必会影响分类时候的速度,那么我们就可以把训练集简化到每类一个样本(共C个样本),那样分类的时候只需要计算B中每个样本到C个中心点中哪个的距离最小就可以了。

如何利用粒子群算法得到这C个中心点呢??

一般采用聚类的思想,假设我们想找到C个中心点的每个中心点 是 到A中对应自己类别的样本的距离和最小的C个点,那么适应度函数就出来了。即训练样本到中心点样本的距离和。

Ⅲ 用户画像机器学习用到了哪些算法

很多,主要说下监督学习这块的算法哈。欢迎讨论。svm,支撑向量机,通过找到样本空间中的一个超平面,实现样本的分类,也可以作回归,主要用在文本分类,图像识别等领域,详见:;
lr,逻辑回归,本质也是线性回归,通过拟合拟合样本的某个曲线,然后使用逻辑函数进行区间缩放,但是一般用来分类,主要用在ctr预估、等;
nn,神经网络,通过找到某种非线性模型拟合数据,主要用在图像等;
nb,朴素贝叶斯,通过找到样本所属于的联合分步,然后通过贝叶斯公式,计算样本的后验概率,从而进行分类,主要用来文本分类;
dt,决策树,构建一棵树,在节点按照某种规则(一般使用信息熵)来进行样本划分,实质是在样本空间进行块状的划分,主要用来分类,也有做回归,但更多的是作为弱分类器,用在model embedding中;
rf,随进森林,是由许多决策树构成的森林,每个森林中训练的样本是从整体样本中抽样得到,每个节点需要进行划分的特征也是抽样得到,这样子就使得每棵树都具有独特领域的知识,从而有更好的泛化能力;
gbdt,梯度提升决策树,实际上也是由多棵树构成,和rf不同的是,每棵树训练样本是上一棵树的残差,这体现了梯度的思想,同时最后的结构是用这所有的树进行组合或者投票得出,主要用在、相关性等;
knn,k最近邻,应该是最简单的ml方法了,对于未知标签的样本,看与它最近的k个样本(使用某种距离公式,马氏距离或者欧式距离)中哪种标签最多,它就属于这类;

</ol></ol></ol>

Ⅳ 历史上第一个机器学习算法是什么

‍‍

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据特征,并将关键放在关键的训练数据上面。

‍‍

Ⅳ 算法的时间复杂度是指什么

算法的时间复杂度是指:执行程序所需的时间。

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近无穷大时。

T(n)/f(n)的极限值为不等于零的常数,则称为f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n))为算法的渐进时间复杂度,简称时间复杂度。比如:

在 T(n)=4nn-2n+2 中,就有f(n)=nn,使得T(n)/f(n)的极限值为4,那么O(f(n)),也就是时间复杂度为O(n*n)。

时间复杂度中大O阶推导是:

推导大O阶就是将算法的所有步骤转换为代数项,然后排除不会对问题的整体复杂度产生较大影响的较低阶常数和系数。

有条理的说,推导大O阶,按照下面的三个规则来推导,得到的结果就是大O表示法:运行时间中所有的加减法常数用常数1代替。只保留最高阶项去除最高项常数。

其他常见复杂度是:

f(n)=nlogn时,时间复杂度为O(nlogn),可以称为nlogn阶。

f(n)=n³时,时间复杂度为O(n³),可以称为立方阶。

f(n)=2ⁿ时,时间复杂度为O(2ⁿ),可以称为指数阶。

f(n)=n!时,时间复杂度为O(n!),可以称为阶乘阶。

f(n)=(√n时,时间复杂度为O(√n),可以称为平方根阶。

Ⅵ 如何连结神经元

一种用于实时过程的神经网络在线自学习逆控制算法
发布时间:2004.11.10 阅览次数:2280 作者:彭一江 单位:长沙天海分析检测自动化有限公司

摘 要: 本文探讨了神经网络控制应用于实时过程的实现问题,提出一种网络训练与控制分离并行的算法。该算法在对过程的逆模型进行实时在线自学习的同时,对过程实施逆控制,实现对复杂对象的自学习、自适应控制功能。文中还给出了一个计算机仿真实例的结果。
关键词:实时过程;神经网络;在线自学习;逆控制。

ONE NEURAL NETWORK INVERSE CONTROL ALGORITHM
WITH ON-LINE SELF-LEARNING FOR REAL-TIME PROCESSES Abstract : In this paper , the study on the realization of application of neural network control to the real-time process is made and the algorithm with separated and parallel method for neural network training and control is advanced . Useing this algorithm,the on-line learning to the inverse model of real-time process can be performed, and concurrently , the inverse control can be performed in the process. It can realize functions of self-learning and adaptive control to complex processes.The result of one example of the computer simulation of the system is presented .
Key words: real-time process ; neural network ; on-line self-learning ; inverse control.

1 引言
近年来,人工神经网络 (简称神经网络或NN) 越来越多地应用于工业自动化控制领域。由于神经网络能够充分逼近任意复杂的非线性关系和能够学习与适应严重不确定性系统的动态特性,因此,采用基于NN人工智能控制方法,引入自学习、自适应功能而构成的实时系统,在处理那些实时性要求高且难于用模型或规则描述、随机性事件多、非线性严重、存在多个不同类型输入和输出的实时过程方面,显示了极大的优越性。众所周知,由于神经网络的学习需要耗费较长的时间,其实时应用策略仍是控制领域研究的热点。
通常,神经网络在过程控制中用作控制器模仿器或过程模仿器,构成基于神经网络的控制系统。目前,这种控制系统常采用软件方法实现。然而,神经网络的学习过程是一个慢过程,而作为一个实时系统,其主要目标是保证系统响应的及时性,必须同时满足逻辑正确性和时间约束两个条件。因此,对于快速有时甚至是慢速的实时过程,特别是对于有强实时任务(即要求该任务在时限内完成,否则其结果将失去可用性的任务)的过程,神经网络的学习慢速性是NN实时控制算法实现的难点。一般采用NN离线学习与在线控制相结合的方法。在线学习与控制的方法大多局限于在一个控制周期内串行完成的算法。本文在NN软件实现上结合中断处理技术,使网络的学习与控制分离和并行嵌套,提出一种用于实时过程的神经网络在线自学习逆控制算法,用以处理难于建立对象模型 (包括快速和强实时) 的过程。

2 基于NN的实时过程控制原理
实时过程控制系统是指该系统实时地从外界获得被控系统的当前状态,进行预定的处理,并根据处理结果对外界被控系统进行及时控制,使其处于要求的状态下。实时过程控制系统的模型是一个反馈环结构。如图 1 所示。

2.1 系统NN基本结构
采用具有非线性特性函数的神经元及多层非循环连接模式的神经网络(NN)和反向传播(B-P)学习算法。
根据一般实时过程的特点,设神经网络输入层共取n个神经元,分别代表输入端x1,x2,···xi···xn。完成将外部各工艺参数输入神经网络的功能;中间层取1∽2 层共设2n+m个神经元,代表神经网络的感知层;输出层取m 个神经元,代表过程的输出参数y1,y2,···yj,···ym。从外部特性看,网络相当于一个n输入m输出的多变量传递函数。而其内部特性却充分反应了对象的动力学特性。系统NN基本结构如图 2 所示。其中:(a)网络连接模型, (b)神经元模型。

在图2所示的神经网络中,某一个神经元的结构如图2(b)所示。其中Xi为输入信息,Wi为权值,θi 为阈值,F是表示神经元活动的特性函数,F刻划了神经元输入信号与
输出信息之间对应的关系 。
2.2 网络权值学习算法
神经元特性函数取S型函数,即:
F(X)= 1/(1+e-x) (2-1)
网络采用的B-P算法是前向计算输出与反向传播误差相结合的进行权值调整的过程。
设网络中第i层某个神经元与后一层第j层的连接权值为W[ij],输入为X[j] ,输出为X[i]'。由图3可得:
Xi '=F(Xi )=1/(1+e-Xi+θi) (2-2)
Xi =∑Wij ·Xj (2-3)
误差反传采用改进的Delta权值调整公式[4] :
Wij(n+1)=Wij(n)+ΔWij(n+1) (2-4)
ΔWij(n+1)=η·δj·X'i+α(ΔWij(n)) (2-5)
式中:
η为学习率(取η=0.1~0.9);
α为动量系数(取α=0.1~0.8);
δj为神经元输出误差。
采用基于系统误差梯度的方法调整权值 [4] ,即:
当 j 为输出层时:
δj=-( Xi '-Xj)·X'j·(1-X'j) (2-6)
当j为中间层时:
δj=(∑δk·Wjk)·X'j·(1-X'j) (2-7)
2.3 NN在线学习控制结构
系统以过程输出量Y为控制对象,以Y=Ysr(给定常数)为控制目标,以 U过程控制量,以事先离线进行过权值初始化训练、并且在生产过程中不断进行在线学习的神经网络系统辩识模型NN为控制模型,并由此辩识模型计算某一时刻所需控制量U值。构成基于神经网络的实时控制系统,实现对Yr的自动跟踪。系统控制原理框图如图3所示。图3中,P为实时过程的实际模型;BP为输出误差向网络内部连接权值反传调整权值的算法。S为网络权值传送软件开关。
2.4 过程模型在线自学习
系统首先采用离线训练的方式形成网络的连接权值矩阵初始值,包括建立各种不同神经网络模型结构参数,以提高在线学习速度。
系统投入实时控制后,程序在一定条件下启动NN自学习功能,将实时采集的工艺参数通过特定处理后,作为训练样本输入网络,进行连接权值的调整。由于NN模型不需要知道对象的任何先验知识,在限定NN拓扑下,其连接权值不仅规定了模型的参数,同时也规定了模型的结构性质,因此,用这种方式训练出来的的神经网络模型,可以充当对象的模仿器[1]。系统不断地根据生产过程中的各种相关参数,反复调整网络权值,在线建立过程逆模型。

2.5 模型逆控制
过程模型模仿网络NN2投入实时控制前经过离线训练,使系统在投入控制后的初始阶段有较好的稳定性并使NN2能较快地完成以后的在线学习。在NN2不断学习和NN1调节控制量的过程中,NN2输入输出特性能够越来越准确地模拟实际过程模型的输入输出特性。经若干个模型学习周期,NN2 学习误差达到期望值,NN2 的连接权值暂时固定下来。当过程输出与系统设定的偏差大于期望值时,NN2的连接权值传送给调节器模仿器NN1,作为调节器计算新的控制量,同时,启动在线学习开关 S,NN2开始进行新的学习。当系统产生控制中断而进入控制周期,系统先对过程状态参数进行一次实时检测,根据当前的过程状态由NN1对控制量进行调节,完成一次在特定工艺状态参数下的控制量的动态设定。
当NN充分接近实际模型,即:NN2=P-1时,由于NN1=NN2,NN1·P=P-1·P=1,则Y=Ysr,即系统可实现对给定目标值的跟踪。

3 软件实现
对实时控制系统而言,软件设计应着重考虑NN学习算法、样本形成、网络推理之间的时序问题。系统采用内部中断与外部中断相结合的方式处理时序问题。软件设计两个中断处理子程序,其中一个为定时与采样中断处理子程序,

采用修改机器内部定时中断向量的方法,另一个为实时控制及样本提取中断处理子程序。采用外部脉冲信号产生中断申请的响应方法。网络学习则在主程序的大循环中进行。
系统投运前,NN通过离线训练获初始知识。离线训线的样本可以利用工艺过程中的历史数据产生,或由该领域专家的知识形成。
实时控制中NN以在线学习方式运行。学习是一个的大循环,不断以样本子集缓冲区的实时样本对网络进行训练。而样本缓冲区的实时样本的刷新是由外部中断服务子程序根据样本提取逻辑进行的,系统实时地将实际过程中产生的新样本替换样本缓冲区中最先前的样本。同时,一旦时间达到某一设定的周期,系统将样本缓冲区的样本存入硬盘作为历史样本供以后使用。内部中断服务子程序采集的现场数据供显示用,并且提供样本提取逻辑所需的计时信息。采用这种大循环进行NN学习;内部时钟定时中断进行数据采集与处理并提供样本获取和控制时序逻辑;外部中断请求进行样本提取和实时控制的程序结构,充分利用了CPU的大量空闲时间,即照顾了学习的耗时性,又满足了数据采集的及时性和控制的适时性。实时控制流程及中断服务子程序见图4。
其中:(a) 实时控制主模块; (b) 实时数据采集及定时中断处理子程序;(c)控制输出及样本提取中断处理子程序。

4 计算机仿真实例结果
计算机仿真实验程序用C++编制,在486微机上运行。
系统仿真所用数学模型为螺纹钢筋轧后控冷工艺过程的一个多输入单输出 (根据生产实际数据产生的回归分析模型)[5,6]:
Ts= -4.1·Qy -156.8·t -4.6·Tw +29.3·Φ+0.21·Tf +50·C +850 ( 4-1)
其中过程输出为Y = Ts ,目标值Yr = 620 。
设NN输入 X= { t , Tw , Φ , Tf , C , Ts } ;NN输出U = Qy 。
网络为6×12×12×1结构,运行前离线训练重复次数为7000次,学习时间为8分钟,网络输出总误差为0.00005。经过训练的NN用于仿真运行,模拟在线自学习控制,学习 时间小于0.5秒。仿真运行结果见表1。表中数据经归一化处理,以保证网络输出值在(0,1) 区间内;其中Qy、Ts为初始值,Qy'、Ts'为执行的结果值。

由表1可知,系统能够在钢筋终轧温度Tf变化时,自动改变水量设定值Qy,使其自回火温度稳定在目标值Tsr=602℃ (误差小于1℃)左右。仿真结果表明,这种基于NN模型自学习的逆控制方法,有较强的自学习、自适应能力。在处理一般非线性、随机性、时变及多变量输入输出的实时过程方面,有较好的开发应用前景。

参 考 文 献
[1] 周节其,徐建闽. 神经网络控制系统的研究与展望. 控制理论与应用,1992,9(6):569∽575
[2]焦李成. 神经网络的应用与实现. 西安:西安电子科技大学大学出版社.1995,261~264
[3] 袁曾任,郭新钢. 基于B-P算法的神经网络作为离散时间非线性对象的逆控制, 电气自动化,1994,(4):39~41
[4]包约翰着. 自适应模式识别与神经网络. 马颂德等译. 北京:科学出版社.1992,109~125
[5] 张泰山,彭一江. 基于神经网络的钢筋轧后冷却自学习控制系统 .中国有色金属学报,1995 ,Vol.5, Suppl.4, 380~384
[6] 彭一江. 基于神经网络的钢筋轧后冷却智能控制系统 .中南工业大学硕士学位论文. 长沙. 1996

Ⅶ 线性分类器有哪些

线性分类器有三大类(线性分类器三种最优准则):感知器准则函数、SVM、Fisher准则,而贝叶斯分类器不是线性分类器。

感知器准则函数:代价函数J=-(W*X+w0),分类的准则是最小化代价函数。感知器是神经网络(NN)的基础,网上有很多介绍。

SVM:支持向量机也是很经典的算法,优化目标是最大化间隔(margin),又称最大间隔分类器,是一种典型的线性分类器。(使用核函数可解决非线性问题)

Fisher准则:更广泛的称呼是线性判别分析(LDA),将所有样本投影到一条远点出发的直线,使得同类样本距离尽可能小,不同类样本距离尽可能大,具体为最大化“广义瑞利商”。

Ⅷ 求快速傅里叶算法的C语言实现代码

这是源于 Numerical Recipes 的关键性的函数,我曾使用过(书本可能有印刷错误,这里给的没有错误)。我不可能给你在这里讲解语句功能,你可以查原书。
isign 1 或 0 是正变换和反变换。调用前,要自己去掉 mean,尾部要自己 padding ( 最简单添0),时间域 和 频率 域 要自己 滤波。 nn 必须是2的整数次方,例如1024,4096。

#define SWAP(a,b) tempr=(a);(a)=(b);(b)=tempr
void jfour1(float ya[], unsigned long nn, int isign)
{
unsigned long n,mmax,m,j,istep,i;
double wtemp,wr,wpr,wpi,wi,theta;
float tempr,tempi;
n=nn << 1;
j=1;
for (i=1;i<n;i+=2) {
if (j > i) {
SWAP(ya[j],ya[i]);
SWAP(ya[j+1],ya[i+1]);
}
m=n >> 1;
while (m >= 2 && j > m) {
j -= m;
m >>= 1;
};
j += m;
};
mmax=2;
while (n > mmax) {
istep=mmax << 1;
theta=isign*(6.28318530717959/mmax);
wtemp=sin(0.5*theta);
wpr = -2.0*wtemp*wtemp;
wpi=sin(theta);
wr=1.0;
wi=0.0;
for (m=1;m<mmax;m+=2) {
for (i=m;i<=n;i+=istep) {
j=i+mmax;
tempr = wr * ya[j]- wi * ya[j+1];
tempi = wr * ya[j+1] + wi * ya[j];
ya[j] = ya[i] - tempr;
ya[j+1] = ya[i+1] - tempi;
ya[i] += tempr;
ya[i+1] += tempi;
};
wr = (wtemp=wr) * wpr - wi * wpi + wr;
wi = wi * wpr + wtemp * wpi + wi;
};
mmax=istep;
};
}
#undef SWAP
void jrealft(float ya[], unsigned long n, int isign)
{
void jfour1(float ya[], unsigned long nn, int isign);
unsigned long i,i1,i2,i3,i4,np3,n05;
float c1=0.5,c2,h1r,h1i,h2r,h2i;
double wr,wi,wpr,wpi,wtemp,theta;
n05 = n >> 1;
theta=3.141592653589793/(double) (n05);
if (isign == 1) {
c2 = -0.5;
jfour1(ya,n05,1);
} else {
c2=0.5;
theta = -theta;
};
wtemp=sin(0.5*theta);
wpr = -2.0*wtemp*wtemp;
wpi=sin(theta);
wr=1.0+wpr;
wi=wpi;
np3=n+3;
for (i=2;i<=(n>>2);i++) {
i4=1+(i3=np3-(i2=1+(i1=i+i-1)));
h1r = c1 * (ya[i1] + ya[i3]);
h1i = c1 * (ya[i2] - ya[i4]);
h2r = -c2* (ya[i2] + ya[i4]);
h2i = c2 * (ya[i1] - ya[i3]);
ya[i1] = h1r + wr * h2r - wi * h2i;
ya[i2] = h1i + wr * h2i + wi * h2r;
ya[i3] = h1r - wr * h2r + wi * h2i;
ya[i4] = -h1i + wr * h2i + wi * h2r;
wr= (wtemp=wr) * wpr - wi * wpi + wr;
wi=wi * wpr + wtemp * wpi + wi;
};
if (isign == 1) {
ya[1] = (h1r=ya[1]) + ya[2];
ya[2] = h1r-ya[2];
} else {
ya[1] = c1 * ((h1r=ya[1]) + ya[2]);
ya[2]=c1 * (h1r - ya[2]);
jfour1(ya,n05,-1);
}
}

Ⅸ 实现冒泡排序算法(按从小到大)。

#include<stdio.h>
int main()
{
int temp,a[2000],n,i,j;
char c1;
printf("请输入元素个数n\n");
scanf("%d",&n);
printf("请输入元素\n");
for(i=0;i<n;i++)
scanf("%d%c",&a[i],&c1);
for(i=0;i<n;i++)
{
for(j=n-1;j>0;j--)
{
if(a[j]<a[j-1])
{
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
for(i=0;i<n-1;i++)
printf("%d,",a[i]);
printf("%d\n",a[n-1]);
return 0;
}

Ⅹ 数据挖掘 K-NN算法 这个题 过程对吗!!!帮忙下 谢谢

过程正确。不需要一定要和第一个比。
KNN算法[5]的基本思路是[6]:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的 K 篇文本,根据这 K 篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下:

一、:根据特征项集合重新描述训练文本向量
二、:在新文本到达后,根据特征词分词新文本,确定新文本的向量表示
三、:在训练文本集中选出与新文本最相似的 K 个文本,

热点内容
魅族微信多开安卓怎么弄 发布:2025-01-18 10:04:33 浏览:448
网络设置里没有服务器是什么 发布:2025-01-18 09:52:19 浏览:343
阿里云esc服务器系统 发布:2025-01-18 09:49:16 浏览:790
你们家的无线网密码是多少 发布:2025-01-18 09:47:50 浏览:730
renderscriptandroid 发布:2025-01-18 09:32:18 浏览:993
安卓手机如何拍游戏素材 发布:2025-01-18 09:30:59 浏览:348
广州日立压缩机有限公司 发布:2025-01-18 09:15:08 浏览:624
服务器两条宽带如何叠加网速 发布:2025-01-18 08:52:17 浏览:731
oracle存储过程集合 发布:2025-01-18 08:42:39 浏览:885
洋葱数学缓存 发布:2025-01-18 08:38:36 浏览:919