2025/07 18

정확도 정밀도 재현률

🎯 정밀도 · 재현율 · 정확도 · F1 Score 정리 지표 수식 의미 정확도(Accuracy) (TP + TN) / (TP + FP + FN + TN) 전체 중에서 맞춘 비율 정밀도(Precision) TP / (TP + FP) "맞다고 예측한 것" 중 진짜 맞은 비율 재현율(Recall) TP / (TP + FN) "진짜 정답" 중 예측에 성공한 비율 F1 Score 2 × (Precision × Recall) / (Precision + Recall) 정밀도와 재현율의 조화 평균 (균형 평가) ..

인공지능 2025.07.31

LabelEncoder vs OneHotEncoder

🍎 LabelEncoder vs OneHotEncoder 쉽게 이해하기 🥝 예시 데이터 items = ["사과", "바나나", "토마토", "딸기", "수박"] 1️⃣ LabelEncoder: 클래스에 숫자를 붙여줌 from sklearn.preprocessing import LabelEncoderitems = ["사과", "바나나", "토마토", "딸기", "수박"]encoder = LabelEncoder()encoder.fit(items)labels = encoder.transform(items)print('인코딩 변환값:', labels) 📌 출력 결과 인코딩 변환값: [3 0 4 1 2] 원본LabelEncoder 결과 ..

인공지능 2025.07.31

Stratified Fold란?

📊 StratifiedKFold 완전 이해하기 ❓ 문제: KFold는 완벽한가? KFold는 데이터를 무작위로 K조각으로 나눕니다. 하지만 불균형한 클래스가 있는 경우, 일부 Fold에 특정 클래스가 아예 빠질 수 있습니다! 🍬 비유: 간식 나누기 학생 10명 중 초콜릿 좋아하는 학생은 3명뿐이라고 해볼게요. KFold: 1~10번 순서대로 나누면, 어떤 그룹엔 초콜릿 좋아하는 사람이 0명일 수도! StratifiedKFold: 미리 초콜릿/사탕/쿠키 그룹을 나누고, 각 그룹에서 조금씩 골라서 Fold에 배분 🔍 내부 원리 먼저 정답(label)을 기준으로 클래스별 인덱스 목록을 만듭니다. 각 클래스 바구니..

사이킷런에서 의사결정나무 결정 과정

🌳 머신러닝 결정트리, 처음부터 끝까지 이해하기 🧪 먼저, 우리가 실행한 코드 from sklearn.datasets import load_irisfrom sklearn.tree import DecisionTreeClassifierfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_split# 1. 데이터 불러오기iris = load_iris()# 2. 훈련용/테스트용 데이터 나누기X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.3, random_state=121)# 3..

인공지능 2025.07.31

🌸 Iris 데이터로 배우는 머신러닝 분류: K-폴드 교차검증까지🌸 Iris 데이터로 배우는 머신러닝 분류: K-폴드 교차검증까지

앞에서는 Iris 데이터를 이용해 학습과 테스트 데이터로 나눈 뒤 의사결정나무 모델을 학습하고 평가했다. 이번에는 K-폴드 교차검증이라는 기법을 통해 모델을 더 공정하고 안정적으로 평가하는 방법을 배워본다.8. 왜 K-폴드 교차검증을 할까?지금까지는 train_test_split으로 데이터를 학습용과 테스트용으로 한 번만 나눠 평가했다. 하지만 이렇게 한 번만 나누면 운이 좋거나 나쁜 데이터 분할 때문에 평가 결과가 달라질 수 있다.예를 들어, 테스트셋에 너무 쉬운 데이터만 들어가면 정확도가 높게 나오고, 반대로 어려운 데이터만 들어가면 낮게 나올 수 있다.그래서 더 공정한 방법이 필요한데, 바로 K-폴드 교차검증이다.9. K-폴드 교차검증 원리데이터를 K개의 덩어리로 나눈다. (예: 5개의 폴드)그중 ..

카테고리 없음 2025.07.18

🌸 Iris 데이터로 배우는 머신러닝 분류: 학습부터 시각화까지

