Python 22

[Deep learning] 정제와 정규화 (cleaning and normalization)

코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화라고 하며, 토큰화 작업 하기 전 후에 용도에 맞게 데이터를 정제 및 정규화해야 한다. 정제(cleaning) : 노이즈 데이터 제거 정규화(normalization) : 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만듦 정제(cleaning) 작업은 토큰화 작업에 방해가 되는 부분들을 배제시키고 토큰화 작업을 수행하기 위해서 토큰화 작업 전에 이루어지기도 하지만, 토큰화 작업 이후에도 여전히 남아있는 노이즈들을 제거하기 위해 지속적으로 이루어지기도 한다. 사실 완벽한 정제 작업은 어려운 편이라서, 대부분의 경우 이 정도면 됐다.라는 일종의 합의점을 찾기도 한다. 1. 표기가 다른 단어들의 통합 같은 의미를 갖고있음에도, 표기가 다른 단어들을 하나..

Deep learning 2023.03.03

[python] Class, __init__, 상속

# 함수를 사용하지 않은경우 메이플스토리로 예시를 들어보자면 D_name = "듀얼블레이드" D_HP = 1000 D_MP = 200 print("{0} 캐릭터가 생성되었습니다.".format(D_name)) print("체력 {0}, 공격력 {1}".format(D_HP,D_MP)) 듀얼블레이드 캐릭터가 생성되었습니다. 체력 1000, 공격력 200 A_name = "아델" A_HP = 900 A_MP = 150 print("{0} 캐릭터가 생성되었습니다.".format(A_name)) print("체력 {0}, 공격력 {1}".format(A_HP,A_MP)) 아델 캐릭터가 생성되었습니다. 체력 900, 공격력 150 # 함수를 사용한 경우 위와 같은 코드를 함수를 이용해서 간략하게 작성을 해보면 d..

python 2023.02.15

[pythonML] 정밀도와 재현율 - 평가

# 평가 지표 -회귀 평균 오차 -분류 정확도 오차행렬 정밀도 재현율 F1스코어 ROC AUC 3. 정밀도와 재현율 (Precision과 Recall) 불균형한 데이터 세트에서 정확도보다 더 선호되는 평가 지표 positive 데이터 세트의 예측 성능에 초점을 맞춘 평가 지표 재현율과 정밀도 모두 TP를 높이는 데 동일한 초점임 BUT 재현율은 FN을 낮추고, 정밀도는 FP를 낮추는데 초점 가장 좋은 성능 평가는 재현율, 정밀도 모두 높은 수치를 얻는 것. 반면 둘 중 하나만 높고 하나만 낮은 결과일 경우 바람직하지 않음) 정밀도 = TP / (FP +TP ) 정밀도가 더 중요한 경우 : 실제 Negative 음성인 데이터 예측을 Positive 양성으로 잘못 판단하게 될 경우 ( ex. 스팸메일이 아닌..

pythonML 2022.07.11

[pythonML] 정확도와 오차행렬 - 평가

# 평가 지표 -회귀 평균 오차 -분류 정확도 오차행렬 정밀도 재현율 F1스코어 ROC AUC 1. 정확도(Accuracy) 정확도(Accuracy) = 예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수 불균형한 레이블 값 분포에서는 "정확도만으로" 성능 수치를 사용해서는 안되고 여러가지 분류지표와 함께 적용해야한다. # 타이타닉 정확도 타이타닉 데이터 전처리 import pandas as pd from sklearn.preprocessing import LabelEncoder # Null 처리 함수 def fillna(df): df['Age'].fillna(df['Age'].mean(),inplace=True) df['Cabin'].fillna('N',inplace=True) df['Embar..

pythonML 2022.07.10

[python] apply lambda

