考虑像这样的os.scandir()
文件:
dirs
和类似的代码
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
相同?答案 0 :(得分:0)
您发布的代码的作用是在某些输入数据(regressorTrainingTable
)上训练机器学习模型(特别是线性回归模型),目的是能够预测一些权重值(“或“目标”值)(基于“长度”,“深度”和“直径”(“独立”或“特征”值)。
然后,该模型实际上用于计算存储在dataTable
中的每一行数据(长度,深度和直径)的权重值。
因此prediction
是根据dataTable
中存储的每一行的长度,深度和直径值得出的权重值预测的集合。希望这能回答问题1、3和4。
对于第二个问题,它仅与线性回归方法在内部构建模型的方式有关。构建(训练)模型时,即使将所有输入(依赖和独立)值都视为连续数字(即浮点数),即使它们在数据文件中表示为整数也是如此。