【发布时间】:2019-06-21 11:26:18
【问题描述】:
考虑一个像这样的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相同? - 这个数组到底代表什么?
【问题讨论】:
-
对不起,那是我检查它上面的项目数量。我不应该在这里复制它。我已经修复了代码。
-
线性回归的主要目标不是绘制一条适合您的数据的线吗?你希望
prediction是什么? -
其实不是数组,而是数据值的同构集合,类似于数组(见docs)
-
这个数据是什么意思?
-
我远非该领域的专家,但在您的示例中,我希望预测是每一行的“重量”(原文如此)值(通过使用 3 个特征训练的模型:长度、深度和直径)。
标签: swift macos coreml createml