# Feature Engineering

35개의 포스트

Handling Missing Values

Missing Values 결측값(missing values)의 처리에 대해서 다뤄보겠습니다. 1. Discover missing values 먼저 결측치를 찾아봅시다. 다음과 같이 isnull()을 이용하거나 info() 등으로 확인 가능합니다. 1.1. isnull, info 결측치가 있는 column확인 결측치가 많은 컬럼 순으로 확인 다음과 같이 info()로 확인할 수 도 있습니다. 1.2. Empty string 간혹 null이 아닌 그저 비어있는 스트링 ""이 존재하는 경우가 있는데 이는 isnull에 잡히지 않습니다. 이를 바꿔주고 다시 isnull을 해보는 것이 좋습니다. 2. Handle missing values 결측치를 찾았다면 이를 조치할 수 있는 방법은 크게 세가지가 있습니다. Removal Imputation Using other learning algorithm

2023년 5월 13일
·
0개의 댓글
·

generate partial polynomial features

입력되는 데이터 셋 모두에 cols=[] 컬럼이 유효해야 함.

2023년 4월 22일
·
0개의 댓글
·

다중공선성(multicollinearity) 판단을 위한 VIF 계산

VIF 값 해석 VIF = 1: 예측 변수와 모델의 다른 예측 변수 간에 다중공선성이 없음 1 < VIF < 5: 일반적으로 이 범위는 허용 가능한 범위로 간주 VIF ≥ 5: 중간에서 높은 정도의 다중공선성이 있음을 나타내며, 다중공선성 문제를 해결할 필요가 있습니다. VIF ≥ 10: 일반적으로 VIF 값이 10 이상인 경우 다중공선성을 해결하는 것이 좋습니다. 높은 VIF 값 처리 높게 상관된 예측 변수 중 하나를 제거 상관된 예측 변수들을 결합하여 공유된 정보를 나타내는 새로운 특성을 생성 Ridge 회귀 또는 Lasso 회귀와 같은 정규화 기법을 사용 주성분 분석(PCA)과 같은 차원 축소 기법을 적용하여 상관된 예측 변수를 상관 관계가 없는 새로운 변수 집합으로 변환

2023년 4월 14일
·
0개의 댓글
·
post-thumbnail

Feature engineering이란

