목록판다스 (9)
Note
오늘 정리할 내용은 자격증 공부할 때 굉장히 나를 헷갈리게 했던 분류 성능 지표이다. ADsP나 빅데이터 분석기사에서도 출제된 문제이니만큼 자격증을 준비하시는 분들은 알아두면 좋을 지식이다. 오늘은 코딩보다는 개념을 정리하는 시간으로 하려고 한다. 1. 정확도(Accuracy) 정확도는 전체 예측 데이터에서 예측 결과를 맞춘 건수 비율이라고 말할 수 있다. 직관적으로 모델 예측 성능을 나타내는 평가 지표이지만, 이진 분류에서는 구성에 따라 모델의 성능을 왜곡할 수 있기 때문에 다른 지표도 고려해야 한다. 파이썬에서는 accuracy_score를 사용한다. 정확도의 맹점을 들어내는 경우의 예시를 들면 손글씨 분류이다. 0부터 9까지 모든 숫자를 써놓고 3이라는 숫자를 찾고 싶은데 모두가 3이 아니라고 하면..
1. 데이터 인코딩 (1) 레이블 인코딩(label encoding) 말 그대로 레이블을 인코딩해서 값을 변환해주는 것이다. 사이킷런을 통해서 라이브러리를 임포트한다. 리스트 안에 있는 사물들을 items라는 객체에 저장한다. encoder 객체를 생성해서 LabelEncoder에 저장한다. . fit을 수행해서 transform 전에 틀을 맞춰 주는 역할을 하고 transform을 통해 label 인코딩을 수행한다. classes_를 사용해서 인코딩의 실제 값을 알 수 있다. 또한 inverse_를 사용해서 원래대로 돌리는 디코딩을 나타낼 수 있다. (2) 원 - 핫 인코딩(One-Hot encoding) 원 - 핫 인코딩이란 ? 원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은..
1. K 폴드 필요한 라이브러리를 임포트하고 iris 데이터를 불러온 후에 데이터 형태를 확인한다. 데이터를 불러오고 확인하는 습관을 들이는 것이 좋다. 디시전트리 모델을 정의하고 객체를 생성한다. cv = cross validation이다. KFold를 사용하고 괄호 안에 있는 n_splits = 5 는 5개의 폴드 세트로 분리한다. 그다음 정확도를 담을 리스트 객체를 생성한다. for문이 도는 동안 KFold 객체의 split( )을 호출하면 폴드 별 학습용, 검증용 테스트의 row 인덱스를 array로 반환한다. 2. Staratified K 폴드 K-FOLD 교차검증의 문제점은 불균형한 데이터에는 적용이 안된다. 이를 해결할 방법으로 나온 것이 StaratifiedKFold 이다. 불균형한 분포도..
학습 데이터로 잘못된 예측 케이스 필요한 라이브러리를 임포트 하고 학습 데이터를 세팅한다. 디시전트리 객체를 생성하고 학습 데이터로 학습한 후 그 데이터를 기반으로 예측을 수행했다. 그 결과는 예측 정확도 100%이다. 그 이유는 학습한 데이터를 그대로 가지고 예측을 하기 때문에 정확도가 높을 수밖에 없다. 테스트 데이터로 실행하기 위해 데이터 준비를 하고 학습과 테스트 데이터를 분리한다. 모델 학습 한 후 테스트 데이터로 예측을 한 결과 95.56%가 나왔다. 이전보다 정확도가 떨어진 건 사실이지만 그래도 높은 정확도 수치이다. 위 코드와 같이 pandas를 통해서도 데이터 분할이 가능하다. 피처와 타겟을 정의하고 데이터를 나눈 모습이다. 머신러닝 모델을 정의하고 학습한 후 테스트 데이터로 예측한 결과..
사이킷런을 임포트하고 iris 데이터 예측을 위해서 필요한 모듈을 로딩한다. 데이터 처리를 위해서 판다스를 임포트하고 iris 내장 데이터를 불러와서 객체를 생성한다. iris.data를 사용해서 데이터 세트에서 feature만으로 된 데이터를 numpy로 가진다. iris.target은 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 있습니다. iris.data와 iris target은 처음 iris 데이터를 출력한 결과물을 보면 알 수 있습니다. 키는 보통 data, target, target_name, feature_names, DESCR로 구성돼 있습니다. 개별 키가 가리키는 의미는 다음과 같습니다. * data는 피처의 데이터 세트를 가리킵니다. * target은 분류 시 레이블 ..