목록PYTHON/데이터분석 (42)
도찐개찐
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import roc_curve from sklearn.metrics import roc_auc_score 로지스틱 회귀 주로 분류를 하기 위한 알고리즘 예0/아니오1 등의 이진분류에 많이 사용 의료,통신,데이터마이닝 분야의 회귀/분류를 위한 예측모델로 활용 ### 선형회귀의 함정 # 특정 곤충질량에 따라 암수구분하는 모델 생성 X = np.array([1.94,1.67,0.92,1.11,1.41,1.65,2.28,0.47,1.07,2.19,2.08,1.02,0.91,1.16,1.46,1.02,0.85,0..
ROC Receiver Operation Characteristic 수신자 판단 곡선 세계 2차 대전 통신 장비 성능 평가를 위해 고안된 수치 레이더 데이터를 분석하여 적 항공기와 신호 소음을 구별하는 데 사용 수신기의 감도가 증가함에 따라 거짓 긍정의 수(즉, 특이성)이 감소함 의학분야에 많이 사용되지만, 머신러닝의 이진 분류 모델 예측 성능 평가에도 사용 ROC곡선의 y축은 '민감도TPR'를, x축은 '1-재현율FPR'로 그림 FPR : FP/(TN+FP) : 아군항공기 소리를 적항공기 소리라고 오판한 비율 - 낮아야 함 TPR : TP/(TP+FN) : 적항공기 소리를 적항공기 소리라고 잘판단한 비율 - 높아야 함 FPR이 변할때 TPR이 어떻게 변하는지 알아봄 모델이 양성/긍정으로 예측했을때 얼마..
머신러닝의 모델평가 일반적으로 머신러닝은 데이터 가공/변환(전처리) 모델 학습/예측 평가의 과정을 거침 앞의 타이타닉 예제에서 모델의 평가는 정확도만 사용했음 한편, 머신러닝의 예측성능의 평가방법은 다양함 회귀 - R^2, MSE평균제곱오차 분류 - 혼동(오차)행렬, 크로스엔트로피, 최대우도, ROC, AUC, F1스코어 정확도의 함정 앞의 타이타닉 생존자 ML예제의 정확도는 평균 80%였음 그런데 정확도 지표만으로 ML 모델의 성능을 파악하기에는 다소 문제가 있음 - 왜곡의 위험 즉, 탐색적 분석을 시행했을때 성별을 기준으로 생존비율은 여성일 때가 더 높았음 따라서, 굳이 ML 알고리즘을 적용하지 않아도 성별이 여성일 경우 생존, 남성일 경우 사망이라고 예측해도 크게 무리 없음 단순히 성별 조건 하나만..
import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn 데이터전처리 머신러닝 알고리즘을 익히는 것 못치 않게 데이터 전처리 역시 중요한 과정 중에 하나 무엇보다 머신러닝 알고리즘을 적용하기 전에 데이터에 대해 미리 처리해야 하는 기본사항이 존재 결측치 처리 NaN, Null은 허용되지 않음 원핫인코딩 머신러닝 알고리즘들은 문자열값을 데이터의 입력값으로 허용하지 않음 따라서, 모든 문자열값은 인코딩해서 숫자형으로 변환해둬야 함 한편, 텍스트 데이터들은 벡터화해서 처리 머신러닝을 위한 인코딩은 레이블인코딩 과 원핫인코딩 등이 있음 레이블 인코딩 범주형값을 숫자형값으로 변환함 from sklearn.preproc..
머신러닝으로 타이타닉 생존자 예측하기 다양한 머신러닝 알고리즘을 이용해서 교차검증 방식으로 모델을 훈련시키고 예측 정확도를 통해 평가해 봄 import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import train_test_split from sklearn.model_selection import cross_val_score from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import Rando..
훈련과 테스트 데이터 머신러닝 모델을 만들기 위해서 데이터집합이 필요 과적합을 방지하기 위해 데이터를 훈련/테스트 데이터로 나누고 교차검증 방식으로 모델을 만들어 성능을 평가함 훈련데이터 : 모델 추정및 학습이 목적 테스트데이터 : 모델 성능 평가가 목적 분할 비율은 7:3 또는 8:2로 설정 import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn train/test 분할 없이 분석하는 경우 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accurac..
sklearn 파이썬 기반 쉽고 효율적인 머신러닝 라이브러리 제공 머신러닝을 위한 다양한 알고리즘 제공 데이터셋, 데이터전처리, 지도/비지도학습, 모델 선택/평가 등을 위한 모듈 제공 scikit-learn.org # !pip install scikit-learn import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn sklearn.__version__ '1.1.3' scikit-learn에서 제공하는 데이터셋 확인 load : 내장된 데이터셋 불러옴 fetch : 인터넷을 통해 내려받는 대량 데이터 make : 확률분포에 근거해서 생성하는 가상 데이터 from sklearn.datasets import l..
인공지능의 정의 인간의 지능을 기계로 구현하는 모든 형태 인공지능의 범위 인공지능 > 머신러닝 > 딥러닝 인공지능 구현방식 초기에는 지식전달방식으로 구현 개발자가 기계에게 일반적인 규칙을 알려줌 심한 변환의 양상에는 잘 대처하지 못함 기호주의(rule-based) 후기에는 데이터중심으로 구현 데이터를 중심으로 기계가 학습(규칙/패턴인식)한 뒤 새로운 데이터를 통해 예측/분류함 훈련을 위한 많은 양질의 데이터가 필요 연결주의(신경망이용) 머신러닝 컴퓨터가 경험을 통해 학습할수 있도록 프로그래밍하되 세세하게 프로그래밍 해야하는 번거로움에서 벗어나게 하는 것 머신러닝 알고리즘 지도학습 : 데이터와 레이블(정답)을 통해 훈련 수행 분류 : 범주형데이터, 이진분류, 다항분류 ex) 개,고양이 사진 분류, 스팸분류..