-
Notifications
You must be signed in to change notification settings - Fork 0
week3
Minji Hong edited this page Jan 18, 2021
·
1 revision
- Address
train["Crossroad"] = train["Address"].str.contains("/")
sns.countplot(data=train, x="Crossroad")
plt.figure(figsize = (18, 64))
sns.countplot(data=train, hue="Crossroad", y="Category")
특정 도로에 집중적으로 발생하는 범죄를 알 수 있다. 교차점(Crossroad)과 그렇지 않은 부분(Block)이 특정 범죄에 따라 발생빈도의 차이가 있다.
- DayOfWeek
train_dayofweek = pd.get_dummies(train["DayOfWeek"], prefix = "DayOfWeek")
train = pd.concat([train, train_dayofweek], axis = 1)
test_dayofweek = pd.get_dummies(test["DayOfWeek"], prefix = "DayOfWeek")
test = pd.concat([test, test_dayofweek], axis = 1)
- PdDistrict
train_pddistrict = pd.get_dummies(train["PdDistrict"], prefix = "PdDistrict")
train = pd.concat([train, train_pddistrict], axis = 1)
test_pddistrict = pd.get_dummies(test["PdDistrict"], prefix = "PdDistrict")
test = pd.concat([test, test_pddistrict], axis = 1)
pd.get_dummies()를 이용하여 one-hot encoding 을 더 간단한 방법으로 실행한다. 옵션 중 prefix를 이용하여 새로 생성되는 더미 변수명을 지정할 수 있다.
- Crossroad
train["Crossroad"] = train["Address"].str.contains("/")
test["Crossroad"] = test["Address"].str.contains("/")
교차점(Crossroad)인지 아닌지에 따라 특정 범죄의 발생률에 차이가 있기 때문에 변수로 활용하기 위하여 새로운 컬럼 생성.
Lgb = LGBMClassifier(n_estimators=10, random_state=37)
기존의 코드로 돌렸더니 오류. parameter에 대해 더 알아본 후 수정하기로 하고, 제일 기본 상태로 수정. 해당 모델로 변경 후 score가 눈에 띄게 좋아졌다! = 현재 상위 40%