Madlib を使用して「機械学習」で KNN を学習する

Madlib を使用して「機械学習」で KNN を学習する

序文

機械学習(ML)は、教師あり学習、教師なし学習、半教師あり学習などに分けられます。

1.1 教師あり学習

教師あり学習は、ニューラル ネットワークと決定木をトレーニングするための一般的な手法です。これは、事前に決定された分類システムによって提供される情報に大きく依存します。ニューラル ネットワークの場合、分類システムは情報を使用してネットワークのエラーを判別し、ネットワーク パラメータを継続的に調整します。決定木を使用すると、分類システムは決定木を使用して、どの属性が最も多くの情報を提供するかを判断します。

与えられたトレーニング データ セットから関数が学習され、新しいデータが到着すると、この関数に基づいて結果を予測できます。

教師あり学習のトレーニング セットには、入力と出力、つまり特徴とターゲットが必要です。トレーニング セット内のターゲットは人間によってラベル付けされます。

一般的な教師あり学習アルゴリズム: 回帰分析と統計分類。最も一般的なアルゴリズムは KNN と SVM です。

最も一般的な教師あり学習は、回帰と分類です。

回帰: Y は実数ベクトルです。回帰問題は、コスト関数 L を最小化するために曲線 (x, y) を近似することです。

分類: Y は有限数であり、クラス ラベルと見なすことができます。分類問題では、まず分類器をトレーニングするためのラベル付きデータが必要なので、教師あり学習プロセスに属します。分類プロセスでは、コスト関数 l(X,Y) は、X がクラス Y に属する確率の負の対数です。

ここでfi(X)=P(Y=i/X)です。

教師あり学習法では、トレーニング セットとテスト サンプルが必要であり、トレーニング セット内のパターンを見つけて、そのパターンをテスト サンプルで使用する必要があります。

教師あり学習の方法は、物事を識別することです。識別の結果は、識別するデータにラベルを付けることです。そのため、トレーニング サンプル セットはラベル付けされたサンプルで構成されている必要があります。

1.2 名詞 KNN

k近傍法

指定されたデータ ポイントに最も近い k 個のデータ ポイントを検索し、分類の場合は出力クラスの多数決値を出力し、回帰の場合はターゲット値の平均を出力します。

袖をまくって

2.1 新しいものと新しいもの

このソフトウェアは、最新の postgresql 10.0 と最新の madlib 1.12 に基づいています。

操作を簡単にするために、Docker ベースの Ubuntu 16.04 を使用して madlib をインストールし、このイメージをどこにでも持ち運べるようにします。以下の操作は MAC で実行されます。

2.2 madlibのバージョンを確認する

  1. #madlib.version() を選択します。

2.3 トレーニングデータのインポート

  1. knn_train_data が存在する場合はテーブルを削除します。
  2. テーブルknn_train_dataを作成します(
  3. id 整数、
  4. データ整数[],
  5. ラベルフロート
  6. );

  1. knn_train_data に値を挿入
  2. (1, '{1,1}', 1.0),
  3. (2, '{2,2}', 1.0),
  4. (3, '{3,3}', 1.0),
  5. (4, '{4,4}', 1.0),
  6. (5, '{4,5}', 1.0),
  7. (6, '{20,50}', 0.0),
  8. (7, '{10,31}', 0.0),
  9. (8, '{81,13}', 0.0),
  10. (9、'{1,111}'、0.0);
  1. knn_train_dataから* を選択し、 id で ORDER BY します。

2.4 テストデータのインポート

  1. knn_test_data が存在する場合はテーブルを削除します。
  2. テーブルknn_test_dataを作成します(
  3. id 整数、
  4. データ整数[]
  5. );

  1. knn_test_data に値を挿入
  2. ( 1 , '{2,1}' ),
  3. ( 2 , '{2,6}' ),
  4. ( 3 '{15,40}' )、
  5. ( 4 , '{12,1}' ),
  6. ( 5 , '{2,90}' ),
  7. 6 '{50,45}' );
  1. knn_test_dataから* を選択し、 id で ORDER BY します。

2.5 分類トレーニング

  1. madlib.knnから*を選択します(
  2. 'knn_train_data' , -- トレーニングデータテーブル名
  3. 'data' 、 -- トレーニングデータが配置されている列
  4. 'label' 、 -- トレーニング ラベル
  5. 'knn_test_data' , -- テストデータテーブル名
  6. 'data' 、-- テストデータが配置されている列
  7. 'id' , -- テストデータ列名 id
  8. 'madlib_knn_result_classification' , -- 結果出力
  9. 'c' 、 -- カテゴリ
  10. 3 -- 最も近い隣接数
  11. );

