모델은 문자 데이터를 인식하지 못하므로, 숫자 데이터로 바꿔주는 라벨링을 해야 한다. 레이블 인코딩 범주형 데이터를 숫자로 일대일 매핑해주는 인코딩 방식 https://www.kaggle.com/werooring/ch5-categorical-data-encoding from sklearn.preprocessing import LabelEncoder # 레이블 인코더 fruits = ['사과', '블루베리', '바나나', '귤', '블루베리', '바나나', '바나나', '사과'] # 레이블 인코더 생성 label_encoder = LabelEncoder() # 레이블 인코딩 적용 fruits_label_encoded = label_encoder.fit_transform(fruits) print('레이블 인..
오차 행렬, 로그 손실, ROC 곡선과 AUC. 오차 행렬 실제와 예측의 차이를 나타내는 행렬 TP(실제 양성 예측 양성) / +와+ FN(실제 양성 예측 음성) / +와 - FP(실제 음성 예측 양성) / -와 + TN(실제 음성 예측 음성) / -와- 정확도 실제 예측한 정확도. 즉, 전후가 같은 부호인지를 보면 된다. (TP+TN) /(TP+FN+FP+TN) 그러나 평가지표로 정확도를 사용하는 경우는 많지 않다. TN의 특수성 때문. 매일 비가 안온다고 예측해도 10일 1일꼴로 비가온다고 했을 때 정확도가 90%다. 우수성을 담보할 수 없다. 정밀도 precision = TP/(TP+FP) = 비가 실제로 온다고 예측 / (비가 실제로 온다 예측 + 예측했지만 비가 오지 않았다.) 정밀도는 음성을 ..
회귀와 분류 분류 - classification 어떤 대상을 정해진 범주에 구분해 넣는 작업. 두 개면 이진분류, 세 개 이상이면 다중분류. 회귀 - 변수가 다른 변수에 영향을 미칠 때 사용 영향을 미치는 변수를 독립변수 (independent variable) 영향을 받는 변수를 종속변수(dependent variable) 수면의 질과 공장의 재고 수준은 시험 성적, 건강에 영향을 미친다. 회귀는 독립변수와 종속변수간 관계를 모델링하는 방법. 회귀와 분류가 다른 점은 종속변수가 범주형 데이터가 아니라는 것. 회귀에서 종속변수는 수치형 데이터다. 종속변수는 예시로 Y = Ax+b 라 하는 함수로 나타내어진다. (x라는 독립변수들이 들어가면, Y라는 종속변수가 튀어나옴) 회귀 문제에서는 독립변수(피쳐)와 ..
https://www.kaggle.com/werooring/ch4-data-visualization-relational import seaborn as sns flights = sns.load_dataset('flights') # 비행기 탑승자 수 데이터 불러오기 flights.head() 관계도는 데이터 사이 관계 표시 히트맵 데이터 간 관계를 색상으로 표현한 그래프 -> 데이터가 많으면 난잡해지므로 그때 쓴다. 여기부터 범주형 데이터와 수치형 데이터가 같이 있다면 어떤게 범주형이고 수치형인지 구분하는 능력이 필요하다는 걸 느꼈다. 그렇기에 관계도가 필요한 것. 히트맵을 그리려면 데이터 구조의 변환이 필요하다. pandas의 pivot() 함수 활용. pivot은 index와 columns에 전달한 변..
기본적으로 타이타닉 데이터셋 import seaborn as sns titanic = sns.load_dataset('titanic') # 타이타닉 데이터 불러오기 범주형의 데이터 시각화 막대 그래프, 포인트 플롯, 박스 플롯, 바이오린플롯, 카운트 플롯이 차례대로 있다. sns.barplot(x='class', y='fare', data=titanic); #x는 클래스로 잡고, y는 fare 잡았다. #앞선 숫자형 플롯들과 다른 점은, 뒤쪽에 데이터가 붙는다는 것. 막대 상단의 검은색 세로줄이 오차 막대. 개인적으로 주식 캔들바랑 비슷해서 훨씬 익숙하다. 포인트 플롯 막대 그래프와 모양만 다를 뿐 동일한 정보. 다만 막대가 사라지고 각 꼭대기 부분을 선으로 연결 sns.pointplot(x='class..
데이터 종류 대분류 수치형 데이터 - 사칙 연산이 가능 범주형 데이터 - 범주로 나누어지는 데이터 이 중에서도 각각 연속, 이산과 순서, 명목으로 나뉜다. 수치형(연속) - 키, 몸무게 수입 수치형(이산) - 과일 개수, 책의 페이지 수 범주형(순서) - 학점, 순위(랭킹) 범주형(명목(간단하게 생각해보면 이름)) - 성별, 음식 종류, 우편 번호 이산형은 정수로 딱 떨어져 셀 수 있는 것. 범주형에서 순서형은 순위가 정해져 있다. 그에 반해 명목형은 순위가 따로 없는 데이터다. 수치형 데이터 시각화 import seaborn as sns titanic = sns.load_dataset('titanic') # 타이타닉 데이터 불러오기 titanic.head() #씨본을 사용하면 데이터가 더 정갈하다 ti..