用データをscikit-leanのモジュールを使ってロードすることもでます。1.ランダムに3点を選び、これを仮の重心点としてクラスター1,クラスター2,クラスター3のラベルをつける(右図の赤点)。2.入力データの各点について重心点の中で最も近いものを選び、その番号をその点の所属クラスター番号とする。3.全ての点のクラスター番号が決まったら、それぞれのクラスターの重心点を求め、新たな重心点として更新する。4.重心点の更新が小さくなるまで(収束するまで)、ステップ2,3を繰り返す。図3.1:サンプルデータを生成するプログラム図3.3:k-means法のアルゴリズム図3.2:生成された分布の例26AI基礎予備知識機械学習には教師あり学習、教師なし学習、強化学習などがあります。教師あり学習は入力に対して答がわかっている場合の学習です。入力と答がペアになった訓練データを与えて、正しい答が得られるように学習を進めます。教師なし学習は入力データに対して正解が与えられていない場合の学習です。強化学習は予測に対して成功報酬を与えることで学習を勧めます。機械学習ライブラリ:Scikit-learn Python言語の機械学習ライブラリとしてScikit-learnが良く用いられます。https://scikit-learn.org/stable/index.html分類、回帰、クラスタリングなど、教師あり・なし学習に関する多数のアルゴリズムが用意されています。様々な学習サンプルデータ作成図3.1に sklearn.datasets モジュールの make_blobs 関数を用いて横軸、縦軸 -10から10の範囲にn_samples個の乱数の組を生成するプログラムを示します。 これらの点は centersで指定した個数のランダムな点から標準偏差1.0の位置に分布します。import numpy as npimport matplotlib.pyplot as pltimport sklearnfrom sklearn.cluster import KMeansfrom sklearn.datasets import make_blobsx,_= make_blobs(n_samples=100,centers=3,random_state=1)plt.scatter(x[:,0],x[:,1],color='black')plt.show()クラスタリングのアルゴリズム生成されたデータ点をクラスターに分類するひとつの方法に k-means 法があります。そのアルゴリズムを図3.3に示します。計算機を用いて多数のデータから学習することにより、データを分類したり、結果を予測したり、最適解を求めたりすることができるようになります。ここでは、データの分類を例にして、機械学習のアルゴリズムの例を紹介します。機械学習へのいざない機械学習へのいざない
元のページ ../index.html#26