본문 바로가기
반응형

전체 글111

분류 모델 성능 평가 지표 (Accuracy, precision, recall, F1 score) 분류 모델의 성능을 평가할 때 사용하는 표는 아래와 같습니다. 아래 셀의 용어들이 평가지표 정의에 사용됩니다.TP : True Positive (환자를 환자로 진단)FN : False Negative (환자인데 정상으로 진단)FP : False Positive (정상인데 환자로 진단)TN : True Negative (정상을 정상으로 진단)Positve 와 Negative 를 이해를 돕기 위해 환자와 정상으로 설명한 것입니다. 목적에 따라 Positive와 Negative의 의미가 달라질 수 있습니다.1. Accuracy (정확도)정의전체 예측 중에서 정답을 맞춘 비율공식$$Accuracy=\frac{TP+TN}{TP+TN+FP+FN}$$장점해석이 직관적임클래스가 균형잡혀 있으면 유용함단점클래스 불균형이.. 2025. 2. 28.
딥러닝에서 에폭과 배치 쉽게 이해하기 에폭 (epoch)1에폭이란 모든 훈련 데이터가 학습에 한번씩은 사용되는 것을 의미함.예를 들어, 데이터가 500개라면 500개의 데이터를 모두 학습해야 1에폭이 됨그러나 1000개의 데이터를 한번에 입력하고 가중치를 수정하면 메모리 사용량이 급격히 증가하고, CPU나 GPU성능이 저하될 수 있음.이러한 문제를 해결하기 위해 배치(batch) 개념을 사용함.배치 (batch)전체 데이터를 여러개의 그룹으로 나누는데, 이 그룹을 배치라고 부름예를 들어, 500개의 데이터를 50개씩 묶으면 10개의 배치가 생김.각 배치를 학습할 때마다 가중치를 업데이트하여 모델을 점진적으로 최적화함. 10개의 배치가 모두 학습에 사용된 것이 1에폭임. 배치학습 VS 미니배치학습전체 데이터를 여러개 그룹으로 나눠서 학습하는 .. 2025. 2. 22.
세그멘테이션 결과 평가 (Accuracy, Dice, IoU) 1. Accuracy전체 픽셀 중 올바르게 분류된 픽셀의 비율정의는 아래와 같음$$Accuracy = \frac{TP+TN}{TP+TN+FP+FN}$$특징 : 전체 성능 평가단점 : 객체 영역이 작고 배경이 대부분일 경우, 배경을 맞추기만 해도 Accuracy가 높게 나올 수 있음2. Dice coefficient예측한 객체 정답과 정답 영역 간의 겹침 정도정의는 아래와 같음 (A는 예측한 세그멘테이션 영역, B는 정답인 영역. 절댓값은 픽셀 수를 의미)$$Dice=\frac{2\times \left | A\cap B\right |}{\left | A\right |+\left | B\right |}$$배경(TN)은 포함하지 않고, positive class 영역의 겹침에 초점을 맞춤3. Intersect.. 2025. 2. 17.
데이터를 train, valdation, test 로 나누지 않고 train 과 test로만 나누는 경우 1. 데이터셋의 크기가 매우 작은 경우 데이터셋 자체가 충분히 크지 않다면, 세 덩어리(Train/Val/Test)로 쪼개면 각 파티션의 데이터가 너무 적어져서 학습/검증/테스트가 모두 불안정해질 수 있습니다. 이럴 때는 Train / Test로만 나눈 뒤, 교차 검증(Cross Validation) 등을 활용하여 하이퍼파라미터를 조정하는 경우가 많습니다. 예: K-Fold Cross Validation을 통해 Train 세트를 다시 여러 폴드로 나누어 검증을 대체하고, 최종적으로 Test 세트로 성능을 평가.2. 과거(혹은 단순) 실습/연구 관행 과거 머신러닝 실습이나 비교적 간단한 연구에서는 Train/Test만 사용하는 것이 흔했습니다. 하이퍼파라미터가 많지 않거나, 모델 구조가 단순해 추가적인 검.. 2025. 2. 12.
머신러닝과 딥러닝의 차이 이번 글에서는 머신러닝과 딥러닝에 어떤 차이가 있는지 이야기해볼 것입니다.머신러닝은 인간이 하는 일을 기계가 대신 하도록 해주는 기술입니다. 머신러닝이라는 이름도 기계가(머신) 배운다(러닝)이라는 의미입니다. 머신러닝을 하는 상황을 하나 살펴봅시다. 강아지 사진과 고양이 사진이 여러장 있고, 강아지인지 고양이인지 맞추는 인공지능을 만들려고 합니다. 머신러닝은 사진을 입력받아 무언가를 할 수가 없습니다. 사진에서 수염의 여부, 몸통 크기, 다리 길이, 귀의 면적 등을 인간이 먼저 추출해주어야 합니다. 그리고 그 추출된 값들을 입력받아 학습을 하게 됩니다. 반면 딥러닝은 사진 자체를 입력받을 수 있습니다. 사진을 통채로 입력하면, 딥러닝에서는 알아서 특징을 추출하고 강아지인지 고양이인지 분류하는 학습을 수행.. 2025. 2. 6.
[파이썬 numpy] 여러 점들에 변환행렬 한번에 적용하기 아래와 같이 여러개의 점이 하나의 배열에 들어 있습니다. import numpy as nppoints = np.array([[4, 5, 6], [7, 8, 9], [10, 11, 12], [10, 11, 12], [10, 11, 12]]) 아래와 같은 변환행렬을 각각의 점에 적용하고 싶은 상황입니다. x축 대칭이동을 해주는 변환행렬입니다. T=np.array([[1,0,0],[0,-1,0],[0,0,1]])1. 원초적인 방법가장 원초적인(?) 방법은 for 문을 이용하여 한 점씩 변환하는 것입니다. 아래와 같이 합니다. ar=np.empty([0,3])for point in p.. 2024. 10. 13.
[파이썬 numpy] 비어있는 배열 만들고 원소 추가하기 비어있는 배열을 만들고 점(point)와 같은 원소를 추가해야 하는 상황에서 사용하는 방법입니다. 비어있는 배열에 아래와 같이 3차원 점들을 for 문을 이용하여 하나씩 추가해주려고 합니다.points = np.array([[4, 5, 6], [7, 8, 9], [10, 11, 12], [10, 11, 12], [10, 11, 12]]) 비어있는 배열을 하나 만들어줍니다. 추가할 배열들의 차원과 일치하는 크기로 만들어주어야 합니다.ar=np.empty([0,3]) 위 코드를 잘 이해해야 합니다. 행렬로 생각해보면 0행 3열입니다. x,y,z 라는 열 이름만 만들어 놓은 상태라고.. 2024. 10. 13.
비주얼스튜디오 코드에서 파이썬 코드라인 shift+tab 으로 실행되게 하기 비주얼스튜디오 코드 위에 있는 검색창에서 아래 코드를 입력합니다. >Preferences: Open Keyboard Shortcuts 단축키 검색창에 shift+enter 을 입력하고 Python: python.execSelectionInTerminal 를 제외한 나머지를 지워줍니다. Python: 으로 시작하는 것만 지우면 됩니다. 2024. 10. 12.
[파이썬 numpy] 벡터와 행렬의 연산 이해하기 벡터와 행렬의 연산에는 numpy의 dot product를 사용하면 됩니다. dot product는 우리가 흔히 아는 행렬의 곱셈입니다. 차이가 있다면 3x3행렬과 행벡터를 곱해도 곱셈이 수행됩니다. 열벡터로 바꿔주지 않아도 알아서 곱셈이 수행됩니다. 몇가지 곱셈을 봅시다. 3x3 행렬과 벡터 사이의 곱을 해봅시다. 아래와 같이 3x3 행렬과 벡터 하나를 정의했습니다.import numpy as npA=np.array([[1,2,3],[10,20,30],[100,200,300]])b=np.array([4,5,6]) 위 행렬과 벡터를 곱할 때는 dot 연산자를 사용합니다.>>> np.dot(A,b)array([ 32, 320, 3200]) 아래 곱셈의 결과와 같습니다. $$  \begin{bmatrix.. 2024. 10. 12.
딥러닝에서 k-fold cross validation 안 쓰는 이유 k-fold cross validation 은 tablular data에서 주로 쓰인다. tabular data 는 아래와 같은 데이터다.  X : 값 Y : 레이블 이런 데이터에서는 train set 을 어떻게 뽑느냐에 따라 결과가 많이 달라질 수 있다. 한번 학습을 하는게 오래걸리지도 않는다.  따라서 여러 조합의 train set 을 뽑아보는 cross validation 을 적용하는게 유리하다.  But Image data 의 경우 어떤 train set 을 뽑느냐에 그리 민감하지 않다. 또한 학습이 오래걸리므로 여러 조합의 train set을 뽑아서 cross validation 하기가 어렵다. 2024. 7. 26.
파이썬으로 텍스트 읽는 방법 (문장단위, 줄단위) mytext.txt 라는 파일이 있다고 합시다. 여러 줄의 내용이 적혀 있는 텍스트 파일 입니다. 내용은 숫자도 있고 문자도 있습니다. 내용은 아래와 같습니다.  파이썬에서 이 파일의 내용을 불러오기 위해서 먼저 이 파일을 열어줘야 합니다.  일단 코드를 봅시다.  file_path='C:/documents/myfile.txt'file_opened=open(file_path, 'r')myfile.txt 라는 파일을 열었습니다. r은 read 를 의미합니다.  '읽기 위해 열었다'  정도로 생각하면 됩니다.  이제 내용을 가져오겠습니다. 내용을 가져오는 방법은 두 가지가 있습니다. 전체 내용을 문자열로 가져오는 방법과, 각 줄을 리스트 원소로 가져오는 방법입니다.  1) 전체 내용을 문자열로 가져오기rea.. 2024. 7. 1.
[파이썬 판다스] 데이터프레임 특정 조건을 만족하는 특정 열에 접근하기 데이터 분석 및 조작을 위해 널리 사용되는 판다스 라이브러리는 데이터프레임이라는 효율적인 자료구조를 제공합니다. 때로는 특정 조건을 만족하는 데이터에만 관심이 있을 때가 있습니다. 이때, 특정 열에 접근하여 원하는 데이터를 추출하는 방법을 알아봅시다. import pandas as pd # 예시 데이터프레임 생성 data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'], '나이': [25, 30, 22, 35], '성별': ['여', '남', '남', '여']} df = pd.DataFrame(data) print(df) # 나이가 25세 이상인 데이터만 추출 condition = df['나이'] >= 25 filtered_df = df[condition] print(f.. 2024. 1. 10.
파이썬에서 머신러닝하고 AUC, sensitivity, specificity, accuracy, precision, F1, 95%CI 구하는 법 아래 코드입니다. logistic regression, support vector machine, LGBM 중에서 하나를 선택할 수 있습니다. 함수의 디폴트값은 auc와 auc의 95% CI를 출력합니다. 무엇을 출력할지는 scoring 옵션에서 바꿀 수 있습니다. scoring 에서 선택할 수 있는 옵션들은 아래와 같습니다. 'accuracy': 정확도 'precision': 정밀도 'recall': 재현율 'f1': F1 점수 'roc_auc': ROC AUC import numpy as np import pandas as pd from sklearn.model_selection import RepeatedKFold from sklearn.linear_model import LogisticRegres.. 2023. 12. 22.
파이썬에서 함수를 다른이름으로 정의해서 사용하기 파이썬에서 아래와 같은 함수를 정의했다고 합시다. def myfun(a,b) : return a+b 이 함수를 다른 이름으로 불러와서 사용하고 싶은 경우 아래와 같이 변수를 정의하면 됩니다. fun1=myfun 이제 fun1 이라는 이름으로 사용할 수 있습니다. 아래와 같이 정의할 경우 사용 시 에러가 발생합니다. fun2=myfun() 2023. 12. 20.
CycleGAN 설명 (자세히 글로 쓴) pix2pix 의 한계를 극복한 모델입니다. pix2pix 는 매칭된 데이터가 필요했습니다. 스케치에 색칠해주는 모델을 만들고 싶다고 한다면, 학습을 위해 스케치된 그림과 색칠된 그림이 쌍을 이루고 있는 데이터가 필요합니다. 하지만 이런 데이터를 만드는데 비용과 시간이 많이 든다는 문제가 있었습니다. 이런 문제를 극복하기 위해 등장한 모델이 CycleGAN 입니다. CycleGAN 의 원리를 이해해봅시다. 말을 얼룩말로 바꾸는 모델을 만들고 싶다고 합시다. 말 사진 100장과 얼룩말 사진 100장을 준비합니다. 매칭되어 있지 않아도 됩니다. 아이디어는 이렇습니다. 생성자 G와 F를 준비합니다. 생성자를 2개 사용하는 것입니다. 생성자 G는 말을 얼룩말로 바꾸는 생성자가 될 것이고, 생성자 F는 얼룩말을 .. 2023. 12. 19.
반응형