목록Projects (11)
동삼이의 노트북

이전 포스팅에서 RandomForest 머신러닝 모델을 사용하는 것으로 결정하였다. 그렇다면 이 랜덤포레스트를 세부 조정을 통해 성능을 향상시켜야 한다. 가장 단순한 방법은 최적화된 하이퍼파라미터 조합을 찾을 때까지 수동으로 하이퍼파라미터를 조정하는 것이다. 하지만 이는 시간이 많이 들며 성가신 작업이 될 것이다. 따라서 우리는 사이킷런의 GridSearchCV를 사용한다. 탐색하고자 하는 하이퍼파라미터와 시도해볼 값을 지정하면 모든 하이퍼파라미터 조합에 대해 교차검증을 사용해 평가하게 된다. param_grid 설정에 따라 사이킷런이 먼저 첫 번째 dict에 있는 n_estimators와 max_features 하이퍼 파라미터의 조합인 3 * 4 개의 조합을 평가하고 그런 다음 두 번째 dict의 조합..

이전 포스팅까지 진행했던 데이터셋으로 진행한다. 1. 선형 회귀 모델 lin_reg 라는 이름의 객체를 생성 후, LinearRegression을 대입하였다. 그 후 fit 메소드를 통해 데이터를 학습시킨다. 선형 회귀 모델은 68628의 RMSE 값을 갖는다. 우리가 갖고 있는 중간 주택 가격의 값이 120000~265000인 것을 고려하면 그다지 좋은 예측은 아니라고 볼 수 있다. 산점도를 확인했을 때, 선형관계는 얼추 맞았으나 500,000대의 주택 가격은 제대로 예측하지 못하고 있는 것을 알 수 있었다. 이는 모델이 훈련 데이터에 과소적합된 사례라고 볼 수 있다. 2. 의사결정나무 의사결정나무를 통해 값을 예측해본 결과 RMSE 값이 0이 나왔다. 이는 과적합일 경우가 매우 크며, 위 모델을 교차..

머신러닝 알고리즘에 데이터를 학습시키기 전에, 갖고 있는 데이터를 준비해야 한다. 데이터 정제 대부분의 머신러닝 알고리즘은 결측치를 다룰 수 없기 때문에 이를 처리하는 함수를 만든다. total_bedrooms 변수에 값이 없는 경우가 몇개 있었기 때문에 이를 정제하려 한다. 세가지 방법이 있는데 이는 다음과 같다. 해당 구역을 제거한다. 전체 특성을 삭제한다. 특정 값으로 채운다.(0, 평균, 중앙값 등) 여기서는 사이킷런의 SimpleImputer를 사용한다. 누락된 값을 변수의 중간값으로 대체한다고 지정하여 SimpleImputer의 객체를 생성한다. 중간값은 수치형 변수에서만 계산될 수 있기 때문에 텍스트 변수인 ocean_proximity를 제외한 데이터 복사본을 생성한다. imputer 객체의..

EDA (Exploratory Data Analysis) - 데이터 이해를 위한 탐색과 시각화 EDA 란 수집한 데이터를 다양한 각도에서 관찰하고 이해하는 과정을 의미한다. 머신러닝 모델을 만들기 이전에, 시각화나 통계적인 방법으로 자료를 직관적으로 바라보는 과정을 거친다. EDA가 필요한 이유 데이터의 분포 및 값을 검토함으로써 데이터가 표현하는 현상을 이해할 수 있음 아웃라이어, 즉 데이터 분포에서 비정상적으로 벗어난 값을 파악할 수 있음 다양한 각도에서 데이터를 살펴보는 과정을 통해 문제 정의 단계에서 미처 발견하지 못한 다양한 패턴을 발견한다. 또한 이를 바탕으로 가설을 수정하거나 새로운 가설을 세울 수 있음 EDA의 과정 분석의 목적과 변수가 무엇이 있는지 확인. 개별 변수의 이름이 설명을 필요..

개요 1990년대 캘리포니아 인구조사 데이터를 사용해 캘리포니아의 주택 가격 모델을 만든다. 데이터는 StatLib 저장소에 있는 캘리포니아 주택 가격 데이터셋을 사용한다. 이 데이터는 캘리포니아의 블록 그룹(block group)마다 인구(population), 중간 소득(median income), 중간 주택 가격(median housing price) 등을 담고 있다. 이 데이터를 통해 모델을 학습시켜서 다른 측정 데이터가 주어졌을 때 해당 구역의 중간 주택 가격을 예측하는 모델을 만든다. 문제 정의 본 데이터는 레이블된 훈련 샘플이 있기 때문에 지도 학습(supervised learning)작업이며, 값을 예측해야 하므로 회귀(regression)문제이다. 구체적으로 예측에 사용할 특성이 여러개이..