[Python] 연습 35

[Python] ChatGPT 파인튜닝 예제

이 글은 ChatGPT 간단한 파인튜닝 예제를 공유하는 포스팅입니다. ChatGPT 의 한계 최신의 데이터를 포함하고 있지 않아서 답변이 예전 버전의 답변이거나 부정확한 답변을 줄 때가 있음(ChatGPT sometimes give you some answers that may not reflect the most up-to-date information, or that it can even give you incorrect answers). 어떤 특정 분야에 특화되어있는 모델이 아니라 일반적으로 쓸 수 있는 모델. 전이학습(Transfer Learning) 간단히 말하자면, 한 작업에서 학습한 지식을 다른 관련 작업으로 전달하는 것을 의미함. 굳이 초기 모델을 직접 만들 필요가 없다면, 기존 모델을 활..

[Python] 연습 2024.01.31

[python] matplotlib 한글 폰트 적용하기

폰트 적용 코드 일반적으로 matplotlib 에서 한글 폰트를 적용하기 위해서 아래의 코드를 사용한다. import matplotlib.pyplot as plt # 폰트 파일 경로 font_path = '/Library/Fonts/YourFont.ttf' font_name = plt.matplotlib.font_manager.FontProperties(fname=font_path).get_name() plt.rcParams['font.family'] = font_name # rc('font', family=font_name) 만약 맥에 설치해둔 특정 OTF 폰트를 사용하고 싶으면 font_path 에 otf 폰트 파일 경로를 넣어준다. import matplotlib.pyplot as plt # 폰트 ..

[Python] 연습 2023.04.30

[python] 한국어 띄어쓰기 처리