2.6 分類出力結果の表示

  1. madlib_knn_result_classificationから* を選択し、 ID で ORDER BY します。

グラフィックの例:

2.7 回帰分析の実行

  1. madlib_knn_result_regression が存在する場合はテーブルを削除します。
  2. madlib.knnから*を選択します(
  3. 'knn_train_data' , -- トレーニングデータテーブル名
  4. 'data' 、 -- トレーニングデータが配置されている列
  5. 'label' 、 -- トレーニング ラベル
  6. 'knn_test_data' , -- テストデータテーブル名
  7. 'data' 、-- テストデータが配置されている列
  8. 'id' , -- テストデータ列名 id
  9. 'madlib_knn_result_regression' 、--結果出力
  10. 'r' , -- 戻る
  11. 3 -- 最も近い隣接数
  12. );

2.8 回帰出力結果の表示

  1. madlib_knn_result_regressionから* を選択し、 ID で ORDER BY します。

グラフィックの例:

まとめ

Postgresql は構造化データの便利な保存と処理を提供し、madlib は ML アルゴリズムのサポートを提供します。この 2 つの強力なチームは互いに補完し合っています。

【著者プロフィール】 DataHunter テクニカルディレクター、Sun Hui 。彼はソニーなどの有名企業でシステムアーキテクト、テクニカルディレクターなどの役職を務めてきました。Shangyou、Sony Ericsson Chinese Input Method、Kuaiya、mPushなどの有名製品の研究開発を担当しました。彼は IT テクノロジー業界で 15 年間の豊富な経験を持ち、製品開発のあらゆる側面に精通して管理しており、バックエンド、フロントエンド、運用と保守、DBA、テストの分野で豊富な経験を持っています。

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  畳み込みニューラルネットワークの簡単な説明

>>:  ブラックボックス問題が依然としてディープラーニングの普及を妨げている

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

初心者のためのデータ学習: Python でシンプルな教師あり学習アルゴリズムを実装する方法を学習します

[[220586]]編纂者:ウェンミン、ダ・ジェチョン、ティエンペイ最も広く使用されている機械学習手...

人工知能 (AI) ソリューションを購入または構築する際に尋ねるべき 5 つの重要な質問

人工知能などの新興テクノロジーには、マーケティング上の約束が実際の成果を上回らないようにすることと、...

人工知能は感情を認識するために使われている

感情認識技術は、人工知能を使用して人の表情から感情を検出する、数十億ドル規模の新興産業です。しかし、...

AIの最下層に突入! NUSのYou Yang氏のチームは拡散モデルを使用してニューラルネットワークパラメータを構築したとLeCun氏は称賛した。

拡散モデルは新たな大きな応用をもたらしました——ソラが動画を生成するのと同じように、ニューラルネット...

...

機械学習におけるこれらの中核的な問題は、数学を知らなくても解決できます。

機械学習や人工知能の分野で最も重要なトピックをわかりやすく説明するにはどうすればよいでしょうか?人工...

AI業界で働く人々はどうすれば失業を回避できるのでしょうか?

「人工知能によって人間が失業したわけではない。人工知能に携わる人々が先に失業したのだ」これはもとも...

AI はクラウド コンピューティングをどのように改善するのでしょうか?

今日、AI とクラウド コンピューティングを組み合わせることで、企業はデータを管理し、情報のパターン...

人工知能、機械学習、ディープラーニングの違いと関連性

最近では、新しいデータ処理技術に関して、さまざまな用語が飛び交っています。ある人は機械学習を使用して...

ガートナー:AIと自動化は次世代SASEの重要な機能となる

近年、セキュア アクセス サービス エッジ (SASE) テクノロジーは急速に発展し、産業界で広く使...

...

画像内の文字の教師なし学習

[[201526]]人間の行動に関する研究が最近、Nature の子会社である Nature Hum...

機械読解とは何ですか?これは自然言語処理とどのような関係があるのでしょうか?

[[324510]] 01 機械読解タスク2002 年に発表された論文で、学者の C. スノーは読...

人工知能は地球規模の気候危機に対処するために何ができるでしょうか?

インフレは世界的な問題であり、気候変動によって悪化しています。これは、異常気象の頻度と深刻度が増した...