java实现感知机算法
时间: 2023-11-25 16:48:30 浏览: 70
感知机算法是一种二分类的线性分类模型,它的目标是找到一个超平面将数据集分成两类。Java实现感知机算法的步骤如下:
1. 初始化权重向量w和偏置b。
2. 随机选取一个样本点,计算它的预测值y。
3. 如果y与真实值不一致,则更新权重向量w和偏置b。
4. 重复步骤2和3,直到所有样本点都被正确分类或达到最大迭代次数。
下面是Java实现感知机算法的代码示例:
```
public class Perceptron {
private double[] w; // 权重向量
private double b; // 偏置
private double learningRate; // 学习率
public Perceptron(int n, double learningRate) {
w = new double[n];
this.learningRate = learningRate;
}
public int predict(double[] x) {
double result = 0;
for (int i = 0; i < w.length; i++) {
result += w[i] * x[i];
}
result += b;
return result > 0 ? 1 : -1;
}
public void train(double[][] x, int[] y, int maxIter) {
int iter = 0;
while (iter < maxIter) {
boolean flag = true;
for (int i = 0; i < x.length; i++) {
int pred = predict(x[i]);
if (pred != y[i]) {
for (int j = 0; j < w.length; j++) {
w[j] += learningRate * y[i] * x[i][j];
}
b += learningRate * y[i];
flag = false;
}
}
if (flag) {
break;
}
iter++;
}
}
}
```
阅读全文