https://www.kaggle.com/dgawlik/house-prices-eda/notebook

 

House Prices EDA

Explore and run machine learning code with Kaggle Notebooks | Using data from House Prices - Advanced Regression Techniques

www.kaggle.com

 

  • Ally (건물 접근 유형)
    • 평균이 FV 가 젤 높다. / 젤 작은 값과 젤 큰 값의 차이가 큼
    • 그렇지만 RL의 가격 분포가 넓다.
  • lotShape 
    • 건물 모양이 작을 수록 가격이 낮음
    • Pave - 분포가 넓고, 가격 차이가 많이 남
  • LandContour (건물의 평탄함 정도)
    • pave가 평균이 젤 높다. 
    • 그렇지만 missing이 더 많고 가격 분포도 넓다.
  • utilities (유틸리티 유형)
    • IR2가 평균이 젤 높음
  • LotConfig (로트 구성)
    • HLS가 평균이 제일 높다
    • HLS가 젤 큰 값과 작은 값의 차이가 많이 난다 -> 평균에 영향있음
    • LV1의 이상치가 많다. 
  • LandSlope (건물의 경사)
    • NoSeWa : 가격이 한개인가봐
    • AlllPub : 이상치 많음, 평균이 낮음
  • Exterior1st
    • Shed 가 평균이 젤 높고, 넓게 안 퍼짐
  • Exterior2st  (집 외부 덮는것)
    • WdShngl 이 평균이 제일 높다.
    • 낮은 가격에서도 가격 변동이 크다. 
  • MasVnrType  (돌쌓기 공사 veneer유형)
    • CemntBd :  높은 가격중에서도 가격 변동이 큼
    • Stone , ImStucc: 평균이 젤 높음
  • ExterQual (외부 재료 품질)
    • CmentBd 가 젤 평균 가격이 높음 
      • 그렇지만, 높은 가격 중에서도 가격 폭이 넓음
    • AsbShng이 젤 평균 가격 낮음
  • BsmtFinType이 Gd가 높음
  • GarageFinish, MiscFeature 는 Ex가 높음

 

 

'study > Kaggle' 카테고리의 다른 글

[House Prices] 정규화된 선형 회귀 모델  (0) 2021.12.28
[House Prices] 데이터 필드 분석  (0) 2021.12.27

Regularized Linear Models

https://www.kaggle.com/apapiu/regularized-linear-models

 

 

Regularized Linear Models

Explore and run machine learning code with Kaggle Notebooks | Using data from House Prices - Advanced Regression Techniques

www.kaggle.com

  • 숫자를 log_transform 하는게 핵심!

matplotlib.rcParams['figure.figsize'] = (12.0, 6.0)
prices = pd.DataFrame({"price":train["SalePrice"], "log(price + 1)":np.log1p(train["SalePrice"])})
prices.hist()
  • rcParmas
    • 그래프를 그리기 위해서 사용
    • 딕셔너리 값을 이용해서 그림
  • log(price + 1)을 이용하여 치우친 숫자를 좀 완화시킴
  • 정규화 됨

skewed_feats = train[numeric_feats].apply(lambda x: skew(x.dropna())) #compute skewness
skewed_feats
  • skew : 왜도
 

[Scipy.stats] 왜도(Skew) / 첨도 (Kurtosis)

from scipy.stats import skew, kurtosis # 왜도 skew(data) # 첨도 kurtosis(data, fisher=True) 왜도 (Skewness) - 분포의 비대칭도. - 정규분포 = 왜도 0 - 왼쪽으로 치우침 = 왜도 > 0 - 오른쪽으로 치우침 =..

mizykk.tistory.com

 


all_data = pd.get_dummies(all_data)
  • get_dummies를 이용하여 결측값 제외하고 0과 1로 구성된 더미값이 만들어짐
    • object값들
  • dummy_na = True를 이용하면, 결측값도 인코딩하여 처리해줌

 


def rmse_cv(model):
    rmse= np.sqrt(-cross_val_score(model, X_train, y, scoring="neg_mean_squared_error", cv = 5))
    return(rmse)
  • rmse
    • cross_val_score를 사용해서 rmse를 알아본다. 
    • rmse는 낮을 수록 정확도가 높다고 보면 된다. 

 

matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)

preds = pd.DataFrame({"preds":model_lasso.predict(X_train), "true":y})
preds["residuals"] = preds["true"] - preds["preds"]
preds.plot(x = "preds", y = "residuals",kind = "scatter")

  1. lasso 모델이 예측한 x_train값을 preds로 
  2. true 행을 실제 y값으로해서 

residuals를 [실제값 - 예측한 값]

 


 

xgboost

# DMatrix : 전용 데이터 셋
dtrain = xgb.DMatrix(X_train, label = y)
dtest = xgb.DMatrix(X_test)

params = {"max_depth":2, "eta":0.1}
model = xgb.cv(params, dtrain,  num_boost_round=500, early_stopping_rounds=100)​

 

  1. 파라미터
    • eta
      • 학습률과 같은 파라미터 
      • 0~1 사이 값
    • max_depth
      • 깊이라고 생각하면 됨
      • 높으면 특정 피쳐 조건에 특화 됨 -> 과적합 가능성 높음
      • 3~10 사이 값 적용
  2. CV()
    • 최적의 파라미터 구할 수 있는 api
  3. early_stopping_rounds
    • 조기중단,
    • 예측 오류가 더이상 개선 안 되면 반복 끝까지 수행하지 않고 중지
  4. num_boost_rounds 
    • 결정트리의 갯수 지정

https://velog.io/@sset2323/04-06.-XGBoosteXtra-Gradient-Boost

 

04-06. XGBoost(eXtra Gradient Boost)

