🌞 Statistics for AI

텐서플로우를 통한 선형회귀 예제입니다. 사실 처음 해볼때 이럴꺼면 사이킷런을 쓰는게..? 라는 생각을 했는데, 좀더 복잡하고 큰 데이터를 다루거나 복잡한 모형을 다룰 때 굉장히 효율적일거라는 생각이 들더군요. 좋은 경험이었습니다. 먼저 데이터를 생성해주고 단순선형회귀 식의 Weight와 bias를 설정해줍니다.# datax_train = [1,2,3]y_train = [1,2,3]# random_normal은 우리가 아직 W, b를 모르기 때문에 rank가 1인 값을 랜덤하게 넣어주는 것.W = tf.Variable(tf.random.normal([1]), name = 'weight')b = tf.Variable(tf.random.normal([1]), name = 'bias') 여기서 Variable는..
Tensorflow 텐서플로우는 Google Brain 팀에서 개발한 오픈 소스 프레임워크입니다. 복잡한 데이터 흐름 그래프(Data Flow Graph)를 기반으로 딥러닝 모델을 구축하고 훈련할 수 있도록 하는 프레임워크로 다양한 기계 학습 작업을 지원하고 여러 분야에서 사용되고 있습니다. 아마 딥러닝을 하지 않더라도 머신러닝에 관심이 있는 분이라면 한번쯤 들어보셨을 것 같습니다. 저도 계속해서 듣기만했지 처음으로 써보려고 합니다. TensorFlow 설치pip install --upgrade tensorflow# 버전 확인import tensorflow as tftf.__version__  개념 1. 텐서(Tensor) : 텐서플로우에서 데이터를 나타내는 기본 단위라고 볼 수 있습니다. 다차원 배열로..
https://brilliant.org/wiki/gaussian-mixture-model/https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95  📌 가우시안 혼합 모델 가우시안 혼합 모델은 전체 모수 내에서 정규 분포를 따르는 하위 집단들을 나타내기 위한 확률 모델입니다.일종의 비지도 학습의 한 형태로 모델이 자동으로 하위 집단을 분류해내도록 하는 알고리즘입니다. 예를 들어, 사람의 키 데이터를 모델링 할 때, 남성은 평균 키가 약 175, 여성은 평균 키가 약 165라고 가정해봅시다. 만약 우리에게 데이터가 있고, 해당 데이터가 성별 할당 없이 단지 키 데이터만 주어졌다면? 이 모든 키의 분포는 남성과 여성의 두 정규..
부스팅 알고리즘에 대해 공부하시는 분들이라면 CATBoost를 들어보셨을 것 같습니다. CATBoost를 Yandex라는 러시아 검색 엔진 인터넷 기업에서 개발한 그래디언트 부스팅 라이브러리입니다. 범주형 데이터를 다루는데 최적화 되어 있으며, XGBoost와 함께 여러 분야에서 사용하는 모델입니다. 📌 기존 부스팅과의 차이점(Ordered Boosting) 먼저, CATBoost는 Ordered Boosting(순서 부스팅)이라는 기법을 사용하여 데이터의 순서에 따라 모델을 학습시킵니다. 기존의 부스팅 모델들을 모든 훈련 데이터를 대상으로 잔차를 계산하여 트리를 적합해 나간다. CATBoost의 경우 학습 데이터의 일부만을 사용하여 잔차를 계산한 뒤, 해당 결과를 통해 모델을 만들어나간다. 이때 ord..
📌 활성화 함수(Activation Functions)?? 머신 러닝과 딥러닝에서, 특히 딥러닝에서 활성화 함수는 신경망의 핵심 요소 중 하나로, 모델이 복잡한 문제를 해결할 수 있도록 합니다. 활성화 함수는 신경망의 각 뉴런에 들어오는 입력 신호의 총합을 출력 신호로 변환하는데 사용합니다. 이러한 함수들은 비선형 함수로 머신러닝의 트리 기반 모델에서 분류를 한 후 나오는 출력값을 확률로 변환하는데에도 사용됩니다. 크게 시그모이드 함수(Sigmoid function), 소프트맥스 함수(Softmax functions), ReLU 함수(Rectified Linear Unit functions), Leakly ReLU를 알아보겠습니다. 이 외에도 많은 활성화 함수가 있으며 분석에 있어서 데이터의 특징이나 분..
우리가 예측을 할 때, 예측력이 높은 것도 중요하지만 주제와 목적에 따라 모델의 내부 메커니즘을 이해하는 것도 중요할 수 있습니다. 모델이 어떻게 특정 변수에 의존하는지, 즉 특정 input과 output간의 관계가 어떻게 이루어져 있는지 이해하는 것이 모델을 해석하는 데 중요할 수 있가다는 것입니다. 이러한 맥락에서 부분 의존성 플롯(PD)와 개별 조건부 평균 플롯(ICE)은 중요한 역할을 할 수 있습니다. 부분 의존성 플롯(PD)는 데이터 세트 내의 하나 또는 두 개의 특성과 예측 결과 사이의 관계를 시각화 합니다. 특정 특성의 다양한 값들이 예측 결과에 어떻게 영향을 미치는지 보여줌으로써, 모델이 특성을 어떻게 해석하는지에 대한 통찰력을 제공합니다. 반면, 개별 조건부 평균 플롯(ICE)는 각 관측..
자주 보이는 성능 지표는 아니지만 분류 목적에 있어서 가끔 사용되는 plot중 하나로 calibration plot이 있다. Calibration plot(캘리브레이션 플롯)은 머신러닝 모델의 예측 정확도와 신뢰도를 시각적으로 평가하는데 사용되는 도구이다. 모델이 예측한 확률과 실제 결과 간의 일치 정도를 평가함으로써, 모델의 성능을 직관적으로 이해할 수 있게 해준다. 특히, 분류 문제에서 모델의 예측 확률이 실제 발생 확률과 얼마나 잘 맞는지를 검증함으로써, 모델의 신뢰성을 검증 할 수 있다. 📌 Calibration plot 우선 우리가 적합한 모델이 있다고 가정합시다. 그렇다면 이 모델로 인하여 나온 데스트 세트의 각 샘플에 대한 예측 확률이 계산되었을 것이다.(분류니까 각 클래스에 속할 확률이라고..
앞서 불균형 데이터 처리의 중요성과 간단한 방법들에 대해 알아보았습니다. 임계값(threshold)를 조정하는 법, 그리고 랜덤 오버샘플링(Random Oversampling), 랜덤 언더샘플링(Random Undersampling)을 보았습니다. 링크 : 임계값 조정법, ROS/RUS 이번엔 또 다른 접근법으로 소수 클래스의 샘플을 증가시키는 SMOTE(Synthetic Minority Over sampling Technique), ADASYN(Adaptive Synthetic Sampling)에 대해 알아보겠습니다. 간단하게, SMOTE는 소수 클래스의 샘플을 인위적으로 생성하여 데이터 세트의 균형을 개선하는 방법으로, 랜덤 오버샘플링과 같이 분포안에서 랜덤하게 추가 데이터를 생성하는게 아닌 샘플 간..
저번 포스팅에서 불균형 데이터에 대한 접근법으로 임계값 조정을 확인하였습니다. 불균형 데이터 접근법 : 임계값 조정 불균형 데이터(Imbalanced Data) 접근법 : 임계값(threshold) 조정 불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 datanovice.tistory.com 임계값 조정법은 모델을 적합한 이후에 성능을 확인 한 후 적용하는 방법이었습니다. 이번엔 오버 샘플링과 언더 샘플링입니다. 매우 간단한 방법으로, 오버 샘플링(over sampling)은 소수 클래스의 데이터를 다수 클래스만큼 가상 데이터를 만드는 접근법이며, ..
불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 이들을 비교적 많지 않기에 자살 생각이 있다는 Y = 1인 사람이 30명 없다는 Y = 0인 사람이 300명이 있는 경우이다. 이 경우, 모델을 적합할 때 자살 생각이 없다는 300명의 데이터의 패턴을 더 많이 학습하기 때문에 자살 생각을 예측하기 쉽지 않다. 이렇게 예측 모델링에서 클래스 간 불균형은 모델의 학습 능력에 큰 영향을 미칠 수 있으며, 이를 해결하기 위한 전략이 필요하다. 본 글에서는 가장 간단한 방법으로 임계값(Threshold)를 조정하는 방법을 소개하려고 한다. 아마 머신러닝에 관심..
Data_novice
'🌞 Statistics for AI' 카테고리의 글 목록