Boost 算法系列的起源来自于PAC Learnability(PAC 可学习性)。这套理论主要研究的是什么时候一个问题是可被学习的，当然也会探讨针对可学习的问题的具体的学习算法。这套理论是由Valiant提出来的，也因此（还有其他贡献哈）他获得了2010年的图灵奖。下面是他的照片：

PAC 定义了学习算法的强弱:

```import smile.classification.AdaBoost;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
* Created by zhanghuayan on 2017/1/17.
*/

public static void main(String[] args) throws Exception {

List<List<Double>> datas =
new ArrayList<List<Double>>();
List<Double> data = new ArrayList<Double>();
List<Integer> labels = new ArrayList<Integer>();

String line;
List<String> lines;
File file = new File("iris.txt");
lines = Arrays.asList(line.trim().split("\t"));
for (int i = 0; i < lines.size() - 1; i++) {
}

data = new ArrayList<Double>();

}

//转换label
int[] label = new int[labels.size()];
for (int i = 0; i < label.length; i++) {
label[i] = labels.get(i);
}

//转换属性
int rows = datas.size();
int cols = datas.get(0).size();
double[][] srcData = new double[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
srcData[i][j] = datas.get(i).get(j);
}
}

double right = 0;
for (int i = 0; i < srcData.length; i++) {
if (i % 10 == 0) System.out.println();
System.out.print(tag + " ");
if (tag == label[i]) {
right += 1;
}
}
right = right / srcData.length;
System.out.println("Accrurate: " + right * 100 + "%");
}
} ```

```0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2

Accrurate: 100.0%```

# 2. 参数解释

`AdaBoost adaBoost = new AdaBoost(srcData, label, 4, 8);`

`int tag = adaBoost.predict(srcData[i]);`

197 篇文章93 人订阅

0 条评论

## 相关文章

2012

8262

3636

3655

3564

2453

### NLP+2vec︱认识多种多样的2vec向量化模型

1、word2vec 耳熟能详的NLP向量化模型。 Paper: https://papers.nips.cc/paper/5021-distributed...

6327

951

3106

3814