SIGNATE 연습문제(아날로그 이미지 분석)를 풀어봤어요.

배경.
  • 데이터 분석, 기계 학습 초보자
  • 저는 Kaggle의 Titanic 연습문제를 풀려고 노력했습니다
  • 이미지 인식이 자연 언어 처리보다 시간이 걸린다고 해서 해봤어요
  • 컨디션

  • Jupyter Notebook
  • Google Colab으로 이전

  • 파이썬 라이브러리
  • pandas
  • sklearn
  • numpy
  • 물줄기
  • 데이터 읽기, 확인
  • 클렌징(학습 데이터 및 테스트 데이터의 분류)
  • 분류기의 제작
  • 학습 데이터를 바탕으로 예측한 결과 정확성 확인
  • 테스트 데이터에 의한 예측
  • 결과 파일 제작, 제출
  • 데이터 읽기
  • 웹 사이트를 방문하여 데이터 라벨에서 아래 3개 파일을 다운로드
  • train.tsv
  • test.tsv
  • sample_submit.csv
  • Pytohon을 통해 라이브러리 import, 데이터 읽기
  • ayame_recognition.py
    import pandas as pd
    from sklearn.model_selection import train_test_split
    from sklearn import svm
    from sklearn.model_selection import cross_val_score
    from sklearn.metrics import accuracy_score
    import numpy as np
    
    
    Traindata=pd.read_csv("train.tsv",delimiter="\t")
    Testdata=pd.read_csv("test.tsv",delimiter="\t")
    
    
    형식 확인
  • SIGNATE 웹 사이트에서 형식 확인
  • 제목 및 데이터 유형 사전 파악
  • 이번 취지는 평가판 데이터의 목적 변수(Class)
  • 를 제시하는 것이다.
  • 상어 품종을 미리 파악하는 것은 3종
    image.png

  • 화장을 지우다
  • 클렌징(학습 데이터 및 테스트 데이터의 분류)
  • 설명 변수와 목적 변수를 각각 다른 변수
  • 에 대입한다
  • 여러 열의 값을 모두 꺼내서 대입
  • 학습 데이터의 설명 변수, 학습 데이터의 목적 변수, 테스트 데이터의 설명 변수를 분리
  • ayame_recognition.py
    X=Traindata.loc[:,['sepal length in cm','sepal width in cm','petal length in cm','petal width in cm']]
    Y=Traindata.loc[:,['class']]
    Xt=Testdata.loc[:,['sepal length in cm','sepal width in cm','petal length in cm','petal width in cm']]
    
  • 학습용 데이터는 학습용 데이터와 테스트용 데이터로 한층 더 분류(2성은 테스트 데이터)
  • ayame_recognition.py
    X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.2)
    
    분류기의 제작
     * sklearnから分類器を呼び出して、分類した学習用データを入れる
     * fit関数で機械学習する
    
    ayame_recognition.py
    clf = svm.SVC()
    clf.fit(X_train,y_train)
    
    학습한 데이터를 기준으로 예측 및 정확성 확인
  • 테스트 데이터를 분류기에 넣고sklearn의predit 함수로 예측
  • ayame_recognition.py
    y_pred = clf.predict(X_test)
    
  • 예측된 데이터와 실제 데이터(class를 넣은 ytest)를 정확하게 확인
  • ayame_recognition.py
    accuracy = accuracy_score(y_test,y_pred)
    print(accuracy*100,'%')
    
  • 100.0%가 나오면 예측이 맞다
  • 테스트 데이터를 기준으로 예측(시작)
    ayame_recognition.py
    X_pred = np.array(Xt)
    y_pred = clf.predict(X_pred)
    
    결과 파일 작성, 제출
  • 제목 없음
  • ayame_recognition.py
    Submit=Testdata.loc[:,['id']]
    Submit['result']=y_pred
    Submit.to_csv("submit.csv",header=False,index=False)
    

    좋은 웹페이지 즐겨찾기