12/9, 열한 번째 날의 TIL
오늘은 내일배움캠프의 11번째 날이었다. 오늘은 chat gpt 독스에 대해 스터디를 진행했고, 혼자서는 머신러닝 비지도 학습에 대한 실습도 진행하고 kaggle에서 데이터셋을 다운받아서 전처리부터 모델 적용까지 전부 해보았다.
1. Chat gpt 독스 스터디
지금까지는chat gpt를 사이트에 들어가서 로그인하고 검색해서 사용했지만, API 키를 사용하게 되면 파이썬 코드 내에서도 질문을 하고 답변을 받아올 수 있다는 사실을 알게 되었다. openai 사이트에 들어가서 결제방법을 선택하고 API 키를 발급받은 다음, .env 파일에 키를 입력해주면 사용이 가능하다.
위와 같이 dotenv, openai를 불러와서 client에 OpenAI 모델을 할당해주면
다음과 같이 코드를 작성해서 답변을 받을 수 있는데, 알아본 바에 의하면
role에는 system, assistant, user가 있고 system에서는 전체 설정을 하는 것이라고 한다. 여기서는 '당신은 파이썬 프로그래머입니다.'라고 역할을 부여했는데, 이렇게 설정할 경우 gpt는 파이썬 프로그래머처럼 답변을 주는 것이다.
assistan는 답변에 대한 설정을 하는 것이고, user은 질문에 대한 내용을 작성하게 된다. 그리고 텍스트를 생성하기 위해 모델을 선택할 경우에는 model = 란에 사용할 모델을 적어주어야 하는데, 제일 최근 모델이 성능이 좋고 빠르지만 가격이 비싸므로 필요에 따라 모델을 바꿔가며 성능과 비용을 절충해서 사용해야 한다.
지금까지는 사용할 수 있다는 사실을 모르기도 하고 있어도 방법이 복잡할 것 같아서 시도하지 않았는데, 이렇게 사용할 수 있다면 코드를 돌리며 실시간으로 검색한 지식을 입력할 수 있기 때문에 편할 것 같다. 답변의 형식만 잘 받는다고 하면 노래 데이터베이스에 신곡을 바로 추가 할 수도 있을 것이고, 실시간으로 바뀌는 주식에 대한 정보도 얻을 수 있을 것이다. 이 외에도 이미지를 생성하거나 음성에 대한 작업 등도 가능하다고 하니, 독스 문서를 더 보면서 사용 가능한 방법을 생각해보아야겠다.
2. 머신러닝 실습
어제까지 지도학습 실습을 모두 마쳤고, 오늘 비지도학습 실습을 해보았는데 레이블이 없는 데이터라 그런지 확실히 지도 학습보다 방법이 어려웠던 것 같다. 지도학습의 경우 대부분
데이터 수집 - 데이터 전처리 - (필요한 경우 스케일링) - 데이터 분할(훈련, 테스트) - 모델 훈련 - 모델 예측
이 순서대로 진행이 되었으나, 비지도학습은 정답이 없으므로 데이터 분할 과정이 없었고 결과를 시각화하는 방법이 어려웠다.
지도학습의 경우 위와 같이 예측값과 테스트 y값, accuracy score, classification report를 호출해서 텍스트로 나오는 결과를 보면 돼서 확인이 쉬웠지만 비지도학습의 경우
이처럼 시각화하여 봐야 하기 때문에 코드 작성이 복잡하고 번거로웠다.(위는 계층적 군집화의 결과이다.)
그래서 더 친숙해지기 위해 kaggle에서 펭귄 데이터, 나라별 데이터를 다운받아서 비지도학습을 적용해보았다.
먼저 데이터 결측치를 제거하고 성별 열 원-핫 인코딩과 동시에 필요없는 열을 제거했고
elbow method를 이용해 최적의 k값을 찾았으며, 그 후에
k 값과 seaborn의 scatterplot을 이용해 구분이 잘 되어있는 결과값을 찾았다.
이 때 x축과 y축이 어떤 값으로 설정되는지에 따라 결과값이 다르게 나오는데, 이론으로 봤던 PCA를 사용하면 복수의 열 값들을 사용해서 더 좋은 결과를 만들 수 있을 것 같다.
내일은 DBSCAN,PCA,LDA, 앙상블 학습에 대한 실습을 진행할 것이고 chat gpt vision, audio generation에 대해서 스터디를 진행할 것이다. 내일도 캐글에서 새로운 데이터셋을 찾아서 모델을 학습시켜보고, gpt를 이용해서 오디오 생성도 해봐야지.
내일도 화이팅