機械学習でFind-Sアルゴリズムを実装する方法は?



この記事では、機械学習におけるfind-sアルゴリズムの概念について説明します。ユースケースを例として使用して、さまざまな仮説用語を中心に展開します。

に 、概念学習は「 潜在的な仮説の事前定義された空間を検索して、トレーニングの例に最適な仮説を探す問題」– TomMitchell。 この記事では、Find-Sアルゴリズムと呼ばれるそのような概念学習アルゴリズムの1つについて説明します。この記事では、次のトピックについて説明します。

機械学習におけるFind-Sアルゴリズムとは何ですか?

Find-Sアルゴリズムを理解するには、次の概念の基本的な考え方も必要です。





  1. 概念学習
  2. 一般的な仮説
  3. 特定の仮説

1.概念学習

実際の例を使って概念学習を理解してみましょう。人間の学習のほとんどは、過去の事例や経験に基づいています。たとえば、メーカー、モデルなど、多数の機能セットに対して定義された特定の機能セットに基づいて、あらゆるタイプの車両を識別することができます。



これらの特別な機能は、車やトラックなどのセットをより大きな車両のセットと区別します。車やトラックなどのセットを定義するこれらの機能は、概念として知られています。

これと同様に、マシンは概念から学習して、オブジェクトが特定のカテゴリに属しているかどうかを識別することもできます。どれか 概念学習をサポートするには、次のものが必要です。

  • トレーニングデータ
  • ターゲットコンセプト
  • 実際のデータオブジェクト

2.一般的な仮説



一般に、仮説は何かの説明です。一般的な仮説は、基本的に主要な変数間の一般的な関係を示しています。たとえば、食品を注文するための一般的な仮説は次のようになります。 ハンバーガーが欲しいです。

G = {‘?’、 ‘?’、 ‘?’、….. ’?’}

3.特定の仮説

特定の仮説は、一般的な仮説で与えられた変数に関するすべての重要な詳細を埋めます。上記の例のより具体的な詳細は次のとおりです。 チキンペパロニにレタスがたっぷり入ったチーズバーガーが欲しいです。

S = {‘&Phi’、 ’&Phi'、 '&Phi'、……、 '&Phi'}

それでは、機械学習のFind-Sアルゴリズムについて説明しましょう。

Find-Sアルゴリズムは、以下の手順に従います。

  1. 「h」を最も具体的な仮説に初期化します。
  2. Find-Sアルゴリズムは、肯定的な例のみを考慮し、否定的な例を排除します。肯定的な例ごとに、アルゴリズムは例の各属性をチェックします。属性値が仮説値と同じである場合、アルゴリズムは変更なしで続行します。ただし、属性値が仮説値と異なる場合、アルゴリズムはそれを「?」に変更します。

Find-Sアルゴリズムの基本的な説明が終わったので、それがどのように機能するかを見てみましょう。

機械学習で過剰適合しているもの

それはどのように機能しますか?

機械学習におけるフローチャート検索アルゴリズム-edureka

  1. このプロセスは、最も具体的な仮説で「h」を初期化することから始まります。一般的に、これはデータセットの最初の肯定的な例です。
  2. それぞれの良い例をチェックします。例が否定的な場合は次の例に進みますが、肯定的な例の場合は次のステップで検討します。
  3. 例の各属性が仮説値と等しいかどうかを確認します。
  4. 値が一致する場合、変更は行われません。
  5. 値が一致しない場合、値は「?」に変更されます。
  6. これは、データセットの最後の肯定的な例に到達するまで行います。

Find-Sアルゴリズムの制限

以下にリストされているFind-Sアルゴリズムにはいくつかの制限があります。

  1. 仮説がデータ全体で一貫しているかどうかを判断する方法はありません。
  2. 一貫性のないトレーニングセットは、否定的な例を無視するため、実際にはFind-Sアルゴリズムを誤解させる可能性があります。
  3. Find-Sアルゴリズムは、結果の仮説を改善するために実行できる最善の変更を決定するためのバックトラッキング手法を提供しません。

Find-Sアルゴリズムの制限に気付いたので、Find-Sアルゴリズムの実際の実装を見てみましょう。

Find-Sアルゴリズムの実装

実装を理解するために、人が散歩に行きたいかどうかを決定するために、いくつかの例を含む小さなデータセットに実装してみましょう。

この特定の問題の概念は、人が散歩に行くのが好きな日です。

時間 天気 温度 会社 湿度 行く
サニー暖かいはい軽度強いはい
イブニング雨のコールド番号軽度正常番号
サニー中程度はい正常正常はい
イブニングサニーコールドはい高い強いはい

データセットを見ると、6つの属性と、正または負の例を定義する最後の属性があります。この場合、yesは前向きな例です。つまり、その人は散歩に出かけます。

したがって、現在、一般的な仮説は次のとおりです。

h0= {「朝」、「晴れ」、「暖かい」、「はい」、「穏やか」、「強い」}

これが私たちの一般的な仮説であり、ここでは各例を1つずつ検討しますが、肯定的な例のみを検討します。

h1= {「朝」、「晴れ」、「?」、「はい」、「?」、「?」}

h2= {‘?’、 ‘Sunny’、 ‘?’、 ‘Yes’、 ‘?’、 ‘?’}

結果として得られる仮説を得るために、一般的な仮説のすべての異なる値を置き換えました。 Find-Sアルゴリズムがどのように機能するかがわかったので、を使用して実装を見てみましょう。 Python

使用事例

上記の例を使用して実装してみましょう 。上記のデータを使用してFind-Sアルゴリズムを実装するためのコードを以下に示します。

import pandas as pd import numpy as np#csvファイルのデータを読み取るdata = pd.read_csv( 'data.csv')print(data、 'n')#すべての属性の配列を作成するd = np.array (data)[:、:-1] print( 'n属性は次のとおりです:'、d)#正と負の例を持つターゲットのセグメント化target = np.array(data)[:、-1] print( 'nターゲットは次のとおりです。 '、target)#find-sアルゴリズムを実装するトレーニング関数def train(c、t):for i、val in enumerate(t):if val ==' Yes​​ ':specific_hypothesis = c [i]。 copy()break for i、val in enumerate(c):if t [i] == 'Yes':for x in range(len(specific_hypothesis)):if val [x]!= Specific_hypothesis [x]:specific_hypothesis [ x] = '?' else:pass returnspecific_hypothesis#最終的な仮説を取得するprint( 'n最終的な仮説は次のとおりです:'、train(d、target))

出力:

これで、マッハでのFind-Sアルゴリズムを学習したこの記事の最後に到達します。ineLearningとその実装およびユースケース。このチュートリアルで共有されているすべてのことを明確に理解していただければ幸いです。

「機械学習におけるFind-Sアルゴリズム」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。

私たちはあなたの旅のすべてのステップであなたを助け、なりたい学生や専門家のために設計されたカリキュラムを考え出すためにここにいます 。このコースは、Pythonプログラミングをすぐに開始できるように設計されており、Pythonのコア概念と高度な概念の両方、およびさまざまな概念についてトレーニングします。 お気に入り 、 、など。

ご不明な点がございましたら、「機械学習のFind-Sアルゴリズム」のコメントセクションでお気軽にご質問ください。喜んでお答えいたします。