머신러닝을 처음 접할 때 가장 많이 사용하는 예제가 바로 Iris 데이터다. 이 데이터는 붓꽃의 꽃잎과 꽃받침의 길이·너비를 보고 어떤 품종인지 분류하는 문제다. 이번 글에서는 이 데이터를 이용해 의사결정나무 모델을 학습하고, 예측하고, 그래프 시각화까지 진행한다.1. Iris 데이터란?Iris 데이터는 총 150개의 샘플로 구성되어 있고, 각 샘플에는 다음 네 가지 특성이 있다.꽃받침 길이 (sepal length)꽃받침 너비 (sepal width)꽃잎 길이 (petal length)꽃잎 너비 (petal width)그리고 각 샘플은 세 가지 품종 중 하나에 속한다.setosaversicolorvirginica즉, 4개의 숫자로 이루어진 특성을 보고 어떤 품종인지 맞추는 것이 목표다.2. 데이터 불러..

카테고리 없음 2025.07.18

🎥 OpenCV : 이미지 속 사람 검출하기

이번에는 이미지에 있는 사람(또는 사람 형태)를 검출하는 방법을 배워볼 거예요. OpenCV에서는 HOG(Histogram of Oriented Gradients) + SVM 기반의 기본 보행자 감지기를 제공합니다.1️⃣ 사람 검출 기본 코드import cv2# 이미지 불러오기img = cv2.imread("snapchat/frame_0001.jpg")# HOG 디텍터 초기화hog = cv2.HOGDescriptor()hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())# 사람 검출 (bounding box 반환)boxes, weights = hog.detectMultiScale(img, winStride=(8,8))# 검출된 영역 그리기fo..

인공지능 2025.07.18

🎥 OpenCV 입문: 이미지 & 동영상 데이터 불러오기

이번 포스팅은 OpenCV(cv2)를 이용해서 이미지와 동영상을 불러와서 관리하는 기본기부터 시작합니다.앞으로 하나씩 기능을 추가하면서, 코드와 함께 왜 이렇게 작성하는지, 어떤 이점이 있는지까지 자세히 설명할 예정이에요!1️⃣ OpenCV란?**Computer Vision(컴퓨터가 보는 기술)**을 다루는 대표 라이브러리이미지 처리, 영상 분석, 얼굴 인식, 객체 탐지 등 다양한 기능 제공pip install opencv-python으로 설치2️⃣ 첫 번째 코드: 이미지 불러오기 & 확인하기import cv2# 이미지 읽기img = cv2.imread("img/img01.jpg")# 이미지가 제대로 불러와졌는지 확인if img is None: print("이미지를 찾을 수 없어요! 경로를 확인하세..

인공지능 2025.07.17

📝 입소문 시뮬레이션 코드, 진짜 쉽게 이해하기!

이번엔 코딩을 잘 모르는 사람도 이해할 수 있도록 입소문 시뮬레이션 코드를 아주 쉽게 풀어볼게요. 하나씩 천천히!1️⃣ NetworkX 라이브러리? 그게 뭐야?네트워크는 **점(노드)**과 **선(엣지)**로 이루어진 그림이라고 생각하면 돼요.점(노드) → 사람선(엣지) → 친구 관계(연결)networkx는 이런 네트워크 그림을 쉽게 그려주는 파이썬 도구예요.G = nx.Graph() # 네트워크(그래프) 틀 만들기G.add_node('A') # 사람 A 추가G.add_edge('A', 'B') # A와 B가 친구라서 연결!➡️ 네트워크X를 쓰면 사람과 친구 관계를 손쉽게 표현할 수 있어요.2️⃣ set(집합) 자료형이 왜 필요할까?set은 중복 없이 모으는 상자라고 생각하..

인공지능 2025.07.15

📢 입소문 확산 시뮬레이션: 네트워크와 시계열 변화까지!

1️⃣ 시뮬레이션 목표이번 포스팅에서는 20명의 사람과 랜덤 친구 관계 네트워크를 기반으로 입소문이 퍼지는 과정을 시뮬레이션합니다.✅ 네트워크 구조 생성 (people.csv + friendship.csv)✅ 소문 전파 규칙 정의 및 단계별 확산✅ 시간에 따른 확산 현황 시각화✅ 시계열 그래프로 전파 속도 확인실제 SNS 소문, 바이럴 마케팅, 감염병 확산과 동일한 구조로 이해할 수 있는 모델입니다.2️⃣ 데이터 준비people.csv (노드 정보)IDNameAgeGenderCityP1Alex34MaleSeoulP2Chris28FemaleBusan...............P20Rowan38FemaleGwangjufriendship.csv (엣지 정보)SourceTargetP1P2P1P5P3P7.......

인공지능 2025.07.15