[Zero-base] 최동원 선수 연봉 예측하기 - 보충
·
Project/Machine Learning
이전 글에서 했던 예측 모델에서 많은 문제가 있었습니다. 첫번째, 왜 선형 회귀 모델을 사용하였는지 모른다는 문제두번째, 각 변수마다 이상치를 모두 확인 하지 않았던 문제해당 문제를 이번 글에서 해결 해보겠습니다.  그리고 XGBoost와 하이퍼파라미터 튜닝 또한 해보겠습니다. 1. 왜 선형 회귀 모델을 사용하면 안될까?우선 해당 문제는 최동원 선수의 연봉 예측 문제이고 아래의 이미지와 같이 해당 분포도를 보면 선형적인 그래프를 가지지 않습니다.그래서 선형 회귀를 사용하는 것은 매우 좋지 않은 선택이며 성능 저하될 수 도 있다 판단 하였습니다.그래서 저는 차라리 비선형 관계를 잘 학습하는 앙상블 방법 중 XGBoost를 사용하여 하이퍼 파라미터 성능 조정도 하여 연봉 예측을 해보겠습니다.2. 각 변수마다..
[기초 통계]가설 검정(Hypothesis Test)
·
Data Analyst/기초 통계
1. 가설 이란?모수에 대해서 얼마나 된다는 주장 이 것을 가설이라 합니다.2. 가설 검정A, B에 대해서 Sample 데이터를 얻어서 이 가설이 어떻게 합당한지 어느 상황에 있는지 살펴보고, 이 상황에 따라서 가설을 선택하는 것이 가설검정입니다. 또는, 모집단에 대해서 어떤 모수를 잘 설명할 수 있는 가설입니다.모수(parameter) : 모집단에 대한 성격을 가진 고정된 수입니다.(하지만, 우리는 알 수가 없는 수입니다.) 즉, 가설은 모집단의 수를 추정하는 것이기 때문에 "H0 : x_bar = 0"이라 하면 틀린 것이다 왜냐하면 x_bar는 표본 평균이므로 모집단 수가 아니기 때문이다. 그래서 "H0 : seta = 0"이라 써야 맞는 것이다. 그리고 가설을 설정할 때 두 개가 겹치는 내용이 있어..
[SQL] Programmers 문제 풀기 (대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기)
·
Data Analyst/SQL
해당 문제는 Programmers에서 사용한 문제이며 모든 테이블의 자료와 출처는 Programmers임을 밝힙니다.해당 글에서는 서브쿼리와 GROUP BY를 이용하여 푸는 문제로 초보자가 하기에는 보통~어려움 정도의 난이도를 가지고 있습니다.해당 문제 원본을 확인 하시려면 해당 사이트를 들어가시면 될 것 같습니다. 시작하겠습니다.CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로..
[기초 통계] 표본 분포 이해하기
·
Data Analyst/기초 통계
1. 모집단(Population)연구대상이라고도 한다. 하지만 모집단은 우리가 알아낼 수 없습니다.SRS(Simple Random Sampling) : 모집단 전체를 조사할 수 없기 때문에 사용합니다.2. 표본(Sample)모집단을 알아낼 수 없기에 모집단과 비슷한 집단의 데이터들을 뽑아낸 것을 우리는 표본이라합니다. 표본에서 알아낸 통계치를 x_bar(표본 평균), S(표본 표준편차) 이용하여 모수를 추정합니다. 모수: 모집단에서 얻을 수 있는 평균(u)과 표준편차(seta) 등의 통계치를 말합니다.3. 표본 분포표본을 뽑으면 그 값이 모집단의 모수와 얼마나 가까운지 모르기에 여러번의 sampling을 통해 각각의 통계치를 분포로 나타낸 것이다.해당 그림은 표본 평균에 대한 표본 분포입니다. 이렇게 샘..
[zero-base] 셀프 주유소는 정말로 저렴한가? (보충)
·
Project/data analysis
이전 글에서 언급했던 범주형 변수(Y/N이 들어있는 변수)를 피어슨 상관계수를 사용하여 분석하였던 문제를 해결하기 위해 포인트 바이세리얼 상관계수와 t-검정을 활용하여 변수간 상관성을 다시 분석해보았습니다.코드를 통해 설명하겠습니다. 1. stats 라이브러리의 pointbiserialr을 활용하여 상관성 확인from scipy.stats import pointbiserialrdef pointbiserialr_calc(price, column): correlation, p_value = pointbiserialr(df_replace[column], df_replace[price]) print(f"{price}와 {column}의 포인트 바이세리얼 상관계수: {round(correlation, ..
[SQL] Programmers 문제 풀기 (물고기 종류 별 대어 찾기)
·
Data Analyst/SQL
해당 문제는 Programmers에서 사용한 문제이며 모든 테이블의 자료와 출처는 Programmers임을 밝힙니다.해당 글에서는 JOIN과 서브쿼리를 이용하여 푸는 문제로 초보자가 하기에는 보통정도의 난이도를 가지고 있습니다.해당 문제 원본을 확인 하시려면 해당 사이트를 들어가시면 될 것 같습니다. 시작하겠습니다.물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.물고기의 ID 컬럼명은 ID, 이름 컬럼명은 FISH_NAME, 길이 컬럼명은 LENGTH로 해주세요.결과는 물고기의 ID에 대해 오름차순 정렬해주세요.단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.해당 문제에서 우선적으로 가져와야 할 것은..
[zero-base] 셀프 주유소는 정말로 저렴한가?
·
Project/data analysis
해당 주제는 실제로 셀프 주유소가 기름값이 더 저렴한지 궁금하여 선택한 주제 입니다. 그래서 직접 주유소 홈페이지를 들어가서 크롤링 후 실제로 더 저렴한지 분석해보겠습니다. 1. 서울시 각 구별 주유소 데이터 크롤링from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom bs4 import BeautifulSoupfrom selenium.webdriver.support.select import Selectimport time# 대한민국 주유 가격 알아보는 사이트url = 'https://www.opinet.co.kr/searRgSelect.do'# 창 열기driver = webdriver.Chrome()driver.get(..
[SQL] Programmers 문제 풀기 (연도별 대장균 크기의 편차 구하기)
·
Data Analyst/SQL
해당 문제는 Programmers에서 사용한 문제이며 모든 테이블의 자료와 출처는 Programmers임을 밝힙니다.해당 글에서는 SELF JOIN과 GROUP BY와 여러 집계함수를 이용하여 푸는 문제로 초보자가 하기에는 보통정도의 난이도를 가지고 있습니다.해당 문제 원본을 확인 하시려면 해당 사이트를 들어가시면 될 것 같습니다. 시작하겠습니다.분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID)를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.해..
[기초 통계] 정규분포, 비대칭도, 첨도
·
Data Analyst/기초 통계
1. Skewness(비대칭도)해당 수치를 보고 왼쪽 또는 오른쪽으로 꼬리가 긴 모양을 가졌을 거라는 판단을 할 수 있습니다.앞서 배운 Positive & Negative Skew에서 말했던 그래프를 떠올리시면 됩니다.2. Kurtosis(첨도)Outlier 정도 입니다. 즉, 얼마나 Outlier를 가지고 있는지에 대한 값입니다.만약 Kurtosis의 값이 매우 크다면 Outlier 값이 좀 있다라는 것을 알 수 있습니다.그럼 Kurtosis의 값이 음수라면 위의 그림과 같이 정규분포가 가지는 끝에 나오는 값보다 더 적은 것을 의미합니다.즉, 끝 값이 정규 분포 보다 더 적게 나오는 것입니다.3. 예시 설명A지역과 B지역이 있다고 가정해보겠습니다. 그리고 Skewness와 Kurtosis 값을 정보로 ..
[zero-base] 스타벅스와 이디야 매장 거리 분석 (보충)
·
Project/data analysis
이전 글에서 언급했던 문제였던 경도 위도 데이터들을 추가 해주었으며, 구마다 거리들의 평균을 구했습니다.추가적으로 귀무가설과 대립가설을 정의 한 후 p-value를 통해  어떤 가설이 맞는지 확인 또한 해보았습니다.코드를 통해 설명해보겠습니다. 1. 상세 주소를 이용하여 위도 경도 알아내기lat_lng_url = 'https://www.findlatlng.org/#google_vignette'driver = webdriver.Chrome()new_lat = []new_lng = []url = lat_lng_urldriver.get(url)driver.maximize_window()for address in address_ediya: a = driver.find_element(By.CLASS_NAME..
hmm06
hmm06 님의 블로그