实验目的
用势函数的概念来确定判别函数和划分类别界面。
理论基础
势函数法是非线性分类器中常用到的一种方法,它借用电场的概念,来解决模式分类问题。用势函数的概念来确定判别函数和划分类别界面。在势函数法中,把属于一类的样品看做正电荷,而属于另一类的样品看作负电荷,从而把模式的分类转变为正负电荷的转移,电位为0 的等位线即为判别界限。
基本思想:
假设要划分属于两种类别w1w1和w2w2的模式样本,这些样本可堪称是分布在nn维模式空间中的点xkxk。
把属于w1w1的点比拟维某种能源点,在点上,电位达到峰值。
随着与该点距离的增大,电位分布迅速减小,即把样本xkxk附近空间xx点上的电位分布,看成是一个势函数K(x,xk)K(x,xk)。
对于属于w1w1的样本集群,其附近空间会形成一个“高地”,这些样本所处的位置就是“山头”。
同理,用电位的几何分布来看待属于w2w2的模式样本,在其附近形成“凹地”。
只要在两类电位分布之间选择合适的等高线,就可以认为是模型分类的判别函数。
势函数与积累势函数
实验代码:
#include <iostream>
#include <math.h>
#define n 6
#define m 30
#define d 3
struct sample {
int x[d];
int cl;
};
struct func{
int symbol;
int index;
};
struct func ftbl[m];
int k,r=-1,tag=1,i,j;
float g=0,temp;
struct sample s[n]={
{1,2,5,1},
{3,3,6,1},
{5,6,10,2},
{7,6,11,2},
{8,7,12,2}
};
int main() {
while(tag==1){
tag=0;