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)

// print(データテーブル)

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ファイル自体の要素と同じ数の float の配列です。

4 つの質問:

  1. なぜそれは配列ですか?
  2. なぜ浮く?
  3. 配列の要素数が入力と同じなのはなぜcsvですか?
  4. この配列は正確に何を表していますか?
4

1 に答える 1

0

投稿したコードが行うことは、いくつかの入力データ ( ) で機械学習モデル (具体的には線形回帰モデル) をトレーニングし、regressorTrainingTableいくつかの重み値 (「依存」または「ターゲット」値) ベースを予測できるようにすることです。長さ、深さ、直径 (「独立した」または「特徴」の値)。次に、このモデルを実際に使用して、 に格納されているデータ (長さ、深さ、直径) のすべての行の重量値を計算しdataTableます。

に格納されている各行predictionの長さ、深さ、および直径の値に基づいて、重み値がどうなるかの予測のコレクションも同様dataTableです。うまくいけば、これで質問 1、3、4 の答えが得られます。

2 番目の質問については、モデルを構築するための線形回帰アプローチが内部でどのように機能するかに関係しています。モデルを構築 (トレーニング) する場合、すべての入力 (従属と独立の両方) 値は、データファイルで整数として表現されている場合でも、連続した数値 (つまり、float) として扱われます。

于 2019-01-29T22:19:43.713 に答える