728x90
반응형

전체 글 112

[pythonML] 결정 트리 (Decision Tree)

# 지도학습: 레이블(Label)이 있는 데이터가 주어진 상태에서 학습하는 머신러닝 방식 # 분류 나이브 베이즈(Naive Bayes) : 베이즈 통게와 생성 모델에 기반 로지스틱 회귀(Logistic Regression) : 독립변수와 종속변수의 선형 관계성에 기반 결정 트리(Decision Tree) : 데이터 균일도에 따른 규칙 기반 서포트 벡터 머신(Support Vector Machine) : 개별 클래스 간의 최대 분류 마진을 효과적으로 찾아줌 최소 근접 알고리즘(Nearest Neighbor) : 근접 거리를 기준으로 함 신경망(Neural Network) : 심층 연결 기반의 신경망 앙상블(Ensemble) : 서로 같은/다른 머신러닝 알고리즘을 결합한 앙상블 # 결정트리(Decision ..

pythonML 2022.03.20

[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] 머신러닝으로 타이타닉 생존자 예측

#정리 1. 데이터의 가공 및 변환 과정의 전처리 (결손값 처리, 인코딩 작업, 스케일링/정규화 작업) 2. 데이터를 학습 데이터와 테스트 데이터로 분리하는 데이터 세트 분리 (한쪽 데이터에 치우칠때 => 교차검증) 3. 학습 데이터를 기반으로 머신러닝 알고리즘을 적용해 모델을 학습 4. 학습된 모델을 기반으로 테스트 데이터에 대한 예측 수행 5. 예측된 결괏값을 실제 결괏값과 비교해 머신러닝 모델에 대한 평가를 수행 1. 데이터 전처리 from sklearn.preprocessing import LabelEncoder # Null 처리 함수 def fillna(df): df['Age'].fillna(df['Age'].mean(), inplace=True) #평균 나이로 df['Cabin'].fillna..

pythonML 2022.03.19

[python] apply, lammda 함수의 활용

DataFrame에서는 map()대신에 apply()함수를 적용 1. apply 함수 : 데이터 프레임에 특정 함수를 적용시키는 함수 형태 : df.apply( f(x) , axis = ? ) df = pd.DataFrame({'Math' : [80,60,90], 'English' : [50,90,60]}, index = ['A','B','C']) df df.apply(np.average,axis=0) Math 76.666667 English 66.666667 dtype: float64 2. lamda 형태 : lambda x : f(x) f = lambda x: x+100 f(8) 3. apply 와 lamda의 활용 apply(lambda 입력값 : 결과값) weather['date'] = weath..

python 2022.03.18

[python] 카테고리형(categorical) => 수치형(numerical) 데이터로 변경하는 2가지 방법

-카테고리(categorical)형 데이터를 수치형(numerical) 데이터로 변환해주는 작업은 필수로 해줘야 하는 전처리 작업임. 카테고리형(categorical) => 수치형(numerical) 데이터로 변경하는 2가지 방법을 소개한다. titanic_df = pd.read_csv('titanic_train.csv') titanic_df.head(3) 1. astype('category').cat.codes (cat.codes를 호출해 주면 자동으로 숫자형 리턴을 함) train['Sex']=train['Sex'].astype('category').cat.codes train['Sex'] 0 1 #male 1 0 #female 2 0 3 0 4 1 .. 886 1 887 0 888 0 889 1 8..

python 2022.03.18

[pythonML] feature scaling(피처 스케일링) -표준화(StandardScaler)/ 정규화 (MinMaxScaler)/RobustScaler/ MinMaxScaler

Feature Scaling이란?Feature Scaling은 데이터의 피처(feature)들이 서로 다른 범위(scale)를 가질 때 이를 동일한 스케일로 맞추는 작업입니다. 서로 다른 스케일을 가진 데이터들은 모델의 성능을 떨어뜨리기 때문에 중요한 기법입니다.Feature Scaling의 효과 4가지- 알고리즘의 민감도 감소: 대부분의 머신러닝 알고리즘은 피처 값의 크기와 단위에 민감합니다. 예를 들어, 유클리디안 거리 기반 알고리즘(KNN, SVM 등)은 피처 값의 스케일에 큰 영향을 받습니다. 피처 값의 크기 차이가 크면 특정 피처가 모델에 과도한 영향을 미칠 수 있습니다. - 학습 속도 향상: 경사 하강법을 사용하는 알고리즘(선형 회귀, 로지스틱 회귀, 신경망 등)은 피처 값의 크기에 따라 학습..

pythonML 2022.03.05

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

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

pythonML 2022.03.04

[pythonML] cross_val_score(교차검증)/ GridSearchCV(교차검증, 최적 하이퍼 파라미터 튜닝)

1. cross_val_score - 교차 검증을 간단하게 해준다. cross_val_score(estimator, X, y=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs') estimator : classifier(분류)/regressor(회귀) X: 피처 데이터 셋 y: 레이블 데이터 셋 scoring: 예측 성능 평가 지표 ex)정확도 cv: 교차 검증 폴드 수 cross_val_score() 수행 후 반환값: scoring 파라미터로 지정된 성능 지표 측정값을 배열 형태로 반환함 from sklearn.tree import DecisionTreeClassifier from sklear..

pythonML 2022.03.02

[pythonML] K-fold / stratifiedKFold - 교차검증

# 교차검증은 언제 사용하는가? 1) 데이터셋이 부족할 때 2) 데이터 클래스가 불균형 할 때 3) 하나의 학습/ 검증 데이터로 이루어진 모델은 학습데이터에만 과적합되었을 가능성이 높음 하지만 여러차례 나누는 교차검증 방식을 통해 전체 데이터 전 범위를 학습하고, 검증 데이터로 성능을 평가함으로써보다 일반화된 모델을 생성할 수 있음. # 과적합 : 모델이 학습데이터에만 과도하게 최적화되어, 실제 예측을 다른 데이터로 하게 되면 예측 성능이 과도하게 떨어지는 것을 의미함 # 교차검증(cross validation) - 과적합 방지! 1. k폴드 교차 검증(K-fold cross vaildation): k개의 데이터 폴드 세트를 만들어서 k번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법이..

pythonML 2022.03.02

[python] 파이썬 클래스 python class

1) 클래스란? 클래스를 이용해 프로그래밍하면 데이터를 조작하는 함수를 하나의 묶음으로 관리할 수 있으므로 복잡한 프로그램도 더욱 쉽게 작성할 수 있다. name="마린" hp=40 damage=5 tank_name="탱크" tank_hp=150 tank_damage=35 def attack(name, location , damage): print("{0} : {1} 방향으로 적군을 공격 합니다. [공격력 {2}]".format(name,location,damage)) attack(name, "1시", damage) attack(tank_name, "1시", tank_damage) 매번 이런식으로 name, hp, damage 를 입력할 수 없으니 class를 이용하여 더욱 쉽게 할 수 있다. ​ 1-1..

python 2022.02.22
728x90
반응형