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

📄 linear.java

📁 aDABOOST This package contains the following files: learner.jar - is a platform independent java
💻 JAVA
字号:
package learner;

import java.util.Arrays;

public class Linear implements Classifier {

	public Data data;

	public double threshold;

	public double error;

	public int sign;

	Linear(Data data, boolean isdatasorted) {
		if (!isdatasorted)
			Arrays.sort(data.training);
		this.data = data;
		linear();
	}

	private void linear() {
		int i, j, sign;
		double threshold = 0, error;
		this.error = 1;
		for (i = 0; i < data.training.length; i++) {
			sign = 1;
			if (i == 0)
				threshold = data.training[i].data - 400;
			else
				threshold = ((data.training[i - 1].data + data.training[i].data) / 2) - 0.001;

			error = 0;

			for (j = 0; j < data.training.length; j++) {
				if (data.training[j].data < threshold
						&& data.training[j].label != -1.0) {
					error += data.training[j].weight;
				}
				if (data.training[j].data > threshold
						&& data.training[j].label != +1.0)
					error += data.training[j].weight;
			}
			if (1 - error < error) {
				error = 1 - error;
				sign = -1;
			}
			if (error < this.error) {
				this.threshold = threshold;
				this.sign = sign;
				this.error = error;

			}
		}
	}

	public int classify(double data) {

		if ((data > this.threshold && this.sign == +1)
				|| (data < this.threshold && this.sign == -1))
			return 1;
		else
			return -1;

	}

	public double test(Datastructure[] testdata) {
		int good = 0;
		for (int i = 0; i < testdata.length; i++)
			if (classify(testdata[i].data) == testdata[i].label)
				good++;
		return (good * 100.0) / testdata.length;
	}

	public double[] crossvalidate(int folds) {
		double average = 0;
		double[] results = new double[folds];
		for (int i = 0; i < folds; i++) {
			data.split(i, folds);
			results[i] = test(data.test);
		}
		average = average / folds;
		return results;
	}

	public double findparameter() {
		return 0.0;
	}

	public Data getdata() {
		return this.data;
	}

}

⌨️ 快捷键说明

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