사과와 귤을 구분하는 간단한 기계 학습 알고리즘

(본고는 최초LiveEdu blog에 발표되었다.
머신러닝(ML)은 컴퓨터 과학의 한 분야로 응용 프로그램이 예시에서 자동으로 학습하고 경험에서 개선하는 능력을 부여하며 하드코딩 규칙에 의존하지 않는다.
기계 학습을 통해 컴퓨터는 숨겨진 견해를 식별하고 제공된 데이터 예시에 따라 정확하게 예측할 수 있으며 인공적인 개입이 가장 적다.
예를 들어 5년이 넘는 ML 경험을 가진 AndreyBu는 주식시장 데이터를 예측할 수 있는 모델을 만들었다.너는 그의 프로젝트here에서 구경하고 공부할 수 있다.
본고에서 우리는 애플과 오렌지색을 구분할 수 있는 간단한 기계 학습 알고리즘을 만드는 방법을 보여 줄 것이다.
만약 기계 학습이 없다면, 이러한 문제의 해결 방안을 찾으려면 몇 줄의 코드를 작성해야 할 수도 있고, 이것은 예상한 결과를 낳지 못할 수도 있다.ML은 이 과정을 간소화했다.
간단하게 말하면 우리는 기계 학습 알고리즘을 만들어 이 두 성과 간의 차이를 학습하고 예시를 제시한 후에 해당하는 예측을 할 수 있다.

시작합시다.


Python 릴리스를 시작하려면 Anaconda 를 사용합니다.이것은 우리가 알고리즘을 실현하는 데 사용할 기계 학습 라이브러리인 Scikit learn을 첨부했다.
이 예에서 우리는 감독 기계 학습 알고리즘을 사용할 것이다. 이 알고리즘은 이미 알고 있는 데이터 집합(훈련 데이터 집합이라고 부른다)을 이용하여 미래 사건을 예측할 것이다.
입력 데이터와 출력 값으로 구성된 훈련 데이터 집합은 제공된 예시에서 학습하고 경험을 이용하여 이 두 결과를 구분한다.
다음은 학습 방법을 감독하는 일반적인 절차입니다.
  • 훈련 데이터 수집
  • 훈련 분류기
  • 예측
  • 우리 각 절차를 토론합시다.

    1. 교육 데이터 수집


    훈련 데이터는 사과와 귤의 예로 우리는 그것들의 차이에 따라 분류할 것이다.
    다음 표에서는 이 두 가지 과일의 특징을 사용하여 구분합니다.

    위에서 보듯이 과일은 그것들의 무게와 재질에 따라 구분된다.
    각 줄의 마지막 열은 기계 학습의 라벨이다.이 경우 라벨은 주황색이나 사과일 수 있다.
    표의 모든 줄을 데이터 포인트라고 부른다.전체 표를 훈련 데이터라고 부른다.
    주의해야 할 것은 결과의 정확성은 훈련 데이터에 제공된 예시 수량에 달려 있다는 것이다.
    이제 테이블에 무슨 일이 일어났는지 표시하기 위해Python 코드를 사용합시다.
    우리는 두 가지 변수를 사용할 것이다. 특징 (앞의 두 열의 데이터) 과 라벨 (마지막 열의 데이터) 이다.
    다시 말하면 특징은 입력 데이터이고 라벨은 출력 값이다.
    코드는 다음과 같습니다.
    features = [[155, "rough"], [180, "rough"], [135, "smooth"], [110, "smooth"]] 
    labels = ["orange", "orange", "apple", "apple"]
    
    다음으로, Scikit learn은 디지털 특징을 필요로 하기 때문에, 우리는rough를 0, smooth를 1로 정의하고, 문자열을 정수로 변환합니다.
    귤과 사과에 대해 똑같은 일을 해서 각각 1과 0의 정수치를 주자.
    이것은 우리의 새 코드입니다.
    features = [[155, 0], [180, 0], [135, 1], [110, 1]]  
    labels = [1, 1, 0, 0]
    

    2. 분류기 훈련


    ML에서 분류는 일종의 감독 학습 기술로 알고리즘은 예시 데이터에서 배운 다음에 경험을 이용하여 새로운 관찰치를 분류한다.
    이제 우리는 새로운 관찰을 하고 분류하기 위해 예시 데이터를 사용할 것이다.몇 가지 유형의 분류기는 기계 학습 문제에 사용할 수 있다.
    이런 상황에서 간단함을 유지하기 위해 우리는 의사결정 트리를 사용할 것이다. 이것은 데이터 특징에서 유도된 의사결정 규칙을 이용하여 학습하고 적당한 예측을 할 수 있다.
    다음은 의사 결정 트리 분류기를 가져와 프로젝트에 추가하는 코드입니다.
    classifier = tree.DecisionTreeClassifier() 
    
    분류기를 우리의 프로젝트에 추가한 후에 우리는 학습 알고리즘을 사용하여 이를 훈련해야 한다.그렇지 않으면 사과와 귤을 구분할 수 없을 것이다.
    학습 알고리즘은 훈련 데이터의 모델을 식별하고 적당한 결론을 얻는다.
    예를 들어 그것은 사과의 무늬가 더욱 매끄럽다는 것을 인식할 수 있다.따라서 매끄러운 과일을 사과로 식별하는 경향이 있는 규칙을 제정할 것이다.
    Scikit learn에서 트레이닝 알고리즘을 Fit이라고 합니다.
    다음은 프로젝트에 추가할 코드입니다.
    classifier = classifier.fit(features, labels)  
    

    3. 예측


    분류기를 훈련한 후의 마지막 단계는 새 과일을 분류할 수 있는지 확인하는 것이다.우리는predict 함수를 사용하여 예측할 것이다.
    예를 들어 이 새 과일은 120그램의 무게로 매우 매끄럽다.우리는 매끄럽게 1을 표시할 것이라는 것을 명심하세요.
    그리고 무게가 그리 높지 않기 때문에 사과일 가능성이 높다 (0).
    이 밖에 매끄러움은 사과의 특징이다.
    우리의 ML 알고리즘이 이런 예측을 할 수 있는지 살펴보자.
    print (classifier.predict([[120, 1]]))
    
    얘가 작용했어!
    수출은 우리가 예상한 것이다. 0 (애플).

    끝내다


    다음은 이 항목의 모든 코드입니다.
    from sklearn import tree
     # Gathering training data
    # features = [[155, "rough"], [180, "rough"], [135, "smooth"], [110, "smooth"]]  # Input to classifier
    features = [[155, 0], [180, 0], [135, 1], [110, 1]]  # scikit-learn requires real-valued features
    # labels = ["orange", "orange", "apple", "apple"]  # output values
    labels = [1, 1, 0, 0]
     # Training classifier
    classifier = tree.DecisionTreeClassifier()  # using decision tree classifier
    classifier = classifier.fit(features, labels)  # Find patterns in data
     # Making predictions
    print (classifier.predict([[120, 1]]))
    # Output is 0 for apple
    
    기계로 프로그래밍하는 것은 결코 어렵지 않다.응용 프로그램에서 그것을 어떻게 사용하는지 파악하려면 중요한 개념을 알아야 합니다.
    따라서 기술을 향상시키기 위해 LiveEdu의 실제 프로젝트를 사용하여 전문가가 실제 세계를 바꾸는 기계 학습 응용 프로그램을 구축하는 방법을 배울 수 있습니다.
    기계 학습

    좋은 웹페이지 즐겨찾기