CoreML: почему предсказания являются массивом? - PullRequest
0 голосов
/ 28 января 2019

рассмотрим 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)

// print (dataTable)

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.

Четыре вопроса:

  1. Почему это массив?
  2. почему с плавающей точкой?
  3. почему массив имеет то же количество элементов, что и входные данные csv?
  4. что именно представляет этот массив?

1 Ответ

0 голосов
/ 30 января 2019

Код, который вы опубликовали, выполняет обучение модели машинного обучения (в частности, модели линейной регрессии) на некоторых входных данных (regressorTrainingTable) с целью прогнозирования некоторого значения веса («зависимого» или«целевое» значение) на основе длины, глубины и диаметра («независимые» или «характерные» значения).Затем эта модель фактически используется для вычисления значения веса для каждой строки данных (длины, глубины и диаметра), хранящихся в dataTable.

Так что prediction представляет собой набор прогнозов того, какое значение веса будетосновываться на значениях длины, глубины и диаметра для каждой строки, хранящейся в dataTable.Надеемся, что это отвечает на вопросы 1, 3 и 4.

Что касается второго вопроса, то он просто связан с тем, как линейный регрессионный подход к построению модели работает под капотом.При построении (обучении) модели она обрабатывает все входные (как зависимые, так и независимые) значения как непрерывные числовые (то есть с плавающей запятой), даже если они выражены как целые числа в файле данных.

...