목차
오늘의 TIL 순서는
- 시작전 마음가짐
- Python 문제 풀이
- LLM&RAG 5주차 내용 정리
- 환경변수 문제 해결
- 머신러닝 결과 해석
- 웹트롤링 특강
- 회고
입니다.
- 필기내용과 전체 코드는 GITHUB링크를 참고해 주세요.
- LDA 링크 TIL/ML/LDA.ipynb at main · Onesword-Jang/TIL
- LLM 링크 TIL/LLM/LLM_RAG_5.ipynb at main · Onesword-Jang/TIL
- 크롤링 TIL/크롤링/크롤링_1.ipynb at main · Onesword-Jang/TIL
시작전 마음가짐
지금까지 진행 상황들을 보았을 때 해야할 과제들이 많아지고있습니다.
빨리 끝낼 수 있는 주제들을 먼저 처리하며 마음의 짐을 덜고 싶습니다.
오늘은 해결을 못한 내용들을 처리하고싶으니 매우 바쁜 하루가 될 것 같습니다.
그럼 학습을 시작하겟습니다.
Python 문제 풀이
1. 문자열 겹쳐쓰기
- 문제를 보고 슬라이싱이 생각남
- answer = my_string[:s] + overwrite_string 까지 하고 문자열 뒷부분이 빠짐것을 확인
- overwrite_string 만 추가해서 문자열 뒷부분 겹침 확인
- s 값을 더해줘서 해결
def solution(my_string, overwrite_string, s):
answer = my_string[:s] + overwrite_string + my_string[s +len(overwrite_string):]
return answer
2. 문자열 섞기
- 분명히 배웠었는데 기억이 나지 않음
- join, map 등을 활용해보려했으나 실패
- 검색을 통해 완료 (이전에 배웠던 부분은 리스트컴프리헨션)
# 조건문을 활용한 섞기
def solution(str1, str2):
answer = ""
for i in range(len(str1)):
answer += str1[i] + str2[i]
return answer
# 리스트 컴프리헨션
def solution(str1, str2):
answer = [str1[i] + str2[i] for i in range(len(str1))]
return ''.join(answer)
# map 함수와 join 사용하기
def solution(str1, str2):
answer = ''.join(map(lambda i: str1[i] + str2[i], range(len(str1))))
return answer
3. 문자 리스트를 문자열로 변환하기
- 조인 함수로 성공
- 아직 조인 함수를 사용하는데 미숙함이있어 문법에서 에러가 나옴
- 시도한 함수들 join, 데이터 타입 변환, map
def solution(arr):
answer = ''.join(arr)
return answer
LLM 5주차 내용 정리
- 5주차 5-5 강의 정리를 마쳤습니다.
- LLM과 여러 패키지를 활용하는 방법을 코드로 보여주고 코드의 요소 하나하나 설명해주는 강의였습니다.
- 하지만 강의의 분기점이 강의 자료의 숫자로만 되어있어 처음에는 강의자료에있는 코드들이 한개의 코드박스에 들어가서 진행하는 코드라 생각하고 진행하였지만 반복하는 부분이 많아 정리하기 어려웠습니다.
- 또한 많은 정보를 담고있어 차근차근 보아야하고 많은 복습 및 실습이 필요해 보입니다.
- 복습을 위해 명확하게 파트 분리를 진행하고 복습을 해야할 것으로 보입니다.
환경변수 문제 해결
1. 우선 질문하러 가기 전 다시한번 더 API키 및 환경변수 문제 확인
- 작업 영역 소스파일 열거하는 데는 시간이 오래걸립니다. 대신 하위 폴더를 여는 것이 좋습니다. => 하위폴더 사용방법
- 대화형 챗봇의 API키 직접 입력시 사용 가능
- DOTENV사용 경우: 잘못된 API키를 사용한다는 openai.AuthenticationError 발생 => 환경 변수를 어떻게 설정하는지 봐야할 듯
- api키 노출없이 키 사용방법
2. 해결한 문제
- vscode를 시작함과 동시에 열려있던 c드라이브 폴더를 그대로 사용해서 문제가 나온거였다. 해결
- API키 지정 코드에서 오타 존재 =>client = OpenAI(api_key="api_key")에서 ""제거 => Dotenv로 API키 사용 가능
- 키 노출 우려 => .env를 활용해도 print문으로 api키를 출력이 되는게 문제라 판단 => 로컬 컴퓨터 환경 변수에 API키값 저장 => OpenAI Python 라이브러리 버전 1.0.0 이상에서는 이 API가 더 이상 지원되지 않아서 문제 발생 => 생각해보니 코드상에서만 노출이 안되면 print문을 써도 같은 값이 출력이 안되는 것이라느걸 깨달음 => .env 사용하자
3. 4주차 강의부터 다시 실습 실행
- 5-1 강의 까지 들었고 매끄럽게 강의 수강을 했습니다.
- 또한 이때까지 환경변수 설정 오류로 나오던 실행경로 오류는 가상환경의 파일과 작업중인 파일의 위치 문제였습니다. => 작업중인 디렉토리에 새로운 가상환경을 설정
머신러닝 결과 해석(LDA)
- LDA에 대한 해석을 드디어 완료했습니다. 생각보다 간단했는데 수학적 개념으로 된 설명을 읽다보니 머리가 뜨거워진듯 합니다.
LDA란?
- 우선 LDA는 차원 축소와 분류를 한번에 진행하는 모델이다.
- 클래스 내의 분산 최소화, 클래스 간의 분산을 최대화 시킨 축을 찾아 차원축소 한다.
간단한 진행과정과 결과 해석
- 데이터와 레이블을 분리한다.
- 선형판별 축을 찾는다(클래스 수 -1 개)
- 찾은 선형판별 축으로 모델학습(선형변환)한다.
- 첫번째 열(첫 번째 선형판별 축)과 두번째 열(두 번째 선형판별 축)을 사용하여 시각화하고 데이터의 분산이 잘이루어졌는지 확인한다.
분석을 하는 이유?
- 정확성 향상: 분류 성능이 높아지면 잘못된 예측을 줄일 수 있습니다.
- 비지니스 성과 개선: 비즈니스 의사결정을 개선하는 데 기여(추천 시스템 등)
- 리소스 효율성 향상: 운영 및 리소스 비용을 절감(콜센터 등의 챗봇, 인건비 절감)
- 사용자 경험 향상: 사용자에게 더 나은 경험을 제공(스팸 필터 등)
- 일반화 성능 향상: 다양한 데이터셋에도 잘 일반화될 수 있다.
크롤링 특강
- 크롤링 강의를 들으며 가끔 보게 되던 HTML, URL구조, f12를 누르게 되었을 때 만나게 되는 정보들을 알게 되었습니다.
- 오늘 특강으로 많은 정보를 학습했으니 이 정보들을 더욱 구조화 시켜 내 것으로 만들어야 겟습니다.
- 특히 신기했던게 URL의 구조를 보고 URL에서 어떤 파라미터들이 어떤 역할인지 알아보고 그것들을 사용한다는게 매우 신기했습니다.
- 전체적으로 처음듣는 내용이어서 어려웠지만 늘 궁금하던 내용이라 재미있었습니다.
회고
오늘은 전체적으로 학습 시작 전에 생각한대로 흘러가서 학습의 질이 매우 높았습니다.
중간에 크롤링 특강의 존재를 알게 되어 머신러닝 t-SEN의 결과분석은 못했지만 크롤링 특강 자체가 매우 흥미있어 괜찮았습니다.
Python 문제풀이를 하며
파이썬 문제는 풀렸을 때의 쾌감 이 너무 좋습니다.
하지만 한가지 문제로 시간을 많이 사용하게 되면 무형의 압박감이 생겨 GPT의 힘을 빌리고 싶어지지만 꾹 참으며 내가했던 필기 자료나 검색을 통하여 이루어 내고있습니다.
환경 변수 문제를 해결하며
환경 변수 문제 이 때 까지 왜이렇게 고민을 했나 싶을 정도로 쉽게 해결이 되었습니다.
지금까지 가상환경을 설치하며 날린 시간들이 조금 아깝지만 이제 이런 문제들이 해결이 되었으니 마음 놓고 실습을 진행할 수 있습니다.!!
작업중인 디렉토리에 가상환경 파일을 만들어야한다...
머신러닝 결과 분석을 하며
LDA이녀석도 저번주에 생각했던 것보다 매우 간단한 녀석이였습니다.
전문적인 블로그 글과 유튜브 영상을 참고해서 분석했는데 너무 많은 수학적 용어들이 머리를 복잡하게 만들었던 것 같습니다.
추가적으로 분류하는 머신러닝을 공부하고있기에 분류, 분석은 왜 하는 것인지 찾아보았고 그 결과로 왜 이렇게까지 데이터 분석 스킬이 필요한지 이해가 되는 학습이였습니다.
크롤링 특강
평소 궁금해했던지라 신기하고 재미있었습니다.
하지만 어려웠다는... 그리고 마지막에 과제를 주셨는데 날잡고 강의 복습을 진행한 뒤 과제까지 처리해보려 합니다.
감사합니다.
'TIL' 카테고리의 다른 글
내일배움캠프 34일차 TIL + Python, 개인과제(LLM), 수준별 학습반(프롬프트) (2) | 2024.11.13 |
---|---|
내일배움캠프 33일차 TIL + Python, 머신러닝(t-SEN), AI모델활용, 크롤링 (4) | 2024.11.12 |
내일배움캠프 31일차 TIL + LLM & RAG, ML복습 (2) | 2024.11.08 |
내일배움캠프 30일차 TIL + 복습(Python, Ai모델활용) (0) | 2024.11.07 |
내일배움캠프 29일차 TIL + 복습 (머신러닝, AI모델활용,Python) (5) | 2024.11.06 |