728x90
- 상대경로는 현재 경로를 기준으로 하는 경로
EX) / 루트 (가장 최상의 디렉토리로 이동 / Web root)
./ 현재경로를 의미합니다.
../ 상위 경로를 의미합니다. - 절대경로는 전체 경로를 다 지정하는 경로
ex) 윈도우 C: 부터 시작하는 경로입니다.
절대경로를 사용하면 다른 사람의 컴퓨터에서 동작하지 않기 때문에 되도록이면 상대경로를 사용하는 것을 권장합니다.
상대경로에서 기본적으로 같은 위치를 뜻하는 키워드는 . 입니다.
dt 접근자 관련 참고링크
https://pandas.pydata.org/docs/reference/series.html#datetimelike-properties
<정리>
로그(Logarithm)
- log를 count값에 적용하게 되면 한쪽에 너무 뾰족하게 있던 분포가 좀 더 완만한 분포가 됩니다.
- 데이터에 따라 치우치고(skewed) 뾰족한 분포가 정규분포에 가까워지기도 합니다.
- log를 취한 값을 사용하게 되면 이상치에도 덜 민감하게 됩니다.
- 스케일값이 감소한다
np.log1p(x)
- np.log(x + 1)과 같은 표현이다
- 1을 더해주는 이유는 1보다 작은 값에서 음수를 갖기 때문
- 가장 작은 값인 1을 더해서 음수가 나오지 않게 하기 위함
np.expm1
- X == np.expm1(np.log1p())
- log변환을 통해 모델을 예측했다면, 제출할 때 꼭 expm1로 지수변환해주기
(다시 복원안해주면 제출 시 점수 엉망이된다!)
정규분포
- 값을 볼 때 한쪽에 너무 치우쳐져 있고(왜도) 뾰족하다면(첨도) 특성을 제대로 학습하기가 어렵다.
- 분포가 정규분포의 형태를 가진다면 특성을 고르게 학습할 수 있다.
로그함수와 지수함수
- np.exp 는 지수함수
- np.log로 로그를 취했던 값을 다시 원래의 값으로 복원할 수 있다.
- log 값으로 예측한 값을 원래대로 돌려놓는 것
- log를 취할 때는 1을 더하고 로그를 취하지만, 지수함수를 적용할 때는 반대의 순서로 복원한다.
- np.exp로 지수함수를 적용하고 -1 을 해주어야 로그를 취했던 순서를 복원해 주게 됩니다.
- np.expm1은 지수함수를 적용하고 -1을 해주는 순서로 되어있습니다.
count == np.expm1(np.log1p())
#둘은 같은 값이다
train["count_expm1"] = np.exp(train["count_log1p"]) - 1
train[["count", "count_log1p", "count_expm1"]]
정규분포가 머신러닝에 왜 좋은 것인가❓
- 머신러닝, 딥러닝에서 대체로 더 좋은 성능을 냄
- 값을 볼 때 한쪽에 치우치고 뾰족하다면 특성을 제대로 학습하기가 어려움
- 정규분포로 되어 있다면 특성을 고르게 학습할 수 있음
Feature Engineering
정의
데이터에 대한 지식을 바탕으로 피처를 생성, 변경, 삭제 등 조작하여 사용하기 더 유용한 형태로 바꾸는 것
분류
- 특성 선택(Feature Selection)
해당 분야의 전문가의 의견으로 특성의 중요도에 따라 일부를 버리거나 선택 가능 - 특성 추출(Feature Extraction)
특성을 버리거나 선택이 아닌 특성의 조합으로 새로운 특성을 생성 - 범위 변환(Scaling)
변수의 분포 편향(한쪽으로 쏠려있는..), 이상치 많이 존재하는 경우 등 변수의 특성이 잘 드러나지 않고 활용하기 어려운 경우 범위 바꿔주는 작업 >> 로그 변환 사용 가능 - 변형(Transform)
기존에 존재하는 변수의 성질을 이용해 새로운 변수 생성하는것 - 범주화(Binning)
수치형(연속형) 변수를 범주형으로 변환 - 숫자화(Dummy)
범주형을 수치형(연속형)으로 변환
일반적인 데이터 분석 순서
- 데이터 수집, 데이터 전처리, 탐색적 데이터 분석(EDA), 특성 공학(Feature Engineering), 그 외 필요한 경우 머신러닝 등
- 이와 같은 작업들이 꼭 순서를 지켜서 이뤄지지 않고, 아주 엄밀하게 구분된 영역이라 하기도 어려움
Feature
Feature Engineering을 위해서는Feature에 대해서 알 필요가 있습니다.
타입 | 서브타입 | 정의 | 예시 |
Categorical | Nominal | 순서없는 범주형 변수 | 성별, 음료수 종류 |
Ordinal | 순서있는 범주형 변수 | 성적, 등급 | |
Numerical | Discrete | 유한, 개수 헤아릴 수 있는 수치형 변수 | 물건의 개수, 행동의횟수 |
Continuous | 무한, 개수 헤아릴 수 있는 수치형 변수 | 물건의 가격, 시간 |
해당 과정 전에 전처러, EDA를 먼저 해보는 것 중요
(데이터에 대해 알지 못하면 피처 엔지니어링 방향 집기 어렵기 때문)
이상치 발견 방법
- 일정 범위에서 동떨어져 있는 경우
- 시각화
- 기술통계
- 박스플롯에서 범위 벗어나는 경우
이상치 학습 방해
- 이상치로 인해 과대적합/과소적합 될 수 있음
- 결과값의 정확도가 낮아짐
희소값
- Numerical Feature에서 대부분 값이 갖는 범위에서 벗어난 값을 이상치라고 함
- Categorical Feature에서 빈도가 낮은 값을 회소값이라고 함
희소값이 생기는 이유
1. 데이터 수집 과정에서 자연스럽게 비율 높은 것과 낮은 것이 생긴다)
2. 비율이 낮은 것이 희소값이 됨
희소값을 찾아야 하는 이유
1. 데이터 해석을 어렵게 하고 머신러닝 성능 낮출 수 있음
2. 데이터 경향 파악 어려움
참고자료 :
멋쟁이 사자처럼 AI School 7기 수업내용
728x90
'TIL > 머신러닝' 카테고리의 다른 글
11.14일 주택가격 피처엔지니어링 0702 (0) | 2022.11.16 |
---|---|
11/10 머신러닝 주택가격 피처엔지니어링 (0) | 2022.11.10 |
11.08 머신러닝 bike log 회귀 (0) | 2022.11.09 |
공부한거 정리해보기 (0) | 2022.11.03 |
22.10.31 (0) | 2022.10.31 |
댓글