한국어 문장을 처리할 때, 문장 내 띄어쓰기에도 주의해야한다. 띄어쓰기가 어디에 되어있는지에 따라 다른 의미로 해석될 가능성이 존재하기 때문이다. 아래의 예시를 보자. 1) 엄마가 회사 줬어 2) 엄마가 회 사줬어 두 문장의 의미가 띄어쓰기에 따라 완전히 달라진다는 것을 확인할 수 있다. 이렇기 때문에 텍스트 데이터를 분석할 때 띄어쓰기가 제대로 되어있도록 교정해주는 작업이 필요하다. PyKoSpacing 패키지 띄어쓰기가 되어있지 않은 문장을 띄어쓰기 처리를 해주는 패키지고 PyKoSpacing 이 있다. PyKoSpacing is based on Deep Learning model trained from large corpus(more than 100 million NEWS articles from ..

[Python] 연습 2022.11.13

[python] 리스트 형태의 값을 분리하여 각 하나의 값으로 표현하기

제목만 보면 어떤 말인지 이해하기 어려울 수 있으나, 아래의 예시 데이터처럼 값에 리스트가 들어가 있는 경우, 각 리스트 내 요소를 전개하여 따로 레코드를 생성해 주는 방법에 대한 것입니다. 이럴 때는 pandas 의 explode() 함수를 사용해주면 됩니다. ( pandas explode document 링크 ) 1. 예시 데이터 생성 import pandas as pd data = [[3, 1, ['가', '나', '다']], [4, 0, ['라', '마', '바']], [5, 1, ['아', '자', '차']]] col_names = ['x1', 'x2', 'x3'] df = pd.DataFrame(data=data, columns=col_names) df 2. explode 사용 'x3'에 리스..

[Python] 연습 2022.11.12

[python] json 파일 data frame 으로 읽기

1. 간단한 json 파일 [ { "id": "A001", "city": "Tokyo", "country": "Japan", }, { "id": "B012", "city": "Jerusalem", "country": "Isreal", }, { "id": "C123", "city": "Busan", "country": "South Korea", } ] 위와 같은 json 파일을 pandas 로 읽어오려면, 아래와 같이 코드를 작성할 수 있다. import pandas as pd df = pd.read_json('./data/simple.json') 2. json 파일 내부 요소를 불러오기 ( nest list 형태 ) 만약에 아래와 같은 구조를 보이는 json 파일이라면, 위에서처럼 단순히 read_jso..

[Python] 연습 2022.11.11

[python] 프로그래머스 신고결과받기

def solution(id_list, report ,k): answer = [] # id_dict, reporter 생성 id_dict = dict() for user in id_list: id_dict[user] = 0 reporter = id_dict.copy() # report 중복 제거 report = set(report) # count reported times for case in report: id_dict[case.split(' ')[1]] += 1 print(id_dict) # id_dict는 각 회원이 신고받은 횟수 # count messages to reporter for case in report: if id_dict[case.split(' ')[1]] >= k: reporter[..

[Python] 연습 2022.10.29

[python] OneHotEncoding(원핫인코딩) using pandas, scikit learn

1. 예시 데이터와 목표 데이터 - 먼저 좌측의 X1, X2, X3 처럼 categorical variables 를 원핫인코딩을 통해 우측의 형태처럼 변경시키고자 한다. - 이때는 pandas의 get_dummies() 혹은 scikit learn의 OneHotEncoder 를 사용할 수 있다. 2. pandas → get_dummies() - 공식 레퍼런스 페이지: https://pandas.pydata.org/docs/reference/api/pandas.get_dummies.html - get_dummies() 함수를 사용하는 법은 굉장히 쉽다. 간단하게 말하면 일단 object data type 인 컬럼을 확인하고, 그 컬럼들만 변경해준다. 아래의 과정을 참고하자. # object 컬럼 확인 df..

[Python] 연습 2022.10.23

Python을 활용한 AI 모델링 - 전처리 파트

필요 라이브러리 임포트 및 파일 읽어오기라이브러리를 alias로 임포트# numpy import numpy as np # pandas import pandas as pdCSV 파일 읽어오기# 파일명: data.csv # pandas read_csv 함수 활용 # df 변수로 저장 df = pd.read_csv('data.csv')데이터 확인하기데이터 일부 출력df.head() df.tail()자료구조 파악# row, columns, not-null, type df.info()데이터 인덱스, 컬럼명, Values 확인df.index df.columns df.valuesNull 데이터 확인df.isnull().sum()통계 정보df.describe()데이터 전처리 수행컬럼 삭제df.drop('X_1', ax..

[Python] 연습 2022.09.11

[Python] SPICE를 사용한 Voice Pitch 감지

Voice Pitch (음 높이)를 확인하기 위해서는 다음의 tensorflow tutorial 을 통해 SPICE 라고 하는 모델을 사용할 수 있다. https://www.tensorflow.org/hub/tutorials/spice SPICE를 사용한 피치 감지 | TensorFlow Hub SPICE를 사용한 피치 감지 이 colab에서는 TensorFlow Hub에서 다운로드한 SPICE 모델을 사용하는 방법을 보여줍니다. sudo apt-get install -q -y timidity libsndfile1 Reading package lists... Building dependency tree... Reading st www.tensorflow.org

[Python] 연습 2022.08.21

[Python] 목소리 음 높이 확인하기(Voice Pitch Tracker)

Python 라이브러리 중에 목소리 pitch tracker 가 가능한 라이브러리가 있어서 이에 대해 포스팅하고자 합니다. 소개 CREPE 라는 라이브러리는 A Convolutional Representation for Pitch Estimation 이라는 이름의 약자로, "monophonic pitch tracker based on a deep convolutional neural network operating directly on the time-domain waveform input" 이라고 소개되어 있습니다. 위의 그림과 같이 WAV audio file을 input으로 하면, 6개의 컨볼루션 레이어를 거쳐서 output vector 를 만들어내게 됩니다. 결과적으로 해당 audio signal을..

[Python] 연습 2022.08.16

[AIFB] Pandas DataFrame

DataFrame? 2차원(column과 row) 테이블 데이터 구조를 가진 자료형 DataFrame 생성 방법 ① 딕셔너리를 활용하여 생성 ② 리스트를 활용하여 생성 ③ 파일을 읽어서 생성 ① 딕셔너리를 활용하여 생성 a1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}) ② 리스트를 활용하여 생성 a2 = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], ["a","b","c"]) a2 왜 위와 같은 형태로 생성되는지를 확인하기 위해서는 shift + tab 을 활용하여 각 파라미터가 어떤 것을 의미하는지 알아볼 수 있다. 참고로 함수에 커서를 가져다 두고 shift + tab 을 누르면 해당 함수의 param..

[Python] 연습 2022.08.14

[AIFB] DataFrame 변형하기

Group by 데이터 분할(split) > operation 적용(applying) > 데이터 병합(combine) > groupby 내부 함수 활용하기 >> 그룹 데이터에 적용 가능한 통계 함수(NaN은 제외하여 연산) >> count: 데이터 개수 >> size: 집단별 크기 >> sum: 데이터의 합 >> mean, std, var: 평균, 표준편차, 분산 >> min, max: 최소, 최대값 > 복수 columns를 기준으로 grouping 하기 >> 통계함수를 적용한 결과는 multiindex를 갖는 DataFrame # cust_class 와 sex_type으로 index를 정하고 이에따른 r3m_avg_bill_amt의 평균을 구하기 cust.groupby(['cust_class', 'se..

[Python] 연습 2022.08.13