⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 application.java

📁 java实现的支持向量机分类
💻 JAVA
字号:
import java.sql.Date;

import com.sun.jmx.snmp.Timestamp;

public class application {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		data dd = new data();
		if(!dd.readDataFromFile()){
			return;
		}
		
		CHSVM svm = new CHSVM();
		Kernal kernal = new Kernal();
		
		double[] Xaxis = dd.Xaxis;
		double[] Yaxis = dd.Yaxis;
		int[] XYClass = dd.XYClass;
		
		kernal.setArrays(Xaxis,Yaxis,XYClass);
		
		Date date = new Date(0);   
	    Timestamp begin = new   Timestamp(date.getTime());   
			
		////////////////////////////////////////////////////////////////train the SVM
		svm.Initialize(10000,100,0,kernal);
		while(svm.trainSVM(kernal))
		{
		}
		svm.CalBias(kernal);
		Timestamp middle = new   Timestamp(date.getTime());
		int len = 0;
		for(int i=0;i<10000;++i)
		{
			if(svm.getAlpha(i) != 0){
				System.out.print(svm.getAlpha(i) +"  ");
				len ++;
				if(len % 10 == 0)
				{
					System.out.println();
				}
			}
			
		}
		if(svm.IsStable()){
			System.out.println("unstable");
		}
		System.out.println("bias is :" + svm.getBias());
		System.out.println("Error Bound is :" + svm.CalError(kernal));
		
		if(!dd.readTest()){
			return;
		}
		
		/////////test set
		int[] calClass = new int[500];
		for(int i = 0; i < 500; i++){
			calClass[i] = kernal.CalClass(dd.Xtest[i], dd.Ytest[i], svm);
		}
		
		
		int right = 0;
		for(int i = 0; i < 500; i++){
			if(calClass[i] == dd.XYtest[i])
				right ++;
		}
		
		//////train set
		int[] testClass = new int[10000];
		for(int i = 0; i < 10000; i++){
			testClass[i] = kernal.CalClass(dd.Xaxis[i], dd.Yaxis[i], svm);
		}
		
		
		int right2 = 0;
		for(int i = 0; i < 10000; i++){
			if(testClass[i] == dd.XYClass[i])
				right2 ++;
		}
		
		
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////
		System.out.println("the test right rate is:" +(double)right / 500 * 100 + "%");
		System.out.println("the train right rate is:" +(double)right2 / 10000 * 100 + "%");
		
		Timestamp end = new   Timestamp(date.getTime());
		
		System.out.println("begin time is :" + begin.toString());
		System.out.println("train time is :" + middle.toString());
		System.out.println("end time is :" + end.toString());
		

	}
	
	////////////////////////////
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -