2019. 11. 3. 21:11ㆍ프로그래밍
우리는 엑셀에서 데이터를 작성 후 CSV 확장자로 저장 할 것 입니다.
CSV 파일의 형태는 a, b, 2, 3 이런식으로 쉼표로 구분합니다.
우리는 이 CSV 확장자를 가진 파일을 Scikit-learn에서 지도학습에 필요한 Numpy형식의 배열로 파이썬의 pandas 라이브러리를 통해 코드를 작성하겠다.
Scikit Learn 데이터 학습을 위해 엑셀 파일 작성
맨 윗줄에는 아래 행렬의 데이터가 무슨 데이터인지 표시하자 이것은 한 레이블의 특성이 되겠다.
1열은 특성 이름들, 2열 부터가 한 묶음의 데이터가 되겠다. (A, 2)는 feature1의 값이고, (B, 2)는 feature2의 값이다.
파일 -> 다른 이름으로 저장 -> 파일 형식 -> CSV UTF-8(쉼표로 분리) 선택 후 저장 시켜준다.
csv 데이터를 sklearn 학습을 위해 numpy 배열로 변환 시켜주는 함수 작성
import pandas as pd
def sklearn_csv_to_data(csv_file):
df = pd.read_csv(input_file, header = 0)
feature_names = list(df.columns.values)
data = df.values
return feature_names, data
이 함수를 붙여넣기 해 준후 함수를 호출할때 매개변수로 아까 만들었던 csv 파일의 위치를 적어주면 되겠다.
ex) D:\ML\my_data.csv 혹은 같은 폴더 일 경우, my_data.csv도 가능하다.
이 함수는 차례대로 특성 이름과 특성에 다른 numpy 데이터를 리턴한다.
이제 타겟과 타겟 이름을 만들겠다. 타겟은 'target1'과 'target2'로 나누고, 데이터의 길이가 총 2개니 한개는 0, 한개는 1로 해서 반반 다르게 두겠다. 그러면 target변수에는 [0, 1], target_names에는 'target1', 'target2'겠다. 그래서 target_names[target[0]] 하면 'target1'이 나오도록 설계했다.
target = np.empty(data.shape[0], dtype=int)
target.fill(1)
target_names = np.array(['target1', 'target2'])
np.put(target,np.arange(round(target.shape[0]/2)-1).shape[0], 0)
타겟이 2개밖에 없으니 2개에 맞게 작성했다. 앵간하면 이 코드를 쓰지말고 직접 만들어서 쓰자.
이제 모든 값들이 준비가 되었다. 한번 출력을 해보면 아래와 같다.
print("features : {}".format(feature_names))
print("data : \n{}".format(data))
print("target : {}".format(target))
print("target_names : {}".format(target_names))
전체사진으로 마무리
끝
'프로그래밍' 카테고리의 다른 글
OpenGL과 GLFW 새 창 열기 튜토리얼 (0) | 2020.08.10 |
---|---|
[Node.Js] HTTPS 인증하고, 서버 운영하기 (0) | 2020.01.10 |
쉽게 시작하는 [SCIKIT LEARN] / 붓꽃 품종 분류하기 (0) | 2019.11.02 |
[RUST] Owner 소유권에 관하여 (0) | 2019.10.27 |
C++ 레이싱 GUI 게임 만들기 (0) | 2019.10.06 |