목록전체 글 (318)
susinlee 님의 블로그
F1 Score : 정밀도(Precision)와 재현율(Recall)의 조화 평균을 계산하는 지표→ 정확도(Accuracy)만으로 평가하기 어려운 불균형 데이터에서 모델 성능을 평가할 때 중요함 1. 정밀도와 재현율이란? 실제 긍정실제 부정예측 긍정TP (True Positive)FP (False Postivie)예측 부정FN (False Negative)TN (True Negative)→ (FP, FN 에서 P와 N은 예측 기준) 정밀도 공식$$Precision = \frac{TP}{TP+FP}$$→ 긍정으로 예측한 것 중에서 실제로 정답인 비율 (예측이 얼마나 정확한지)→ FP(거짓 긍정)이 많으면 정밀도가 낮아짐→ 예: 스팸 필터에서 정밀도가 높으면, 스팸으로 예측한 것 중 실제 스팸이 많다는 의미..
데이터 : 추론과 추정의 근거를 이루는 사실 정성적 데이터 : 비정형 데이터 (예: 주관식 응답, 기상특보, SNS 텍스트)정량적 데이터 : 수치 기반의 정형 데이터 (예: 온도, 습도, 강우량, 풍속) 암묵지 : 경험과 학습을 통해 개인에게 습득된 무형의 지식 (예: 자동차 운전, 운동)형식지 : 구체적이거나 문서화된 지식 (예: 작업 메뉴얼, 설계도)공통화 : 암묵적 노하우를 타인에게 전달표출화 : 암묵적 노하우를 책/교재 등 형식지로 전환연결화 : 기존 형식지에 자신의 새로운 지식을 추가내면화 : 만들어진 교재를 참고하여 다른 직원들이 암묵적 지식으로 체화DIKW 피라미트 : 데이터, 정보, 지식을 통해 최종적으로 지혜를 얻어내는 일련의 과정을 나타내는 계층구조Data : 가공 전의 객관적인 사실..

1. to_dict()to_dict() 를 이용하여 시리즈 데이터에서 인덱스와 값을 딕셔너리 key:value 형태로 손쉽게 만들 수 있다.import pandas as pdimport seaborn as snsdf = sns.load_dataset('penguins')print(df.value_counts('species'))print(df.value_counts('species').to_dict()) 2. map vs apply map() Series 객체에서 개별 요소에 함수를 적용리스트나 딕셔너리를 매핑할 수도 있음 → 앞서 살펴본 to_dict이랑 같이 활용 가능! (존재하지 않는 키값은 NaN 처리)DataFrame 전체에 적용할 수 없음 (Series 전용) apply()Series와 Da..
[문제]https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/description/ [풀이]1. requester_id 열과 accepter_id 열을 위 아래로 합쳐준다.2. 합친 열을 그룹화하고 개수를 센다음 정렬한 뒤 제일 첫 번째 행을 가져온다. Pandasimport pandas as pddef most_friends(request_accepted: pd.DataFrame) -> pd.DataFrame: df = pd.DataFrame({ 'id': pd.concat([request_accepted['requester_id'], request_accepted['accepter_id']]) }) ..
SQL에서 윈도우 함수는 행(row) 단위로 연산을 수행하면서도 그룹화 없이 전체 데이터에 대한 계산을 수행할 수 있는 기능 기본 구조윈도우_함수() OVER ( PARTITION BY 컬럼 ORDER BY 컬럼 ROWS 또는 RANGE) PARTITION BY → 그룹을 나누는 기준ORDER BY → 정렬 기준ROWS 또는 RANGE → 윈도우(슬라이딩 범위)를 설정하는 옵션기본 예제SELECT customer_id , visited_on , amount , SUM(amount) OVER (ORDER BY visited_on) AS rolling_sumFROM CustomerSUM(amount) OVER (...) → 각 행을 기준으로 이전 행의 값들을 누적해서 ..
[문제]https://leetcode.com/problems/restaurant-growth/ [풀이]1. 날짜순으로 정렬한 뒤, 그룹화하여 더해준다. 2. rolling 함수를 이용해서 윈도우 크기를 7일로 해주고, 이동합계를 구한다.3. 마찬가지로 이동합계에 7을 나눠서 이동평균을 구해준다.4. 최소 날짜에서 6일을 더해 7일 평균이 계산된 행들만 필터링 해준다. Pandasimport pandas as pddef restaurant_growth(customer: pd.DataFrame) -> pd.DataFrame: df = customer.sort_values("visited_on").groupby("visited_on")[["amount"]].sum() df = df.assign( ..
[문제]https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이]1. 던전을 탐색할 수 있는 모든 조합을 구해주고( O(n!) )2. 최대로 돌 수 있는 던전 개수를 구해준다. from itertools import permutationsdef solution(k, dungeons): max_cnt = 0 if k >= sum(list(zip(*dungeons))[1]): max_cnt = len(dungeons) cnt_list = [] for method..
[문제]https://leetcode.com/problems/movie-rating/description/ [풀이]1. 영화 평점 테이블에서 각 유저별로, 영화별로, 평가수와 평균점수를 구하고 각각 새로운 테이블을 생성2. 평가수 테이블과 유저 테이블을 조인해서 유저의 이름을 구하고3. 평균점수 테이블과 영화 테이블을 조인해서 영화 이름을 구한 뒤4. 두 데이터로 테이블을 만들어서 반환 Pandasimport pandas as pddef movie_rating(movies: pd.DataFrame, users: pd.DataFrame, movie_rating: pd.DataFrame) -> pd.DataFrame: user_rating_counts = ( movie_rating ..