CoreML:为什么预测是一个数组?
CoreML: why is the predictions an array?
考虑这样的 csv
文件:
number,weigth,length,depth,diameter
1,100,202,314,455
2,1040,2062,3314,4585
3,1200,2502,3134,4557
4,1500,2052,3143,4655
...
和这样的代码
let csvFile = Bundle.main.url(forResource: "myData", withExtension: "csv")!
let dataTable = try! MLDataTable(contentsOf: csvFile)
// 打印(数据表)
let regressorColumns = ["weigth", "length", "depth", "diameter"]
let regressorTable = dataTable[regressorColumns]
let (regressorEvaluationTable, regressorTrainingTable) = regressorTable.randomSplit(by: 0.20, seed: 5)
let regressor = try! MLLinearRegressor(trainingData: regressorTrainingTable,
targetColumn: "weigth")
let prediction = try! regressor.predictions(from: dataTable)
print (prediction)
prediction
是一个浮点数组,其元素数量与 csv
文件本身相同。
四个问题:
- 为什么是数组?
- 为什么浮动?
- 为什么数组与输入的元素数量相同
csv
?
- 这个数组到底代表什么?
您发布的代码的作用是在某些输入数据 (regressorTrainingTable
) 上训练机器学习模型(特别是线性回归模型),目标是能够预测某些权重值(a "dependent" 或 "target" 值)基于长度、深度和直径("independent" 或 "feature" 值)。
那么这个模型实际上是为dataTable
.
中存储的每一行数据(长度,深度和直径)计算一个权重值
因此 prediction
是根据存储在 dataTable
中的每一行的长度、深度和直径值预测权重值的集合。希望这能回答问题 1、3 和 4。
至于第二个问题,它只与构建模型的线性回归方法在幕后如何工作有关。在构建(训练)模型时,它会将所有输入(依赖和独立)值视为连续数字(即浮点数),即使它们在数据文件中表示为整数。
考虑这样的 csv
文件:
number,weigth,length,depth,diameter
1,100,202,314,455
2,1040,2062,3314,4585
3,1200,2502,3134,4557
4,1500,2052,3143,4655
...
和这样的代码
let csvFile = Bundle.main.url(forResource: "myData", withExtension: "csv")!
let dataTable = try! MLDataTable(contentsOf: csvFile)
// 打印(数据表)
let regressorColumns = ["weigth", "length", "depth", "diameter"]
let regressorTable = dataTable[regressorColumns]
let (regressorEvaluationTable, regressorTrainingTable) = regressorTable.randomSplit(by: 0.20, seed: 5)
let regressor = try! MLLinearRegressor(trainingData: regressorTrainingTable,
targetColumn: "weigth")
let prediction = try! regressor.predictions(from: dataTable)
print (prediction)
prediction
是一个浮点数组,其元素数量与 csv
文件本身相同。
四个问题:
- 为什么是数组?
- 为什么浮动?
- 为什么数组与输入的元素数量相同
csv
? - 这个数组到底代表什么?
您发布的代码的作用是在某些输入数据 (regressorTrainingTable
) 上训练机器学习模型(特别是线性回归模型),目标是能够预测某些权重值(a "dependent" 或 "target" 值)基于长度、深度和直径("independent" 或 "feature" 值)。
那么这个模型实际上是为dataTable
.
因此 prediction
是根据存储在 dataTable
中的每一行的长度、深度和直径值预测权重值的集合。希望这能回答问题 1、3 和 4。
至于第二个问题,它只与构建模型的线性回归方法在幕后如何工作有关。在构建(训练)模型时,它会将所有输入(依赖和独立)值视为连续数字(即浮点数),即使它们在数据文件中表示为整数。