[N111] TIL 및 회고

Sea Panda·2022년 10월 7일
0

부트캠프 TIL

목록 보기
1/46


10월 7일. 드디어 오늘 개강을 했다. 첫 날이라서 OT만하고 끝나려나 했는데 아니였다. python책 안훑고 들었으면 진짜 처음부터 눈물 났을 거 같다. 그래도 pandas라이브러리는 처음 써봐서 머리가 나름 아팠다. SQL책도 끝내야하는데 그럴 시간이 있을까 의문이긴 하다.

그래서 일단 목표는 부트캠프 기간동안은 다른 잡다한 거는 좀 치워두고 일단 부트캠프에 집중하려고 한다. 목표는 매일 배운 내용 간단하게 정리와 회고글 작성인데 1주일은 지켰으면 좋겠다. 제발...

들어가기 전에

성격 상 정리할 내용을 압축해 놓고 시작안하면, 하루 종일 처음부터 끝가지 정리한다고 시간 보낼 거 같아서 무엇을 어떤 식으로 정리할건지 여기서 정하고 넘어가야겠다.

  1. 핵심 개념만 정리한다.
  2. 처음 사용한 명령어는 그 사용법과 주의사항만 간결하게 정리
  3. 발생한 Error와 그 해결 방법을 간결하게 작성
    -> 만약 해결 못한 Error의 경우 미해결이라 작성 후 넘어간다.

0. 학습목표

  • EDA에 대하여 이해한다.
  • Feature Engineering의 목적을 이해할 수 있다.

1. 주요 개념

1. EDA

EDAExploratory Data Analysis(탐색적 데이터 분석)의 줄임말로 데이터를 분석하고 결과를 내는 과정에 있어서 지속적으로 해당 데이터에 대한 '탐색과 이해'를 기본으로 가져야 한다는 것을 의미한다. 다른 말로는 본격적인 데이터 분석에 들어가기 앞 서 데이터를 뜯어보는 과정이라 할 수 있다.

2. Feature Engineering

실제로 많은 데이터들은 매우 지저분한 상태로 존재한다. 이런 데이터는 머신러닝과 같은 모델에서 제대로 작동하지 않는다.

따라서 세세한 분석과 모델의 성능을 높이기 위하여 feature를 재조합하여 의미있는 데이터를 추가적으로 만들어 줄 수 있다. 이러한 과정을 Feature Engineering (특성공학) 이라고 한다.

즉, 수학적인 연산과 도메인 지식을 이용하여 Raw data로부터 유용한 Feature를 도출해내는 것이다.

2. 추가 개념

1. 라이브러리

전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것이 라이브러리이다. 라이브러리는 크게 두가지의 이유로 사용한다.

  1. 모든 기능을 직접 코딩하지는 못하기 때문에
  2. 시간 절약을 위해서

부트캠프에서는 주로 데이터 분석을 위하여 pandas, numpy, matplotlib.pyplot 과 같은 라이브러리를 사용한다.

2. 메서드

클래스 내부에서 정의되어 사용된다. 함수와 비슷한 개념이지만 함수가 더 포괄적인 의미를 담고있다. 주로 소스코드의 가독성과 재사용성 때문에 사용된다.
[출처] https://sightsee.tistory.com/73

3. Error

다양한 에러가 존재하지만 흔히 볼 수 있는 error 3가지에 대해 정리하겠다.

3-1. ValueError

부적절한 값을 가진 인자를 받았을 때 발생하는 에러이다. int()의 괄호 안에 문자를 입력한다던지, 참조값이 없는 인자를 입력으로 주었을 때 발생한다.

3-2. NameError

지역변수, 전역변수 이름을 찾을 수 없는 경우에 발생하는 에러이다. 주로 선언하지 않은 변수를 그대로 사용하려 할 때 발생하는 에러이다.

3-3. SyntaxError

파이썬 문법에 오류가 발생하면 발생하는 에러이다. if문과 같은 조건문이나 반복문을 실행할 때 콜론(:)을 빼먹는 것이 가장 흔한 예시이다.

3. 명령어

1. .read_csv , .read_exel

EDA를 시행하기 위해서는 데이터가 필요하다. .read_(파일확장자)는 pandas 라이브러리의 메서드이다. 각각 파일확장자에 해당하는 데이터 파일을 불러온다.

  • csv: comma separated value로 콤마로 구분되는 데이터 파일을 불러온다.
  • exel: 엑셀 파일을 불러온다.

만일, csv파일을 불러올 때 콤마(,)로 구분되어 있는 것이 아닌 다른 문자로 구분되어 있을 경우 다음과 같은 양식으로 불러온다.

example = example.read_csv('파일명', sep = '(구분 문자)')

2. shape

데이터의 Row와 Column의 개수를 확인할 때 사용한다.

print(example.shape)

위와 같은 양식으로 입력하며 (Row, columns)의 형태로 출력된다.

3. 각 Feature에 대한 정보

3-1. info()

example.info()

위와 같은 형식으로 실행하며 출력결과는 각 열의 인덱스와 이름, Non-null Count, data type을 출력한다.

3-2. describe()

example.describe()

info()와 달리 describe()는 출력으로 각 열의 평균, 표준편차, 사분위값 등 통계적 값을 출력한다.

4. duplicated()

중복 데이터 유무를 확인하고 싶을 때 duplicated()를 사용한다. 이때 단독으로 사용하지는 않고, 중복 데이터의 수를 확인하고 싶으면 sum, 중복된 데이터 제거를 위해서는 drop과 함께 사용한다.

example.duplicated().sum() # 중복 데이터 개수 확인
example = example.drop_duplicates() # 중복 데이터 제거

5. .reset_index(drop = True)

중복 데이터를 제거할 경우 index는 자동으로 정렬되지 않으므로 인덱스를 다시 재 정렬 해주어야한다. 그럴 경우 .reset_index(drop = True)를 사용한다.

example = example.reset_index(drop = True)

여기서 drop = True로 설정하면 인덱스 열을 보통의 자료열로 올리는 것이 아닌 그냥 버리게 된다.

❗️ 참고 사이트: https://datascienceschool.net/01%20python/04.05%20%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%94%84%EB%A0%88%EC%9E%84%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%20%EC%A1%B0%EC%9E%91.html

6. .repeat()

example = np.repeat('(반복하고 싶은 내용)',len(example))

반복하고 싶은 내용를 나타내는 len()만큼의 길이를 가지는 array를 생성한다.

7. .append()

dataframe을 합칠 때 주로 사용한다. 양식은 다음과 같다.

example = example1.append(example2, ignore_index = '(True or False)`)

True를 입력하면 기존의 index열의 내용이 숫자로 대체된다.

1일차 회고

이제 시작이다. 진짜 컨디션 관리 잘해야될 거 같은 일정이라고 느꼈다. 그리고 실제로 많은 것을 알려주지 않는다. 내가 얼만큼 찾아서 주워먹냐가 제일 중요한 수업인거 같다.

0개의 댓글