事前に返信いただきありがとうございます。このフォーラムでの回答は、私の研究において非常に貴重なものでした。私は言語パラダイムに関する研究プロジェクトの目的で F# を学習している学生であり、単純な k-means アルゴリズムで遊ぶためにhttp://trelford.com/blog/post/specialk.aspxのすばらしい例を利用しようとしています。 . 修正方法がわからないというエラーが表示され、何らかのガイダンスを期待していました。多くの義務があり、コードとエラーは次のとおりです。行に欠落資格エラーが発生しています。`Petal Width
|]) 行
//コードはhttp://trelford.com/blog/post/specialk.aspxから
open System
open FSharp
type Iris = CsvProvider<irisDataFile>
let iris = Iris.Load(irisDataFile)
let irisData = iris.Data |> Seq.toArray
//
///// classifcations
let y = irisData |> Array.map (fun row -> row.Class)
/// feature vectors
let X = irisData |> Array.map (fun row ->
[|row.``Sepal Length``
row.``Sepal Width``
row.``Petal Length``
row.``Petal Width`|])
//Computing k-means centroids:
let K = 3 // The Iris dataset is known to only have 3 clusters
let seed =
[|X.[0]; X.[1]; X.[2]|] // pick bad centroids on purpose
let centroidResults =
KMeans.computeCentroids seed X |> Seq.take iterationLimit
(* K-Means Algorithm *)
/// Group all the vectors by the nearest center.
let classify centroids vectors =
vectors |> Array.groupBy (fun v -> centroids |> Array.minBy (distance v))
/// Repeatedly classify the vectors, starting with the seed centroids
let computeCentroids seed vectors =
seed |> Seq.iterate (fun centers -> classify centers vectors |> Array.map (snd >> average))