기계 학습에서 Find-S 알고리즘을 구현하는 방법은 무엇입니까?



이 기사는 기계 학습에서 찾기 알고리즘의 개념을 다룹니다. 사용 사례를 예로 들어 다양한 가설 용어를 중심으로 진행됩니다.

에 , 개념 학습은 ' 훈련 예제에 가장 잘 맞는 가설을 위해 미리 정의 된 잠재적 가설 공간을 검색하는 문제”– Tom Mitchell. 이 기사에서는 Find-S 알고리즘으로 알려진 이러한 개념 학습 알고리즘을 살펴 보겠습니다. 이 기사에서는 다음 주제에 대해 설명합니다.

머신 러닝에서 Find-S 알고리즘이란?

Find-S 알고리즘을 이해하려면 다음 개념에 대한 기본 개념도 있어야합니다.





  1. 개념 학습
  2. 일반 가설
  3. 특정 가설

1. 개념 학습

실제 사례를 통해 개념 학습을 이해해 봅시다. 대부분의 인간 학습은 과거 사례 또는 경험을 기반으로합니다. 예를 들어, 우리는 많은 기능 세트에 대해 정의 된 제조업체, 모델 등과 같은 특정 기능 세트를 기반으로 모든 유형의 차량을 식별 할 수 있습니다.



이러한 특수 기능은 대형 차량 세트와 자동차, 트럭 등을 구별합니다. 자동차, 트럭 등의 세트를 정의하는 이러한 기능을 개념이라고합니다.

자바에서 jframe은 무엇입니까

이와 유사하게 기계는 개념에서 학습하여 개체가 특정 카테고리에 속하는지 여부를 식별 할 수 있습니다. 어떤 개념 학습을 지원하려면 다음이 필요합니다.

  • 훈련 데이터
  • 목표 개념
  • 실제 데이터 개체

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 개의 속성과 긍정적 또는 부정적 예를 정의하는 최종 속성이 있습니다. 이 경우 예는 긍정적 인 예이며 그 사람은 산책하러 갈 것입니다.

이제 일반 가설은 다음과 같습니다.

h0= {‘아침’,‘맑음’,‘따뜻함’,‘예’,‘부드럽다’,‘힘들다’}

이것은 우리의 일반적인 가설이며, 이제 우리는 각 예를 하나씩 고려할 것이지만 긍정적 인 예만 고려할 것입니다.

h하나= {‘아침’,‘맑음’,‘?’,‘예’,‘?’,‘?’}

h2= {‘?’,‘맑음’,‘?’,‘예’,‘?’,‘?’}

일반 가설의 모든 다른 값을 대체하여 결과 가설을 얻었습니다. 이제 Find-S 알고리즘이 어떻게 작동하는지 알았으므로 다음을 사용하여 구현을 살펴 보겠습니다. 파이썬 .

사용 사례

위의 예를 사용하여 구현해 보겠습니다. . 위 데이터를 이용하여 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 알고리즘을 구현하기위한 #training 함수 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 return specific_hypothesis # 최종 가설 얻기 print ( 'n 최종 가설은 :', train (d, target))

산출:

이것으로 마하에서 Find-S 알고리즘을 배운이 기사의 끝으로 이동합니다.구현 및 사용 사례를 통한 학습. 이 튜토리얼에서 여러분과 공유 한 모든 내용이 명확하기를 바랍니다.

'기계 학습에서의 Find-S 알고리즘'관련 기사를 찾았다면 다음을 확인하십시오. 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사입니다.

우리는 당신의 여정의 모든 단계에서 당신을 돕고 싶어하는 학생과 전문가를 위해 설계된 커리큘럼을 마련하기 위해 여기 있습니다. . 이 과정은 Python 프로그래밍을 먼저 시작하고 다양한 Python 개념과 함께 핵심 및 고급 Python 개념을 교육하도록 설계되었습니다. 처럼 , 등

질문이 있으시면 '기계 학습의 Find-S 알고리즘'의 댓글 섹션에 모든 질문을 남겨 주시면 기꺼이 답변 해 드리겠습니다.