0

考虑这样的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)

predictioncsv是一个与文件本身元素数量相同的浮点数组。

四个问题:

  1. 为什么它是一个数组?
  2. 为什么漂浮?
  3. 为什么数组具有与输入相同数量的元素csv
  4. 这个数组到底代表什么?
4

1 回答 1

0

您发布的代码所做的是它在某些输入数据 ( regressorTrainingTable) 上训练机器学习模型(特别是线性回归模型),目标是能够基于关于长度、深度和直径(“独立”或“特征”值)。然后这个模型实际上是用来为存储在dataTable.

prediction组基于存储在dataTable. 希望这能回答问题 1、3 和 4。

至于第二个问题,它只与构建模型的线性回归方法如何在幕后工作有关。在构建(训练)模型时,它将所有输入(依赖和独立)值视为连续数字(即浮点数),即使它们在数据文件中表示为整数。

于 2019-01-29T22:19:43.713 回答