功能介绍
多层感知机多分类模型
参数说明
名称 | 中文名称 | 描述 | 类型 | 是否必须? | 默认值 | |
---|---|---|---|---|---|---|
layers | 神经网络层大小 | 神经网络层大小 | int[] | ✓ | ||
blockSize | 数据分块大小,默认值64 | 数据分块大小,默认值64 | Integer | 64 | ||
initialWeights | 初始权重值 | 初始权重值 | DenseVector | null | ||
vectorCol | 向量列名 | 向量列对应的列名,默认值是null | String | null | ||
featureCols | 特征列名数组 | 特征列名数组,默认全选 | String[] | null | ||
labelCol | 标签列名 | 输入表中的标签列名 | String | ✓ | ||
maxIter | 最大迭代步数 | 最大迭代步数,默认为 100 | Integer | 100 | ||
epsilon | 收敛阈值 | 迭代方法的终止判断阈值,默认值为 1.0e-6 | Double | 1.0E-6 | ||
l1 | L1 正则化系数 | L1 正则化系数,默认为0。 | Double | 0.0 | ||
l2 | 正则化系数 | L2 正则化系数,默认为0。 | Double | 0.0 | ||
vectorCol | 向量列名 | 向量列对应的列名,默认值是null | String | null | ||
predictionCol | 预测结果列名 | 预测结果列名 | String | ✓ | ||
predictionDetailCol | 预测详细信息列名 | 预测详细信息列名 | String | |||
reservedCols | 算法保留列名 | 算法保留列 | String[] | null |
脚本示例
脚本代码
URL = "http://alink-dataset.cn-hangzhou.oss.aliyun-inc.com/csv/iris.csv"
SCHEMA_STR = "sepal_length double, sepal_width double, petal_length double, petal_width double, category string";
data = CsvSourceBatchOp().setFilePath(URL).setSchemaStr(SCHEMA_STR)
mlpc = MultilayerPerceptronClassifier() \
.setFeatureCols(["sepal_length", "sepal_width", "petal_length", "petal_width"]) \
.setLabelCol("category") \
.setLayers([4, 5, 3]) \
.setMaxIter(20) \
.setPredictionCol("pred_label") \
.setPredictionDetailCol("pred_detail")
mlpc.fit(data).transform(data).firstN(4).print()
脚本运行结果
sepal_length sepal_width ... pred_label pred_detail
0 5.1 3.5 ... Iris-setosa {"Iris-versicolor":4.847903295060146E-12,"Iris...
1 5.0 2.0 ... Iris-versicolor {"Iris-versicolor":0.5316800097281505,"Iris-vi...
2 5.1 3.7 ... Iris-setosa {"Iris-versicolor":9.36626517454266E-10,"Iris-...
3 6.4 2.8 ... Iris-virginica {"Iris-versicolor":0.19480380926794844,"Iris-v...