Feature engineering이란 Feature Engineering은 모델 정확도를 높이기 위해서 주어진 데이터를 예측 모델의 문제를 잘 표현할 수 있는 features로 변형시키는 과정으로'머신러닝 알고리즘을 작동하기 위해 데이터의 도메인 지식을 활용해 feature를 만드는 과정'이다. Feature engineering 종류 1. 정규분포화 대부분의 통계기법은 데이터의 분포가 정규분포인 가정에서 만들어진게 대부분이다. 따라서, 특정 데이터의 분포가 정규분포가 아니라면 정규분포화 시켜주어야하는 작업이 필수적이다. 정규분포를 만드는 방법은 log 변환하거나 sqrt 변환하여 가능하다. ![](https://velog.velcdn.com/images/baeyuna97/post/a1

2022년 11월 18일
·
0개의 댓글
·

[혼자 공부하는 머신러닝+딥러닝] - CH.3-3 Feature Engineering Regularization

다중회귀: 여러 개의 특성을 사용한 선형 회귀 1개의 특성을 사용했을 때 선형회귀 모델은 직선을 학습하고, 2개의 특성을 사용하면 평면을 학습함 Feature Engineering(특성 공학): 기존의 특성을 사용해 새로운 특성을 뽑아내는 작업 ex) '농어 길이 x 농어 높이' 릿지 회귀 계수를 제곱한 값을 기준으로 regularization을 하는 릿지 회귀 ![](https://velog.velcdn.com/images/jailies/post/8c869e9d-ca18-4bf6-9025-fb38c06

2022년 11월 15일
·
0개의 댓글
·
post-thumbnail

[Day 44] feature engineering(2)

22.11.14. 지난 주에 이어 feature engineering에 대해 배우고 있다. 0701 변수 선택(Feature selection) 데이터에 존재하는 feature들 중 가치가 높은 feature를 선택하고 그렇지 않은 feature를 버리는 과정. 분산 기반 선택 feature가 대부분 다 같은 값으로 이루어져 있거나 모두 다른 값이라면, 해당 feature는 예측에 도움이 되지 않을 확률이 높다. 따라서 머신러닝 모델에서 해당 feature를 제거한다. 범주형 변수 중, 특정 범주가 90퍼센트 이상을 차지하는 변수들을 확인하였다. 해당 변수들은 예측에 도움이 되지 않을 확률이 높으므로 피쳐에서 제거하면 될 것 같다. 상관관계 기반 선

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

[Day 40, 41] feature engineering

22.11.08. ~ 22.11.09. 피쳐 엔지니어링에 대해 배웠다. 상당히 다양한 피쳐 엔지니어링 방법이 존재한다. 잘 익혀두고 적재적소에 활용하면 좋겠다! 내용들은 멋쟁이사자처럼 AI SCHOOL 7기 박조은강사님(오늘코드)의 자료를 참고하였습니다. 데이터 분석의 과정 데이터 분석에 정해진 과정과 순서는 없다. 그러나 대부분의 경우 데이터 수집 -> 데이터 전처리 -> 탐색적 데이터 분석(EDA) -> 피쳐 엔지니어링 -> 머신러닝 모델에 적용 의 과정을 거친다. 위 과정들은 서로 엄밀하게 구분된 영역도 아니며, 진행하다보면 얼마든지 순서가 뒤바뀌어 일어날 수 있는 과정이다. 그러나 내가 지금 하고 있는 일을 체계화하여 살펴보기 위해 해당 과정들을 나누어 진행해보면 좋다. 머신러닝의 전반적인 과정들을 살짝 체험했으니, 이 날부터는 피쳐 엔지니어링에 대해 공부해보았다. feature engineering 데이터에 대한 지식을 바탕으로 fe

2022년 11월 13일
·
0개의 댓글
·

인코딩과 피처 엔지니어링

Feature Engineering > Feature Engineering 은 머신 러닝 알고리즘이 작동할 수 있도록 하는 Feature들을 만드는 과정으로 그 과정에서 데이터에 대한 도메인 지식을 사용한다. Feature Engineering은 머신러닝의 적용에 있어서 근본적인 부분이며, 어려운 동시에 까다롭다. 하지만 이것이 적절히 수행되었을 때, 결과가 정말 좋다. 이것은 알고리즘이 잘 작동할지, 또는 작동하지 않을 지의 차이를 일으키는 중요한 요소이다. 인코딩? 인코딩이란 문자를 숫자로 변환하는 것으로 우리가 지금 배우고 있는 머신러닝에서는 문자형 변수가 있으면 오류가 발생하기 때문에 문자형 변수에 대해 인코딩 작업을 해주어야 한다. 머신러닝의 대표적인 인코딩 방식 레이블 인코딩 (Lable Encoding) 문자열 카테고리 값을 숫자형 카테고리 값으로 변환 **`원-핫 인코딩 (Ont-Hot

2022년 11월 10일
·
0개의 댓글
·
post-thumbnail

[MachineLearning] PUBG 승률 예측 머신러닝 모델링 - 배린이 탈출 프로젝트

PUBG Finish Placement Prediction - Kaggle BHC team Github repo - 코드 공유 개요 캐글 대회였던 PUBG 최종 승자 예측의 데이터를 활용하여 배그 초보자들에게 고수들이 어떻게 행동하는지를 데이터 근거와 함께 조언을 주려는 목적으로 프로젝트를 진행하였습니다. > PUBG란? : PlayerUnknown's Battel Grounds, 배틀그라운드라는 이름의 배틀로얄 방식의 게임, 100명의 플레이어가 비행기에서 뛰어내려 무기를 파밍하고 마주치면 싸우면서 제거, 강탈하며 최후의 1인(혹은 한팀)이 살아남을 때까지 진행하는 게임. 블루존(Blue Circle) 안에서 경기가 진행되며 이 밖에서는 자기장에 의해 사망

2022년 10월 28일
·
0개의 댓글
·
post-thumbnail

PCA(Principle Component Analysis)

PCA란? 차원축소 기법중 하나로 원데이터의 성질을 유지하면서 여러개의 feature들을 dimention reduction을 하여 feature간의 경향성을 파악하고, 주성분을 만들어 낸다. 주성분: 기존의 변수를 조합하여 서로 연관성이 없는 새로운 변수 등장배경 고차원의 데이터는 계산과 시각화가 어려워 분석하기가 쉽지 않다. 따라서 원 데이터의 분포를 가능한 유지하면서 데이터의 차원을 줄이는 것이 필요하다. 이를 dimensionality reduction라 한다. 물론 필요한 일부 변수의 데이터만 뽑아서 사용할 수 있지만 (feature selection), 변수들 사이에 어떤 밀접한 관계가 있는지는 미리 알 수가 없어서 이 경우 원데이터의 분포를 잘 반영한다고 볼 수는 없다

2022년 10월 23일
·
0개의 댓글
·
post-thumbnail

generalization, normalization, standardization

ML과 Feature Engineering에 관련된 단어들이죠. ML뿐만 아니라 DL에서도 매우 중요한 단어들입니다. 각각의 용어가 어떤 의미를 가지고 있으며 어떤 목적을 가지고 사용되는지 서술하세요. 특히, normalization과 standardization이 어떤 차이점을 가지고 있는지 상세히 작성해주시길 바랍니다. generalization(일반화)는 학습된 model이 학습에 사용된 data set에서만 좋은 성능을 나타내지 않고(학습에 활용된 data set에만 편향되어 있지 않고), 새로운 input data가 들어왔을때도 (동일하게) 좋은 성능을 나타내는 것을 말하며, model을 학습시킬때 이를 목표로 진행 하기도 합니다. normalization(정규화)는 2개 이상의 feature값이 있다고 가정할 경우, model이 학습할시에 필요한 각각의 feature의 value값을 동일하게 학습할 수 있도록 하는 것을 말하며, value값들을

2022년 8월 8일
·
0개의 댓글
·
post-thumbnail

heart attack data set analysis

heart attack data set feature sex > 0 : woman 1 : man cp : chest pain type > 0 : typical angina (all criteria present) 1 : atypical angina (two of three criteria satisfied) 2 : non-anginal pain (less than one criteria satisfied) 3 : asymptomatic (none of the criteria are satisfied) Restbps : Resting Blood pressure trestbps : resting blood pressure Chol : serum cholesterol in mg/dL Fbs : fasting blood sugar > 120 mg/dL (likely to be diabetic) > 1 = true 0 = false RestECG : R

2022년 7월 12일
·
0개의 댓글
·
post-thumbnail

한 번에 Graph 여러 개 같이 출력하기

graph tips seaborn을 이용하여 data visualization을 하던 중, for문을 통해 그래프가 하나 씩 나와 보기 불편하여 관련 기능을 찾아봤다. subplot 이용 > subplot(n, m, p) > - n x m의 사각형을 n/m으로 구역을 나눈다. > - p는 구간의 영역. exemple > 왼쪽부터 subplot(1, 3, 1) ~ subplot(1, 3, 3)으로 그래프 위치 할당

2022년 7월 10일
·
0개의 댓글
·
post-thumbnail

What is feature engineering

feature engineering > feature를 분석하여, 문제 해결에 더 적합하도록 feature를 가공하는 과정 log, sqrt, nomalization, new feature based on possession target에 유의미한 feature을 선택하는 것, categorical feature encoding, scale 조정 등 다양한 방법들을 이용하여, 우리의 모델이 더 나은 성능을 보일 수 있도록 한다. advantage > - 모델 예측 성능 향상 컴퓨터 연산 수행 비용 감소 Exemple > Linear Regression Model에 Length값을 넣었을 때 회귀선은 feature data를 잘 설명하지 못한다. data는 약간의 포물선

2022년 7월 10일
·
0개의 댓글
·
post-thumbnail

Feature Engineering

사진 출처 왜 Feature Engineering을 하는 것인가? 데이터의 종류는 정말 다양한만큼 EDA를 통해 데이터를 파악하는 작업이 매우 중요하다. 또한 EDA를 하면 Feature을 select해야 하는 경우도 자주 생기는데, 그것만을 이용해서 머신러닝을 돌리거나 분석을 하기에는 부족한 경우가 종종 생기곤 한다. 이러한 경우에 Feature Engineering이 필요하다. Feature Engineering의 대표적인 기법으로, 결측치 채우기 이상치 처리하기 변수 스케일링과 트랜스포메이션하기 로그 변환하기 Binning 하기 인코딩하기 파생변수 생성하기 등등이 있다. 결측치 채우기 데이터 속에 결측치가 있는 경우 이를 해결하기 위한 가장 간단한 방법으로는 .dropna()와 같음 함수를 이용하여 null이 있는

2022년 6월 28일
·
1개의 댓글
·

[EDA] 포켓몬으로 살펴보는 피처 엔지니어링 3

1편 링크 > >2편 링크 베이스라인 모델은 정확도 95%, Recall 0.62의 성능을 보였다. 이번엔 앞서 전처리했던 데이터를 가지고 학습을 시켜보자. 전체 컬럼 수는 45개로 기존의 13개에 비해 3배 넘게

2022년 5월 27일
·
0개의 댓글
·

[EDA] 포켓몬으로 살펴보는 피처 엔지니어링 2

전편에 이어서 작성한다. 데이터 전처리하기 EDA를 통해 어느 정도 데이터를 살펴봤다면, 얻은 정보나 가설 등을 기반으로 데이터를 모델에 사용하기 좋게 전처리를 해주어야 한다. Name >= 10 ? 앞서 이름의 길이가 10 이상인 포켓몬의 비율을 살펴봤는데, 모델은 문자열을 읽지 못하므로 이를 수치형 데이터로 변환해 준다. 이름 토큰 추출 Name은 unique하지만, 공유하는 특정 단어들이 있다. 따라서 특정 토큰을 가지고 있으면 전설 포켓몬을 판별할 수 있을지도 모른다. 포켓몬 이름

2022년 5월 27일
·
0개의 댓글
·

[EDA] 포켓몬으로 살펴보는 피처 엔지니어링 1

포켓몬 데이터로 피처 엔지니어링 연습하기 이번에 사용할 데이터는 캐글에 올라와 있는 포켓몬 데이터셋이다. > Ref. https://www.kaggle.com/datasets/abcsds/pokemon 캐글이나 모두의말뭉치같은 데이터 소스들은 데이터에 대한 간략한 설명을 함께 제공한다. 본격적인 분석 전에 이런 정보들을 통해 데이터셋을 이해하는 것은 필수 과정이다. 데이터 가져오기 target 데이터는 Legendary 컬럼에 있으므로 따로 추출한다. (1) 결측치 확인 Type2 컬럼에 386개의 결측치가 존재한다. 데이터 설명을 보니 속성을 1개만 가진 포켓몬의 수로 생각된다. (2) id \# 컬럼은 포켓몬의 id에 해당한다. 전체 데이터셋에 1대1 매칭이 불가능하므로 인덱스로 쓸 수

2022년 5월 24일
·
0개의 댓글
·

Feature Engineering

💡 Feature Engineering >* 피처 엔지니어링은 더 나은 모델 알고리즘을 위해 Raw data로부터 feature를 만들거나 재구성하는 과정이다. Feature engineering은 Feature selection, feature extraction, encoding 과정을 반복하면서 자신의 도메인 지식과 문제에 대한 이해를 결합하게 된다. ▪️ Feature selection : 여러 feature들 가운데서 일부를 선택하는 과정 ▪️ Feature extraction : 주어진 feature를 바탕으로 새로운 feature로 재구성 ▪️ Encoding : 머신러닝이 학습할 수 있도록 문자를 숫자로 변환하고 모델 성능을 높이는 절차 --- ❗Na, Null,

2022년 4월 15일
·
0개의 댓글
·

Feature Engineering

Feature = Column or a Dimension of a DataFrame Feature Engineering = Combining/Restructuring the existing datasets to create a new feature Important Steps: dtypes/df.info() Can check data type and other basic information Missing Values NaN/None, Null, NA etc. Ways to Deal with Missing Values: isnull() - returns T/F Booleans for missing values notnull() - the opposite of isnull() dropna() - drops missing values fillna() - replaces the mi

2022년 4월 13일
·
0개의 댓글
·