본문 바로가기
개발노트/머신러닝

[머신러닝] 특성공학과 규제 #1

by 전지적진영시점 2023. 3. 21.
반응형

개발 환경

---------------------------------

OS : Mac

개발 툴 : colab 

개발 언어 : python

---------------------------------

 

특성 공학 

기계 학습 및 패턴인식 분야에서 중요한 개념 중 하나로, 원시 데이터로부터 유용한 특성을 추출하거나 생성하는 과정을 말한다.

기계학습 모델은 입력 데이터로부터 특성을 추출하여 출력을 예측하는데, 이때 입력 데이터의 특성이 어떻게 추출되느냐에 따라 모델의 성능이 크게 달라질 수 있다.

 

특성 공학의 과정

  • 데이터 수집 :  데이터를 수집하여 데이터의 특성을 분석
  • 특성 추출 : 분석된 데이터를 기반으로 유용한 특성을 추출한다. 기계 학습 모델이 잘 학습할 수 있도록 특성을 선택하고 변형하는 과정이 포함될 수 있음.
  • 특성 변환 : 추출된 특성을 변환하여 기계학습 모델에 적합한 형태로 만듦, ex) 정규화, 이진화, 범주화 등
  • 모델 학습 : 추출된 특성을 기반으로 기계학습 모델을 학습시킴

[실습]

1. 데이터 준비하기

 

- 세개의 특성 데이터와 타깃 데이터를 준비했습니다.

특성 데이터 : perch_full -> 데이터 분석 라이브러리인 pandas 를 사용하여 웹 브라우저에 있는 csv 파일을 읽어왔습니다.
훈련 데이터 : fish_weight

 

- train_test_split 메서드를 이용해 데이터를 훈련세트와 테스트 세트로 나눴습니다.

import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv('https://bit.ly/perch_csv_data')
perch_full = df.to_numpy()

fish_weight = np.array([5.9, 32.0, 40.0, 51.5, 70.0, 100.0, 78.0, 80.0, 85.0, 85.0, 110.0,
       115.0, 125.0, 130.0, 120.0, 120.0, 130.0, 135.0, 110.0, 130.0,
       150.0, 145.0, 150.0, 170.0, 225.0, 145.0, 188.0, 180.0, 197.0,
       218.0, 300.0, 260.0, 265.0, 250.0, 250.0, 300.0, 320.0, 514.0,
       556.0, 840.0, 685.0, 700.0, 700.0, 690.0, 900.0, 650.0, 820.0,
       850.0, 900.0, 1015.0, 820.0, 1100.0, 1000.0, 1100.0, 1000.0,
       1000.0])

train_input, test_input, train_target, test_target = train_test_split(perch_full, fish_weight, random_state=42)

 

 

 

2. 특성 추출 및 변환

 

https://jpointofviewntoe.tistory.com/145

 

[머신러닝] 사이킷 런 변환기, PolynomialFeatures

개발 환경 --------------------------------- OS : Mac 개발 툴 : colab 개발 언어 : python --------------------------------- 사이킷 런의 변환기 사이킷 런은 파이썬에서 사용할 수 있는 머신 러닝 라이브러리 중 하나

jpointofviewntoe.tistory.com

 

위 게시물에서 사이킷 런 변환기에 대해 정리하였습니다.

 

- PolynomialFeatures 클래스의 객체를 생성하고 1번에서 생성한 훈련 데이터를 학습하여 새롭게 만들 특성 조합을 찾고 

- transforms() 메서드를 사용하여 실제 데이터로 변환합니다.

from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(include_bias=False)

poly.fit(train_input)
train_poly = poly.transform(train_input)

 

 

 

[출력 결과]

 

9개의 특성이 만들어졌습니다.

 

- 테스트 세트도 변환하겠습니다.

test_poly = poly.transform(test_input)

 

 

모델 학습은 다음 포스팅에 이어서 작성하겠습니다.

 

 

https://jpointofviewntoe.tistory.com/147

 

[머신러닝] 특성공학과 규제 #2

개발 환경 --------------------------------- OS : Mac 개발 툴 : colab 개발 언어 : python --------------------------------- https://jpointofviewntoe.tistory.com/146 [머신러닝] 특성공학과 규제 #1 개발 환경 ---------------------------

jpointofviewntoe.tistory.com

 

반응형

댓글