목록2025/01 (15)
우당탕탕 개발일지

💡 K-최근접 이웃의 한계K-최근접 이웃 모델은 근처에 있는 샘플값의 평균으로 예측하는 모델인데,새로운 샘플이 훈련 세트의 범위를 벗어나면 엉뚱한 값을 예측할 수 있다는 한계점이 있다.예를 들어 길이가 50cm인 농어의 무게를 예측했을 때, from sklearn.neighbors import KNeighborsRegressorknr = KNeighborsRegressor(n_neighbors = 3)# K-최근접 이웃 회귀 모델 훈련knr.fit(train_input, train_target)# 위 모델을 이용하여 길이기 50cm인 농어의 무게 예측print(knr.predict([[50]]))예측값이 1033.333으로 실제값과 매우 차이가 났다.import matplotlib.pyplot as p..

💡 과대적합 vs 과소적합과대적합(Overfitting): 훈련 세트의 점수 > 테스트 세트의 점수과소적합(Underfitting): 훈련 세트의 점수 과소적합 = 모델이 너무 단순해서 or 훈련 세트의 크기가 너무 작아서 훈련 제대로 못함💡 과소적합을 해결하는 방법: k-최근접 이웃 회귀 모델에서 이웃의 개수 k를 줄여서 모델을 더 복잡하게 만든다.이웃의 개수를 줄이면 훈련 세트에 있는 국지적인 패턴에 민감해져서 모델이 복잡해진다.사이킷런의 k-최근접 이웃 알고리즘의 기본 k값은 5이기 때문에, 아래의 코드를 통해 바꿔주면 된다.knr.n_neighbors = 3결과를 보면 훈련 세트의 점수가 높아지고, 테스트 세트의 점수가 낮아졌다.즉, 과소적합을 해소했다고 볼 수 있다. 💡 확인문제# k-최근..
💡 K-최근접 이웃 회귀k-최근접 이웃 알고리즘을 통해 회귀 문제를 푼다.가장 가까운 이웃 샘플 n개를 찾고, 이 샘플들의 평균으로 예측한다. 💡 회귀란?두 변수 사이의 상관관계를 분석하는 방법종류: 선형 회귀, 다중 회귀, 로지스틱 회귀 등예: 가장 단순한 선형모델 y = a*x + b(x: 길이, y: 무게), 이는 무게와 길이 사이의 상관관계를 분석하는 모델 💡 결정계수(R^2)회귀모델을 평가하는 지표로, 두 변수 사이의 상관계수 r의 제곱이다.여기서 SSE는 (실제값 - 모델이 예측한 값)^2의 합을 뜻하므로, 모델이 예측을 잘 할수록 SSE가 작아지고, R^2이 커진다.결정계수 외에도 모델을 평가할 수 있는 여러 지표들이 있다. 💡 데이터 준비
💡문제 링크 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 💡SQL 코드 설계HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE 테이블을 이용해 사원별 성과금 정보를 조회하려합니다. 평가 점수별 등급과 등급에 따른 성과금 정보가 아래와 같을 때, 사번, 성명, 평가 등급, 성과금을 조회하는 SQL문을 작성해주세요. 평가등급의 컬럼명은 GRADE로, 성과금의 컬럼명은 BONUS로 해주세요. 결과는 사번 기준으로 오름차순 정렬해주세요.1. HR_GRADE 테이블의 SCORE의 값에 따라 GRADE가 나뉘기 때문에, SELECT절에 CASE WHEN 함수를 사용해서 GRADE열을 만든다..
💡문제 링크 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 💡SQL 코드 설계보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.1. 단순히 GROUP BY HOUR(DATETIME)으로 하면 안된다. DATETIME은 모든 시간대를 다루지 않기 때문이다.실제로 결과괎을 보면 7시부터 19시까지만 HOUR(DATETIME)에 값이 있다. 0~6시, 20~23시는 아예 값이 없는 것이다.2. 따라서 이 문제를 해결하기 위해 0, 1, .....
💡문제 링크 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 💡SQL 코드 설계USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요.1. 년, 월 열을 새로 만든다.2. 년, 월, 성별 기준으로 GROUP BY 진행3. 년, 월, 성별 기준으로 USER_ID의 개수를 중복을 제외하고 세는 USERS 열 추가 💡SQL 코드SELECT YEAR(SALES_DATE) AS YEAR, MONTH(SALES_DATE)..