[Zero-base] 최동원 선수 연봉 예측하기 - 보충
·
Project/Machine Learning
이전 글에서 했던 예측 모델에서 많은 문제가 있었습니다. 첫번째, 왜 선형 회귀 모델을 사용하였는지 모른다는 문제두번째, 각 변수마다 이상치를 모두 확인 하지 않았던 문제해당 문제를 이번 글에서 해결 해보겠습니다.  그리고 XGBoost와 하이퍼파라미터 튜닝 또한 해보겠습니다. 1. 왜 선형 회귀 모델을 사용하면 안될까?우선 해당 문제는 최동원 선수의 연봉 예측 문제이고 아래의 이미지와 같이 해당 분포도를 보면 선형적인 그래프를 가지지 않습니다.그래서 선형 회귀를 사용하는 것은 매우 좋지 않은 선택이며 성능 저하될 수 도 있다 판단 하였습니다.그래서 저는 차라리 비선형 관계를 잘 학습하는 앙상블 방법 중 XGBoost를 사용하여 하이퍼 파라미터 성능 조정도 하여 연봉 예측을 해보겠습니다.2. 각 변수마다..
[Zero-base] 최동원 선수 연봉 예측하기 - 3
·
Project/Machine Learning
문제 32번의 데이터를 기준으로 최동원의 성적이라면 연봉이 어떨지 예측하시오. 답 : 저는 데이터 예측을 위해 선형 회귀(Linear Regression)를 사용 할 것입니다. 그리고 이상하다면 이상치가 있는 지 확인 하고 이상치가 많다면 해당 컬럼의 이상치를 제거하고 훈련을 시켜서 예측을 시켜볼 것입니다.코드1. 이상치 제거X, 모든 컬럼 사용 후 예측# 데이터 쪼개기from sklearn.model_selection import train_test_split# 숫자형 데이터가 아닌 값은 빼놓기X = baseball.drop(columns=['연봉','팀명', '선수명'], axis=1)y = baseball['연봉']X_train, X_test, y_train, y_test = train_test_s..
[Zero-base] 최동원 선수 연봉 예측하기 - 2
·
Project/Machine Learning
문제 2투수들의 연봉 및 데이터를 2010년대 투수들의 연봉 및 데이터로 매핑(mapping)하기즉, 우리는 최동원이 현재 존재한다면 그 연봉을 알고 싶은 것이니, 최동원의 데이터만 현재 선수에 맞춰 변환할 것인지, 혹은, 당시 선수들의 데이터를 모두 변환해서 검토할 것인지 결정해야 할 것 입니다. 저의 해답 : 저는 1982 ~ 1988 년의 연봉 데이터를 찾을 수 없을 뿐더러 최동원의 선수 데이터만 있으면 충분할 것이라 생각되었으며 2010년~2015년의 선수들의 연봉 데이터는 충분한 기록이 있으므로 해당 데이터만 사용하여 연봉을 예측할 것입니다.코드1. Statiz 홈페이지에서 선수들의 연봉 가져오기url3 = "https://statiz.sporki.com/stats/?m=main&m2=pitch..
[Zero-base] 군집화(Clustering) - 2
·
Data Analyst/ML
1. IRIS 데이터를 가져오겠습니다.from sklearn.datasets import load_iris# 해당 데이터에는 Label이 없습니다.iris = load_iris()# 특성 이름을 가져옵니다.cols = [each[:-5] for each in iris.feature_names]import pandas as pdiris_df = pd.DataFrame(iris.data, columns=cols)iris_df.head()# 중요 특성 2개만 사용하겠습니다.features = iris_df[['petal length', 'petal width']]위의 코드와 같이 데이터 프레임을 만들기위해 컬럼명들을 가져오고 중요한 특성 두 개만 가지고 오는 것을 확인 할 수 있습니다. (제 블로그 IRIS ..
[Zero-base] 군집화(Clustering) - 1
·
Data Analyst/ML
비지도 학습학습 데이터에 정답(label)이 없는 상태에서 데이터의 구조를 분석하고 패턴을 찾아내는 기계 학습 방법입니다.주로 데이터의 숨겨진 구조를 파악하거나, 비슷한 특성을 가진 데이터들을 군집화하는 데 사용됩니다.비지도 학습에서는 모델이 데이터를 학습하면서 정답을 맞추는 것이 아니라, 데이터의 특징을 추출하거나 그룹을 구분합니다. 비지도 학습 대표적인 사례군집 Clustering : 비슷한 샘플을 모음이상치 탐지 Outlier detection : 정상 데이터가 어떻게 보이는지 학습, 비정상 샘플을 감지밀도 추정 : 데이터셋의 확률 밀도 함수 Probability Density Function PDF를 추정, 이상치 탐지 등에 사용K-Means군집 중심 이라는 임의의 지점을 선택해서 해당 중심에 가..
[Zero-base] 주성분 분석(PCA, Principal Component Analysis) - 2
·
Data Analyst/ML
IRIS 데이터로 PCA 적용해보겠습니다.import pandas as pdfrom sklearn.datasets import load_irisiris = load_iris()iris_pd = pd.DataFrame(iris.data, columns = iris.feature_names)iris_pd['species'] = iris.targetiris_pd.head()# StandardScaler 데이터 스케일링from sklearn.preprocessing import StandardScaleriris_ss = StandardScaler().fit_transform(iris.data)이렇게 StandardScaler를 통해 데이터들을 스케일링까지 해주었습니다. 2. PCA 적용하기from sklearn..
[Zero-base] 주성분 분석(PCA, Principal Component Analysis) - 1
·
Data Analyst/ML
PCA는 많은 데이터를 간단하게 만드는 방법입니다. 데이터를 찍을 때, 여러개의 특성을 사용할 수 있습니다.하지만 특성이 너무 많으면 한 눈에 보기가 어렵습니다. 그래서 많은 데이터 중 중요한 부분만 뽑아서 간단하게 보여주는 것입니다. 즉, PCA는 데이터 분산을 최대한 보존하면서 서로 직교하는 새 기저(축)를 찾아, 고차원 공간의 표본들을 선형 연관성이 없는 저차원 공간으로 변환하는 방법입니다. PCA에서 사용하는 기법으로는 차원축소(dimensionality reduction)와 변수 추출(feature extraction) 기법이 있습니다.여기서 변수 추출은 기존 변수를 조합해 새로운 변수를 만드는 기법이지 기존에 있는 변수를 선택하는 것이 아니므로 변수 선택(Feature Selection)과 구..
[Zero-Base] 앙상블 기법 - 2
·
Data Analyst/ML
HAR 데이터 소개UCI HAR 데이터 셋은 스마트폰을 장착한 사람의 행동을 관찰한 데이터입니다.실험 대상 : 19-48세 연령의 30명의 자원 봉사자를 모집하여 수행허리에 스마트 폰을 착용하여 50Hz의 주파수로 데이터를 얻습니다.6가지 활동을 수행합니다.실험은 데이터를 수동으로 라벨링하기 위해 비디오로 기록합니다.시간 영역 데이터를 머신러닝에 적용하기 위해 여러 통계적 데이터로 변환합니다.시간 영역의 평균, 분산, 피크, 중간 값, 주파수 영역에 평균, 분산 등으로 변환한 수치를 가지고 있습니다.이걸 데이터화 시키는 것을 Feature Extraction(특징 추출)이라 합니다.이를 통해 사람이 앉았는지, 걷는지, 계단을 내려가는지, 올라가는지, 그냥 서있는지를 알 수 있게 만들었습니다.데이터 특성가..
[Zero-base] 앙상블 기법 - 1
·
Data Analyst/ML
앙상블 기법앙상블 기법은 여러 개의 모델을 합쳐서 더 좋은 결과를 얻는 방법입니다.즉, 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측 값을 얻을 수 있습니다. 그렇다면 분류기 마다 서로 다른 예측값이 나왔을 경우 어떻게 할 것인가가 문제입니다.이 문제 해결은 Hard voting과 Soft voting으로 해결 됩니다. 1. Hard voting:여러 분류기가 각자 예측한 결과 중에서 가장 많이 나온 답을 선택하는 방법입니다.예를 들어, 3개의 분류기가 있고 각각 '고양이', '강아지', '고양이' 예측 하였습니다. 이 때 고양이가 2번 나왔으므로 고양이로 최종 예측하는 것입니다.2. Soft voting:각 분류기가 예측한 값에 대해 확률을 고려하는 방법입니다.분류기들이 ..
[Zero-base] KNN(KNeighbors Classifier) - 2
·
Data Analyst/ML
1. iris 품종 데이터를 사용하여 분류하기!from sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitiris = load_iris()# stratify -> 구성비율 맞추기# 테스트 세트 훈련세트 나누기X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=13, stratify=iris.target)위와 같이 load_iris를 통해 iris 데이터를 불러왔습니다. 그리고 훈련세트와 테스트세트로 나눠 줬습니다.2. KNeighborsClassifier 사용하고 정확도 ..
hmm06
'ML' 태그의 글 목록