blog.naver.com/gdpresent/221730873049
참고
1. sklearn.pipeline
<Pipeline>
fit, transform 메서드가 있는 변환기를 순서를 고려해서 묶어둔 것
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
num_pipeline = Pipeline([
('imputer', SimpleImputer(strategy='median')),
('attribs_adder', CombinedAttributesAdder()), #직접 만든거. 특성 추가하는 변환기
('std_sclaer', StandardScaler()),
])
housing_num_tr = num_pipeline.fit_transform(housing_num)
type(housing_num_tr)
#numpy.ndarray
2. sklearn.compose
<ColumnTransformer>
sklearn.compose의 ColumnTransformer 클래스는, 열마다 pipeline또는 변환기를 적용할 수 있다.
from sklearn.compose import ColumnTransformer
num_attribs = list(housing_num) #숫자형 특성의 이름
cat_attribs = ['ocean_proximity'] #범주형 특성의 이름
full_pipeline = ColumnTransformer([
('num', num_pipeline, num_attribs),
('cat', OneHotEncoder(), cat_attribs)
])
housing_prepared = full_pipeline.fit_transform(housing)
type(housing_prepared)
#numpy.ndarray
위 예제에서 num_pipeline은 밀집행렬을 반환하지만 OneHotEncoder은 scipy의 희소행렬을 반환한다. 밀집도가 임계값(기본값 sparse_threshold=0.3)보다 낮으면 희소 행렬을 반환한다. 이 예에선 밀집행렬이 반환된다. 혹시 희소행렬이 반환된다면 toarray()로 밀집행렬로 만들면 된다.
'ML&DATA > ML' 카테고리의 다른 글
sklearn - impute (0) | 2020.10.02 |
---|---|
sklearn - model_selection (0) | 2020.10.02 |
sklearn - make_classification (0) | 2020.09.01 |
sklearn - preprocessing (0) | 2020.08.31 |