일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- session 유지
- 유튜브 API
- integrated gradient
- login crawling
- API Gateway
- youtube data
- spark udf
- subdag
- grad-cam
- XAI
- BigQuery
- GCP
- Airflow
- requests
- hadoop
- flask
- airflow subdag
- top_k
- TensorFlow
- UDF
- gather_nd
- 공분산
- Retry
- Counterfactual Explanations
- GenericGBQException
- correlation
- tensorflow text
- 상관관계
- API
- chatGPT
- Today
- Total
목록Statistical Learning (57)
데이터과학 삼학년

1. SMOTE (Synthetic Minority Over-sampling Technique)개념SMOTE는 소수 클래스(minority class)의 데이터를 합성하여 새로운 데이터를 생성하는 방식의 오버샘플링 기법입니다. 단순히 데이터를 복제하는 것이 아니라, K-최근접 이웃(K-NN) 기반으로 새로운 데이터를 생성하여 데이터의 다양성을 증가시킵니다.알고리즘소수 클래스의 데이터 샘플을 선택합니다.선택된 샘플의 K-최근접 이웃을 찾습니다.이웃 중 하나를 랜덤하게 선택하여 기존 데이터와의 차이를 계산합니다.이 차이에 랜덤한 값을 곱하고 기존 데이터에 더하여 새로운 데이터를 생성합니다.장점기존 데이터를 단순 복제하는 것이 아니라, 새로운 데이터를 생성하여 모델의 일반화 성능을 향상시킴.다양한 데이터 분포..

1. 네거티브 샘플링의 개념대규모 데이터 학습에서 연산량을 줄이고 효율성을 높이는 기법.모든 데이터를 사용하지 않고 일부만 선택해 학습.주요 활용 분야: 자연어 처리(NLP), 딥러닝.대표 사례: Word2Vec. 2. 네거티브 샘플링의 작동 원리Skip-gram 모델중심 단어(center word)에서 주변 단어(context word)를 예측.예: "고양이가 책상 위에 있다" 문장에서 중심 단어 "고양이"를 기준으로 "책상", "위에" 등을 예측.문제점어휘 크기가 10만 개라면, 중심 단어마다 10만 개의 확률 분포를 계산해야 함.엄청난 연산량을 요구.해결: 네거티브 샘플링 도입긍정 샘플(positive sample): 중심 단어와 실제 관련 있는 단어.네거티브 샘플(negative sample): ..
교차표와 카이제곱 검정: 독립성 테스트1. 교차표란?교차표(Cross Tabulation): 두 변수 간의 관계를 2차원 행렬로 나타내는 방법두 변수의 각 범주에 대한 빈도를 표시Excel의 피벗 테이블과 유사하게 데이터를 시각화주요 장점: 데이터 분포를 쉽게 이해 가능2. 카이제곱 검정이란?카이제곱 검정(χ² Test): 두 변수 간의 관계가 통계적으로 유의미한지 평가하는 방법목적: 관찰된 데이터가 우연인지, 아니면 두 변수 간에 실제로 의미 있는 관계가 있는지를 판단3. 예시질문: "마지막 접촉 채널과 디바이스 유형 간에 관계가 있는가?"방법: 교차표를 통해 두 변수의 분포 확인 후 카이제곱 검정 수행4. 카이제곱 검정 수행 절차관찰 데이터(Observed Data) 준비: 두 변수의 실제 데이터를 ..

카파 통계량 카파(Kappa) 통계량은 두 명 이상의 평가자(inter-rater) 간의 일치 정도를 측정하는 통계량 주로 분류 작업에서 사용되며, 각 평가자가 관측한 결과에 대한 일치 정도를 평가 특히, 다수의 평가자가 주어진 문제에서 얼마나 일치하는지를 확인하는 데에 유용 >> 모델의 평가에서 불균형이 심한 데이터에 대한 평가에 활용하면 좋다!! - Kappa 통계량은 -1에서 1 사이의 값을 가짐 - 1에 가까울수록 모델의 예측이 완벽에 가깝다고 해석 - 0에 가까울수록 모델의 예측이 무작위 예측과 유사 카파 통계량의 정의 $$ [ \kappa = \frac{P_o - P_e}{1 - P_e} ] $$ 여기서,$ (P_o) $는 실제 관측된 일치도(Observered Agreement)$ (P_e)..
범주형 변수 - 연속형변수 간 상관관계 평균 비교 그래프 (Box Plot 또는 Violin Plot) - 연속형 변수를 범주형 변수의 각 수준에 따라 상자 그림 또는 바이올린 그림으로 그릴 수 있음 - 이러한 그래프는 범주형 변수의 각 수준에서 연속형 변수의 분포와 중앙값을 시각적으로 비교 import seaborn as sns import matplotlib.pyplot as plt # 범주형 변수 category = np.array(['A', 'B', 'A', 'B', 'A']) # 연속형 변수 continuous = np.array([10, 15, 12, 18, 8]) # Box Plot 또는 Violin Plot 그리기 sns.boxplot(x=category, y=continuous) plt...

Data imbalanced 데이터 불균형 문제에서 Oversampling을 많이들 사용한다. 카테고리컬 변수를 ovesampling할 수 있는 방법은 없을까?! 있다...!!!! SMOTENC (numeric and categorical)!!! >> SMOTE-NC for dataset containing numerical and categorical features. 단, categorical feature만 가진 데이터에는 사용할 수 없다 -> 다른 numeric variable의 값을 이용해 categorical variable을 증식시키는 알고리즘이기 때문!!!! SMOTENC - SMOTE"는 Synthetic Minority Over-sampling Technique의 약자이며, - "NC"..
스무딩(smoothing)은 데이터의 노이즈를 완화하거나 데이터의 경향성을 부드럽게 만들기 위해 사용되는 중요한 기법 데이터 과학에서 주로 사용되는 세 가지 스무딩 기법인 이동평균, 커널 밀도 추정, 그리고 로우 통계에 사용 스무딩(smoothing) 기법 이동평균 (Moving Average) 이동평균은 시계열 데이터의 노이즈를 완화하고 데이터의 경향성을 부드럽게 만들기 위해 사용되는 기법입니다. 이동평균은 연속된 일정한 길이의 구간을 선택하고 해당 구간 내 데이터 포인트의 평균값을 계산하는 방식으로 동작합니다. 이를 통해 데이터의 불규칙한 변동을 완화하고 전반적인 추세를 뚜렷하게 보여줄 수 있습니다. 커널 밀도 추정 (Kernel Density Estimation) : 커널 밀도 추정은 데이터의 분..

샘플링을 하다 보면 단순한 랜덤샘플링이 아니라 label별로 일정한 비율로 샘플링하기를 원할때가 있다. 이를 층화샘플링이라고 하는데, pandas dataframe에서 이것을 하는 방법이 있다...(label 컬럼으로 groupby를 하는 것!!!) 랜덤 샘플링 random_sample = df.sample(frac=0.20) ) random_sample.head() 층화 샘플링 - label별 20%로씩 샘플링 stratified_sample = df.groupby('').apply( lambda x: x.sample(frac=0.20) ) stratified_sample.head()