lambda 란? def get(x): return x**2 get(3) 9 위의 함수는 def get(x) 와 같이 함수명, 입력 인자를 먼저 선언한 후 return But, lambda는 이러한 함수의 선언과 함수 내의 처리를 한 줄의 식으로 쉽게 변환하는 식. get = lambda x : x**2 get(3) 9 apply lambda titanic_df['Name_len']=titanic_df['Name'].apply(lambda x : len(x)) titanic_df[['Name_len','Name']] apply lambda ( if ~ else 문) lambda 식에서 if ~ else 문을 쓸 때 유의 할점 => if 절의 경우 if 식보다 반환 값을 먼저 기술해야 함 (child if x

python 2022.05.30

[pythonML] 회귀- LinearRegression

# LinearRegression 클래스 LinearRegression 클래스는 예측값과 실제값의 RSS 를 최소화해 OLS 추정 방식으로 구현한 클래스이다. class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True,n_jobs=1) -입력파라미터 fit_intercept : intercept(절편) 값을 계산할 것인지 말지를 지정함. (False이면 y축좌표가 0) normalize: True이면 회귀를 수행하기 전에 데이터 세트를 정규화 함. -속성 coef_ : fit() 메서드를 수행했을 때 회귀 계수가 배열 형태로 저장되는 속성. shape =( Target값 개수, 피처 개수) inte..

pythonML 2022.05.09

[pythonML] 부스팅(Boosting) - GBM /AdaBoost

# 부스팅(Boosting) : 여러 개의 약한 학습기를 순차적으로 학습,예측 하면서 잘못 예측한 데이터에 가중치 부여를 통해 오류를 개선해 나가면서 학습하는 방식. 즉, 약한 알고리즘 => 강한 알고리즘 # 부스팅의 대표적인 구현 2가지 1. 에이다 부스트 AdaBoost (Adaptive Boosting) : 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 알고리즘. 잘못 분류된 오류데이터에 가중치를 계속하여 부여함 => 부여한 가중치들을 결합하여 예측을 수행 2. 그래디언트 부스트 (GBM-Gradiant Boost Machine) : 가중치 업데이트를 경사 하강법(Gradiant)을 이용함 - 경사하강법 : 반복 수행을 통해 오류를 최소화할 수 있도록 가중치의 업데이트 값을 도출하는 기법 분류..

pythonML 2022.04.01

[python] 결정 트리 시각화 Graphviz 설치

결정 트리 알고리즘이 어떠한 규칙을 가지고 트리를 생성하는지 시각적으로 보기 위해 Graphviz 을 설치합니다. Graphviz는 파이썬으로 개발된 패키지가 아니기 때문에 파이썬 기반의 모듈과 인터페이스 해주기 위해서 Graphviz를 설치한 후 파이썬과 인터페이스 할 수 있는 파이썬 래퍼(Wrapper)모듈을 별도로 설치해야 합니다. 1. https://graphviz.org/download/ 에서 운영체제에 맞는 설치 파일을 다운로드하여 설치합니다. 2. 설치 후 Anaconda Prompt 을 관리자 권한으로 들어간 후 Graphviz 파이썬 래퍼 (wrapper) 모듈을 설치합니다. pip 명령어를 사용하여 graphviz 모듈을 설치합니다. (pip install graphviz 를 입력) 3..

python 2022.03.20

[pythonML] 레이블 인코딩(label encoding) / 원-핫 인코딩(one hot encoding)- 데이터 전처리

# 데이터 전처리 기본 데이터 전처리 사항 결손값 / 문자열 값 처리 이상치 제거 피처 선택 데이터 인코딩 레이블 인코딩 원-핫 인코딩 피처 스케일링 StandardScaler MinMaxScaler # 결측값 -Null값이 얼마 되지 않는다면=> 피처의 평균값, 중앙값, 최빈값 같은 값 넣기 -Null값이 대부분 => 해당 피처 drop 만약 중요도가 높은 피처이고, Null을 피처의 평균값으로 대체할 경우 예측 왜곡이 심할 수 있다면 더 정밀한 대체 값을 선정해야 함 사이킷런의 머신러닝 알고리즘은 문자열 값을 입력 값으로 허용X => 모든 문자열(카테코리형, 텍스트형) 값을 인코딩해서 숫자형으로 변환필수 # 데이터 인코딩 : 레이블 인코딩(label encoding) / 원-핫 인코딩(one hot ..

pythonML 2022.03.04