본문 바로가기

Study_note(zb_data)

(97)
스터디노트 (나이브 베이즈 분류) 📌 Naive Bayes Classifier 감성 분석 (eng) 🔻tokenize를 활용한다. → 지도학습이기 때문에 train 데이터 처럼 정답을 알려주어야 한다. → 전체 말뭉치를 만든다 from nltk.tokenize import word_tokenize import nltk # 1. train 데이터에서 각 sentence (문장)를 받아온다. # 2. 각 sentence의 문장을 tokenize 화 한다. (분할) # 3. set 명령이 있어서 중복이 제거 된다. train = [ ('i like you', 'pos'), ('i hate you', 'neg'), ('you like me', 'neg'), ('i like her', 'pos'), ] all_words = set( word.lo..
스터디노트 (법령 관련 분석) 📌 nltk 🔻dataset 확인 import nltk from konlpy.corpus import kobill # 기존에 있는 데이터 셋 doc_ko = kobill.open('1809890.txt').read() from konlpy.tag import Okt # Okt 활용 / doc_ko 변수에 저장된 것 중, 명사를 추출 t = Okt() token_ko = t.nouns(doc_ko) 🔻추출한 명사에 대해서 자세히 알아보기 ko = nltk.Text(token_ko, name="대한민국 국회 의안 제 1809890호") # 총 단어 개수 print(len(ko.tokens)) >>>> 735 # 중복 단어 제외 단어 개수 print(len(set(ko.tokens))) >>>> 250 # 빈..
스터디노트 (자연어 처리) 📌 konlpy (한국어 자연어 처리) -> Kkma, Hannanum, Okt 등의 패키지로 자연어 분석 처리가 가능하다. → 각각 처리하는 방식이 약간씩 차이가 있음 🔻Kkma → sentences, nouns, pos from konlpy.tag import Kkma kkma = Kkma() # 문장 추출 kkma.sentences('한국어 분석을 시작합니다 재미있어요~~') >>>> ['한국어 분석을 시작합니다', '재미있어요~~'] # 명사 추출 kkma.nouns('한국어 분석을 시작합니다 재미있어요~~') >>>> ['한국어', '분석'] # 형태소 부착 (Tagging) kkma.pos('한국어 분석을 시작합니다 재미있어요~~') >>>> [('한국어', 'NNG'), ('분석', 'NNG..
스터디노트 (credit card data 3, 4) 📌 신용카드 부정 사용자 검출해보기 3, 4 🔻Outlier를 확인 후, 제거를 하고 한 번 해보자 import seaborn as sns plt.figure(figsize=(10, 7)) sns.boxplot(data=raw_data[['V13', 'V14', 'V15']]) plt.show() def get_outlier(df=None, column=None, weight=1.5): fraud = df[df['Class']==1][column] quantile_25 = np.percentile(fraud.values, 25) #Q1 quantile_75 = np.percentile(fraud.values, 75) #Q3 iqr = quantile_75-quantile_25 iqr_weight = iq..
스터디노트 (credit card data 2) 📌 신용카드 부정 사용자 검출해보기 2 🔻특정 데이터를 가지고 다시 도전 해보자. plt.figure(figsize=(12, 10)) sns.distplot(raw_data['Amount'], color='r'); plt.show() 🔻StandardScaler 적용 → Amount 컬럼이 비대칭성이 너무 높다 (데이터가 한 쪽으로 쏠려 있다) → 따라서, 정규화를 시켜서 편향성을 바꿔보자. → 결과 값은 변동성이 없이 미미한 수준이다.. from sklearn.preprocessing import StandardScaler scaler = StandardScaler() amount_n = scaler.fit_transform(raw_data['Amount'].values.reshape(-1, 1)) r..
스터디노트 (credit card data 1) 📌 신용카드 부정 사용자 검출해보기 🔻Data import → 신용카드 불량 사용자 비율이 매우 낮다 (0.17%..)비율이 낮다는 것은? 데이터가 매우 불균형한 상태라는 것. import pandas as pd raw_data = pd.read_csv('../data/creditcard.csv') raw_data.head() raw_data['Class'].value_counts() >>>> Class 0 284315 1 492 Name: count, dtype: int64 frauds_rate = round(raw_data['Class'].value_counts()[1] / len(raw_data) * 100,2) frauds_rate >>>> 0.17 🔻Data를 plot으로 그려보기 import ..
스터디노트 (kNN) 📌 kNN? - 실시간 예측을 위한 학습이 필요하지 않다. - 고차원 데이터에는 적합하지 않다. 📌 실습 - 실시간 예측을 위한 학습이 필요하지 않다. from sklearn.datasets import load_iris iris = load_iris() from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=13, stratify=iris.target) 🔻fit 과정이 필요 from sklearn.neighbors import KNeighborsClassifier # n_neigh..
스터디노트 (Boosting Algorithm) 📌 앙상블 기법의 종류 - Voting, Bagging -> 여러개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식 - Bagging과 Boosting의 차이 → 한번에 병렬적으로 결과를 얻음 / 순차적으로 진행 🔻Voting - 전체 Data를 다 쓰면서 각각 다른 Algorithm 적용 (각각 다른 분류기를 적용) 🔻Bagging - Bootstrap Aggregating - 하나의 Algorithm 사용, 전체 Data를 나눠서 적용 (중복 허가) (#부트스트랩핑) (하나의 분류기를 적용) - 대표적인 방식이 Random Forest (Tree 기반) 이다. 🔻Boosting - 여러개의 분류기가 순차적 학습 (성능 ↓, 속도 ↑), 분류기가 예측이 틀린 데이터에 대해 다음 분류기가 가중치를..