어제 짠 코드를 활용하여 한국어 단어 분류기를 만들었다.
여기에서 ratings_test.txt파일을 이용하여 학습을 진행했다.
같은 방법으로 진행하나 이 파일은 txt파일이고, 구분되어 있지 않으므로, 리뷰 코드, 문장, 긍정\부정을 다른 방식으로 잘라서 분류해주었다. 그외의 방식은 동일하게 진행한다.
다중 선형회귀 모델은 과적합이 일어날때가 있다.
따라서 정규화를 한다. 이는 과적합이 되지 않도록 모델을 강제로 제한하는 것을 의미하며, 가중치 값을 조정하여 제약을 준다. Ridge, Lasso, Elastic net Regression을 사용한다.
이 중 Ridge보다 Lasso가 더 강한 규제에 속한다.
from sklearn.linear_model import LinearRegression, Ridge
model = Ridge(alpha=0.1).fit(x_train, y_train)
사이킷런의 모델을 불러와서 사용하며 위에 코드와 같은 방법으로 학습시키고 사용한다.
알파값을 이용하여 규제를 조절해주며, 알파값이 클수록 선형에 가까워진다.
from sklearn.linear_model import LinearRegression, Lasso
model = Lasso(alpha=0.01).fit(x_train, y_train)
Lasso역시 사이킷런의 모델을 불러와서 사용한다. 이 모델은 알파값이 증가할 수록 사용하는 특성의 값도 증가한다.
즉, Ridge와 달리 모든 특성을 사용하지 않고 필요하다고 생각하는 특성만을 사용한다. 하지만 알파값이 증가할 수록 사용하는 특성의 수가 증가한다.
주로 Ridge 회귀를 사용하지만, 특성이 많고 그 중 일부만 사용하고자 한다면 Lasso 회귀를 사용하면 좋다.