위키북스의 파이썬 머신러닝 완벽 가이드 책을 토대로 공부한 내용입니다.

velog.io

 

model_xgb = xgb.XGBRegressor(n_estimators=360, max_depth=2, learning_rate=0.1)
model_xgb.fit(X_train, y)
  • 회귀를 위한 XGBRegressor
    • eta -> learning_rate
    • n_extimators : 생성될 트리의 개수

 

 

[결론]

  • tain, test합치고
  • 타입이 object아닌 값 중에서 비대칭도가 왼쪽으로 0.75 치우친 값만 log취함
  • ridge 모델, lasso모델 비교 -> rmse값이 lasso가 낮아서 선택함
  • xgboost 값 비교함 
  • xgboost 값 * 0.7 + lasso * 0.3 더했음 ( 왜 더했는지 모르겠다,,)

'study > Kaggle' 카테고리의 다른 글

[House Prices-2] House Prices EDA  (0) 2021.12.28
[House Prices] 데이터 필드 분석  (0) 2021.12.27

https://www.kaggle.com/c/house-prices-advanced-regression-techniques

 

House Prices - Advanced Regression Techniques | Kaggle

 

www.kaggle.com

 

  • 판매 가격(SalePrice) - 달러화 매매가격 (예측해야함)
  • MSSubClass - 빌딩 클래스
  • MSZoning - 일반 구역으로 분류하는 것
  • LotFrontage : 거리의 선형 피트?
  • LotArea : 로트 크기(제곱 피트)
  • Street : 도로 접근 유형
  • Alley : 골목 접근 유형
  • LotShape : 건물의 일반 모양
  • LandContour : 건물의 평탄함 정도
  • Utilities : 사용가능한 유틸리티 유형
  • LotConfig : 로트 구성
  • LandSlope : 건물의 경사
  • Neighborhood : Ames 시 경계 내의 물리적 위치
  • Condition1 : 도로 또는 철도와의 근접함
  • Condition2 : 도로 또는 철도와의 근접함 (만약 초가 있는 경우?)
  • BldgType : 주택 유형
  • HouseStyle : 주택 스타일
  • OverallQual : 전체적인 재료, 마감 품질
  • OverallCond : 전체적인 상태 순위
  • YearBuilt : 시공일자 (만든 일)
  • YearRemodAdd : 리모델링 일자
  • RoofStyle : 지붕 스타일
  • RoofMatl : 지붕 재료
  • Exterior1st : 집 외부 덮는 것
  • Exterior2nd : 집 외부 덮는 것 (만약 재료가 더 있으면)
  • MasVnrType : 석조(돌 쌓기 공사) veneer 유형
  • MasVnrArea : 석조 veneer 면접 (평방피트)
  • ExterQual: 외부 재료 품질
  • ExterCond: 외관의 자재 현황
  • Foundation: 기초 유형
  • BsmtQual: 지하실 높이
  • BsmtCond: 지하실의 일반 상태
  • BsmtExposure: Walkout 또는 정원 레벨 지하실 벽
  • BsmtFinType1: 지하실 마감 면적 품질
  • BsmtFinSF1: 타입 1 마감 평방 피트
  • BsmtFinType2: 있는 경우) 두 번째 마감 영역의 품질
  • BsmtFinSF2: 타입 2 마감 평방 피트
  • BsmtUnfSF: 미완성된 자하실의 평방피트
  • TotalBsmtSF: 지하실의 총 평방피트
  • Heating: 난방 유형
  • HeatingQC: 난방의 품질 및 상태
  • CentralAir: 중앙 에어컨
  • Electrical: 전기 시스템
  • 1stFlrSF: 1층 평방 피트
  • 2ndFlrSF: 2층 평방 피트
  • LowQualFinSF: 모든 층의 저품질 마감 평방 피트
  • GrLivArea: 지상 거주 지역 평방 피트
  • BsmtFullBath: 지하 전체 욕실
  • BsmtHalfBath: 지하 반쪽 욕실
  • FullBath: 지상 전체 욕실
  • HalfBath: 지상 반쪽 욕실
  • Bedroom: 지하 1층 이상의 침실 수
  • Kitchen: 주방 갯수
  • KitchenQual: 주방 품질
  • TotRmsAbvGrd: 총 지상 객실 수 (화장실 포함 안 함)
  • Functional: 집의 기능 등급
  • Fireplaces: 벽난로의 수
  • FireplaceQu: 벽난로 품질
  • GarageType: 차고 위치
  • GarageYrBlt: 차고가 지어진 년도
  • GarageFinish: 실내 내부 마감
  • GarageCars: 자동차 용량의 차고 크기
  • GarageArea: 평방피트 단위의 차고 크기
  • GarageQual: 차고 품질
  • GarageCond: 차고 상태
  • PavedDrive: 포장 도로
  • WoodDeckSF: 목재 데크 면적 (평방 피트)
  • OpenPorchSF: 열린 현관 영역(평방 피트)
  • EnclosedPorch: 닫힌 현관 영역(평방 피트)
  • 3SsnPorch: 3계절 현관 면적(평방 피트)
  • ScreenPorch: 스크린 현관 면적(평방 피트)
  • PoolArea: 수영장 면적(제곱 피트)
  • PoolQC: 수영장 품질
  • Fence: 울타리 품질
  • MiscFeature: 다른 범주에서는 다루지 않는 기타 기능
  • MiscVal: $기타 기능 값
  • MoSold: 판매된 달
  • YrSold: 판매된 년도
  • SaleType: 판매 종류
  • SaleCondition: 판매 상태

'study > Kaggle' 카테고리의 다른 글

[House Prices-2] House Prices EDA  (0) 2021.12.28
[House Prices] 정규화된 선형 회귀 모델  (0) 2021.12.28

+ Recent posts