[KT AIVLE SCHOOL] 12주차: 6차 미프

ofohj·2023년 4월 24일
0

KT AIVLE SCHOOL AI 3기

목록 보기
12/21
post-thumbnail

프로젝트 1

0. 소개

  • 주제 : 챗봇 서비스 개발
  • 사전학습 과목: 데이터 분석, 전처리, 머신러닝
  • 데이터 출처 : 에이블 스쿨 자체 제작
  • 데이터 구분: 텍스트

1. 전처리

  • 형태소 분석 및 토큰화: mecab 사용

2. 모델링

  • 가장 성능이 좋았던 모델: lightgbm(0.54)

3. 테스트

#1

a/s받으세요가 정답이였긴 한데..
이미 떨어트려서 조심할건없지만 나름 말이 된다!

#2

🙃

4. 결과

아무래도 전처리가 더 필요할 것 같다. 다음 프로젝트가 있어 이 챗봇 프로젝트는 마무리되었으나 앞으로 개선해봐야지!

자연어 처리 전처리 정말 너무너무어렵다 특히 벡터화시키는 부분이!!!!
근데 또 재밌어서~ 어쩐담~~ 계속 공부해야한다


프로젝트 2

0. 소개

  • 주제 : 장애인 콜택시 대기시간 예측
  • 사전학습 과목: 데이터 분석, 전처리, 머신러닝
  • 데이터 출처 : https://www.data.go.kr/data/15057705/
  • 데이터 구분: Tabular
  • 문제 유형: 회귀

1. 전처리

  • 열 제거: 결측값이 많은 값
  • 열 추가: 대기 시간에 영향이 있을 만한 변수(공휴일, 다음 날의 대기시간)

2. 모델링

  • 가장 성능이 좋았던 모델: 랜덤 포레스트(0.71)

새로 알게된 것들

1. 파이썬 GIL

강사님께서 python을 배웠으면 당연히 아는 Gil이라고 해서
위기를 느껴 당장 찾아보았다.
그런데,, 당연히 알아야할거치고는 개념이 너무너무너무어려워요

개념

  • Global Interpreter Lock
    : 하나의 스레드만 파이썬 인터프리터를 제어할 수 있도록 보장(을 걺)
    👉 다수의 스레드가 동시에 파이썬 바이트코드를 실행하지 못하게 막음
    👉 파이썬에서는 멀티 스레딩 불가!

🤷‍♂️존재 이유

왜 GIL이 있을까?
이는 파이썬이 C언어로 구현되어 메모리 관리 방식이 비슷하기 때문이다.

1) C언어의 메모리 관리 방식

  • 락, 언락을 사용하여 스레드 간 자원 공유와 동기화 가능

2) Python의 메모리 관리 방식

  • 따라서, C와 유사하게 GIL이 스레드 간 자원 공유와 동기화를 보장하는 것이다.

🙅‍♀️사용 거부 가능?

그럼 사용안할수도 있나? 싶어서 이번엔 gpt한테 물어봤다.

Q: GIL은 항상 사용되는거야? 쓰고싶을 때만 쓰면 안돼?
A: GIL은 파이썬 인터프리터의 특성으로 항상 사용됩니다. 사용하지 않는 옵션은 제공되지 않습니다.
다만, 파이썬의 multiprocessing 모듈을 사용하면 GIL을 우회할 수 있습니다.

multiprocessing

정리: 그래서 GIL 왜 쓴다고?

GIL을 사용하는 이유는 파이썬의 메모리 관리 방식 때문이다.
🔻
파이썬은 자동으로 메모리를 관리하는 가비지 컬렉션(garbage collection) 사용한다.
🔻
이 가비지 컬렉션은 멀티스레드 환경에서 메모리 관리를 위한 동기화를 수행해야 하는데, 이를 위해 GIL이 필요하다.
🔻
💡 즉, 파이썬이 사용하는 가비지 컬렉션 알고리즘은 스레드 안전(thread-safe)하지 않기 때문에, GIL이라는 메커니즘이 필요하다.

[참고한 블로그]
1. https://bloofer.net/114
2. https://blog.naver.com/ikarte666/222644186685


2. 시계열 관련 자료

👍 강사님께서 시계열 분석 관련 사이트를 알려주셨다!
참고 사이트: https://otexts.com/fppkr/index.html

0개의 댓글