## MLPClassifier
多層感知器(MLP)是一種前饋人工神經網絡模型,它將輸入數據集映射到一組適當的輸出上。
### 構造函數參數
`$inputLayerFeatures`(int) - 輸入圖層要素的數量
`$hiddenLayers`(array) - 具有隱藏層配置的數組,每個值表示每層中的神經元數
`$classes`(array) - 具有不同訓練集類的數組(忽略數組鍵)
`$iterations`(int) - 訓練迭代次數
`$learningRate`(float) - 學習率
`$activationFunction`(ActivationFunction) - 神經元激活功能
```
use Phpml\Classification\MLPClassifier;
$mlp = new MLPClassifier(4, [2], ['a', 'b', 'c']);
// 4 nodes in input layer, 2 nodes in first hidden layer and 3 possible labels.
```
*****
### 激活函數也可以與每個單獨的隱藏層一起傳遞。例:
```
use Phpml\NeuralNetwork\ActivationFunction\PReLU;
use Phpml\NeuralNetwork\ActivationFunction\Sigmoid;
$mlp = new MLPClassifier(4, [[2, new PReLU], [2, new Sigmoid]], ['a', 'b', 'c']);
```
它們也可以配置Layer對象,而不是將每個隱藏層配置為array。例:
```
use Phpml\NeuralNetwork\Layer;
use Phpml\NeuralNetwork\Node\Neuron;
$layer1 = new Layer(2, Neuron::class, new PReLU);
$layer2 = new Layer(2, Neuron::class, new Sigmoid);
$mlp = new MLPClassifier(4, [$layer1, $layer2], ['a', 'b', 'c']);
```
### 訓練
訓練MLP只需提供隊列樣本和標簽(如array)。例:
```
$mlp->train(
$samples = [[1, 0, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1], [0, 0, 0, 0]],
$targets = ['a', 'a', 'b', 'c']
);
```
### 使用partialTrain方法批量訓練。例:
```
$mlp->partialTrain(
$samples = [[1, 0, 0, 0], [0, 1, 1, 0]],
$targets = ['a', 'a']
);
$mlp->partialTrain(
$samples = [[1, 1, 1, 1], [0, 0, 0, 0]],
$targets = ['b', 'c']
);
```
*****
您可以更新partialTrain運行之間的學習率:
```
$mlp->setLearningRate(0.1);
```
### 預測
預測樣本標簽使用預測方法。您可以提供一個樣本或樣本數組:
### 激活功能
* BinaryStep
* Gaussian
* HyperbolicTangent
* Parametric Rectified Linear Unit
* Sigmoid (default)
* Thresholded Rectified Linear Unit
- 基本介紹
- 關聯規則學習
- 分類
- SVC
- k近鄰算法
- NaiveBayes
- 回歸
- 最小二乘法
- SVR
- 聚類
- k均值聚類算法
- DBSCAN聚類算法
- 公
- 準確性
- 混亂矩陣
- 分類報告
- 工作流程
- 神經網絡
- 交叉驗證
- 隨機拆分
- 分層隨機分裂
- 特征選擇
- 方差閾值
- 特征選擇
- 預處理
- 標準化
- 缺失值補全
- 特征提取(自然語言)
- 令牌計數矢量化器(文本處理)
- Tf-idf轉換
- 數據集
- ArrayDataset
- CsvDataset
- FilesDataset
- SvmDataset
- MnistDataset
- 準備使用數據集
- Iris Dataset
- Wine Dataset
- Glass Dataset
- 模型管理
- 數學
- 距離
- 矩陣
- 組
- 統計