본문 바로가기

728x90
반응형

배우기

(265)
[복습] Python | 분석 | 이미지 인식 (1) + 하루끝(20240205) - 이미지 하나는 2차원, 이미지 집합은 3차원 - 이미지 집합을 이미지 형태 그대로 학습시키려면 3차원 학습이 가능해야 함 > 머신 러닝 불가 - 머신러닝으로 학습 시키려면, 머신러닝용 reshape > 이미지를 모두 1차원으로 평탄화 - (집합 기준) 3차원 학습이 가능한 신경망 모델을 적용해야 함 예제 - mnist 손글씨(숫자) 분류 1. 데이터 로딩 pip install tensorflow pip install keras 층, 행, 열 순서로, train_x의 경우 6만개의 이미지 set이 28X28 픽셀 사이즈로 존재한다는 의미이다. test_x의 경우 1만개의 이미지 set이 28X28 픽셀 사이즈로 존재한다. train_x의 첫 번째 손글씨 값이 5라는 것을 확인할 수 있다. 실제 RGB ..
[복습] Python | 분석 | 교차검증(CV, Cross Validation) 교차검증 개념: 모델의 일반화 오차에 대한 신뢰할 만한 추정치를 구하기 위해 훈련, 평가 데이터를 기반으로 하는 검증 기법 교차 검증 목적: 평가 점수의 일반화( = 오차의 일반화 규칙), 평가 점수의 신뢰도 향상 분석 모형에 따른 평가 지표 교차 검증 종류 - 홀드 아웃 교차 검증 - 다중 교차 검증 * 랜덤 서브 샘플링 * K-Fold Cross Validation * Leave-One_Out Cross Validation(LOOCV) * Leave-p-Out Cross Validation(LpOCV) * RLT(Repeated Learning-Testing) * 부트스트랩 다중 교차 검증 방식의 장점은 데이터 셋이 늘어난 다는 것이지만, 시간이 오래 걸린다는 단점이 있다. 홀드 아웃 교차 검증 - ..
[복습] Python | 분석 | knn(거리기반 모델) knn(k-nearest neighbors) - 거리기반 모델 - 스케일링에 민감 - 이상치에 매우 민감 - 선택된 변수의 조합에 영향을 많이 받음(선택된 변수의 조합 중요) - 수치형 변수 구성 시 가장 유리(명목형 변수는 knn과 어울리지 않음) - 게으른 학습 knn은 다른 모델들과는 다르게 fit 할 때 아무것도하지 않는다. 궁금한 대상이 등장하면 그 때 계산을 하기 시작한다. 즉 predict 할 때 궁금한 대상과 나머지 대상과의 거리를 계산하기 시작한다는 의미이다(kmeans와 헷갈리지 말 것). 10만건의 데이터가 있고 predict 데이터가 3000건이면 10만 곱하기 3000건의 거리가 계산된다. 따라서 fitting 할 때 부하가 크지 않고 predict 할 때 부하가 크다. 결론적으로..
[복습] Python | 분석 | 차원축소(PCA, MDS) (2) cancer.csv 파일을 읽고 적절한 인공변수 수를 파악하여라. 1. 데이터 로딩 2. 변수 스케일링 3. 차원축소(2, 3차원) 3) 시각화 3-1) 2차원 3-2) 3차원 4. 차원축소의 차원 수 결정 1) PCA 2) MDS kruskal stress 결과로 0.05 이하면 좋기 때문에 6 이상에는 큰 의미가 없을 것으로 보여진다. 그러나 30개의 변수 중 인공변수를 5개 선택하는 것이 너무 적다고 생각이 든다면 15로 올리는 것도 괜찮다. 사용자의 입장에서 해석 후에 인공변수를 선택하면 된다. 여기서는 5개의 인공변수를 선택하도록 하겠다. 5. 활용(유도된 인공변수로 모델링) STEP 1) 인공변수 유도 STEP 2) 분리 STEP 3) 모델링 STEP 4) 평가 차원축소는 변수를 탈락시키는 것..
[복습] Python | 분석 | 차원축소(PCA, MDS) (1) + 하루끝(20240202) 차원축소(변수 결합으로 새로운 인공변수를 유도하는 방식) 1. 정의: 기존 변수들의 선형 결합으로 고차원 데이터를 저차원 데이터로 매핑(평탄화) 2. 활용: 시각화, 변수 결합, 차원축소(단순한 모델로 만들기 위한 방법 중 하나) 종류 1. PCA - 기존 데이터가 가지고 있는 분산은 최대한 유지하면서 차원 축소 - 분산 설명력으로 차원에 대한 최종 결정(몇 차원으로 선정할 지 결정) 변수들에 가중치를 부여해서 결합하는 방식을 가중합(=선형결합)이라고 한다. C1 = a1X1 + a2X2 + a3X3 + a4X4 이 때 기존 변수의 선형결합으로 차원을 축소하는 방법은 비지도학습이다. 변수의 변형이기 때문이다. 이에 따라 변수 스케일링도 비지도 학습이다. y가 불필요한 변수변환 기법이기 때문이다. 그래서 ..
[복습] Python | 분석 | SVM(Support Vector Machine) (4) (암의 양성 여부 예측) cancer.csv 파일을 사용한 암의 양성 여부 예측 SVM은 변수 조합이 중요한 모형이다. 따라서 사전에 변수를 선택(feature selection)하여야 한다. 일변량 분석의 경우 Y와 X 하나와의 관계를 의미한다. cancer data에서 Y는 두 개 class를 갖고, X는 수치 자료인 경우 ttest를 수행하게 된다. 그런데 다변량분석의 경우, 다른 변수들이랑 같이 고려가 되어야 할 때 변수들의 중요도가 어떻게 될 지는 변수들끼리 경쟁을 해보아야 한다. 이번 분석에서는 다변량 분석을 수행하여보자. 변수 중요도는 DT를 수행하여 출력을 할 것이다. 1) 변수 중요도 기준 상위 10개 컬럼 확인(전체 데이터 셋 훈련 결과) 2) 위 변수들로 SVM 모델링 수행(스케일링 필요) STEP 1) 스케..
[복습] Python | 분석 | 스케일링(scaling) + 하루끝(20240201) SVM, KNN, KMEANS 등 모델은 스케일링에 민감하다. 또한 회귀 분석 시, 회귀계수를 비교해야 할 때에는 스케일링이 반드시 선행되어야 한다. 딥러닝의 경우는 전부 스케일링이 되어야 한다. 즉, 거리기반 모델(KNN, KMEANS), (회귀 자체는 문제가 없으나) 회귀 계수를 구할 시, SVM, 딥러닝 시 필수 1. standard scale - 음수 출력 - 평균은 0, 표준편차는 1 (표준화 작업) (X - X.mean()) / X.std() 2. min_max_scale - 0 ~ 1사이에 분포 (X - X.min()) / (X.max() - X.min()) 3. robust scale - 사분위수를 사용한 스케일링 (X - q2) / (q3 - q1) 예제) iris data set을 사용..
[복습] Python | 분석 | SVM(Support Vector Machine) (3) 연습문제 iris data set을 SVM 모형을 사용하여 분류 모형 설계하기 1. 데이터 로딩 2. 데이터 분리 3. 모델링(스케일링은 생략, 원래는 스케일링 해야 함) 4. 평가 5. 튜닝(C와 gamma 같이 튜닝) 위 표에서는 잘렸지만, score가 좋게 나오는 구간이 발생한다. 간단히 해석하자면, 고차원성을 강화하면 새로운 데이터는 걸러지지 않는 예측 불가능한 오버핏이 발생한다. 모델은 복잡해질수록 문제가 발생할 수밖에 없기 때문이다. C보다도 gamma 때문에 과대적합이 심하게 발생한다. 이를 시각화하여 보면 한눈에 확인이 가능하다. 튜닝 결과 시각화(히트맵) heatmap(values, # 값 xlabel, # x 이름 ylabel, # y 이름 xticklabels, # x눈금 ytickl..
[복습] Python 시각화(6) 파이차트(pie chart)와 히스토그램(histogram) pie chart plt.pie(x, # 각 파이 숫자 labels = labels, # 각 파이 이름 autopct = '%.1f%%', # 값의 표현 선택 startangle = 260, # 시작위치 radius = 0.8, # 파이 크기 counterclock = False, # 시계방향 진행 여부 explode = explode, # 증심에서 벗어나는 정도 설정(각각 서로 다른 숫자 전달 가능) colors = colors, # 컬러맵 전달 가능 shadow = False, # 그림자 설정 wedgeprops = wedgeprops) # 부채꼴 모양 설정 예) pie chart 그려보기 histogram - 수치형 자료들의 분포를 파악할 목적으로 시각화 - 정규성 검정 위의 코드 말고도 다음과 같..
[복습] Python 시각화(5) 막대그래프(bar plot) - 범주형 자료(의 수치값)에 대한 비교 시각화 df.plot(kind = 'bar') 예) kimchi_test.csv 파일을 읽고 막대그래프로 시각화 하여라. 교차표 생성 막대그래프 생성 movie_ex1.csv 파일을 읽고 영화 이용 현황에 대해 요일별로 성별에 대한 이용비율의 비교 시각화 STEP 1) 요일 구하기 STEP 2) wide data STEP 3) 막대그래프 그리기 그래프 배경색을 변경하고 싶다면, fit.set_facecolor('gray')

728x90
반응형