살콤아내 자기계발/파이썬

파이썬 머신러닝 완벽가이드 4주차 정리 (분류 202pg~)

살콤아내 2021. 5. 11. 10:36
728x90
반응형

 

202pg. UCK HAR Datasets.zip를 다운받고 실습

 

archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+Smartphones

 

UCI Machine Learning Repository: Human Activity Recognition Using Smartphones Data Set

Human Activity Recognition Using Smartphones Data Set Download: Data Folder, Data Set Description Abstract: Human Activity Recognition database built from the recordings of 30 subjects performing activities of daily living (ADL) while carrying a waist-moun

archive.ics.uci.edu

파이썬머신러닝완벽가이드 202pg.py
0.01MB

 

 

 

데이터를 분리하는 방법에는 쉼표, 공백 등이 있다. sep='|s+'는 공백, 앞에있는 키워드가 반복될 수 있다는 뜻으로 데이터를 분리한다. 

 

features.txt파일에는 column명이 중복되어 있으므로 데이터전처리 후 DataFrame에 로드해야 한다. (column명은 값을 구분하는 인덱스의 기능이 있으므로 고유해야 함)

 

column_index는 중복되는 column_name의 수를 말한다. (1은 중복되는 값이 없다는 뜻)

적어도 42개의 Column_name이 중복되어 있다.

 

중복된 Column_name에 _1, _2이렇게 이름을 새로 만든다.

 

.cumcount( ): 중복된 feature명에 새로운 number를 부여한다. 

 

 

.reset_index( ): 인덱스번호를 새롭게 부여 (test11)

 

pd.merge( ): 특정 키값으로 데이터프레임을 연결하는 것. how 파라미터는 outer/inner가 있다. 

- outer: 합집합

- inner: 교집합

참고) concatenate( ): 물리적(축방향)으로 데이터프레임을 연결하는 것

 

데이터 구조를 보기 위해 코드를 잠깐 수정한다. (노란부분 추가)

 

 

다음을 merge할 때 key값을 설정하지 않으면, 서로가 가지고 있는 중복된 column name을 기준으로 한다.

즉, 여기에서는 중복되는 index를 기준으로 붙여준다.

 

비로소 new_feature_name_df가 만들어진다.

 

(lambda x : x[0]+'_'+str(x[1]) if x[1] >0 else x[0] ,  axis=1)

lambda함수에서 x는 개개의 row값들이 들어간다. x[0]은 column_name의 element들을 의미하고, x[1]은 그 옆에 있는 dup_cnt의 element를 의미한다.  만약 dup_cnt값이 0보다 크면 (중복되는 column_name이 있다면) column_name에 _ (언더바) _ 숫자 형식으로 column_name이름을 새로 붙인다. 그렇지 않으면 x[0]값 (오리지널 column_name)을 반환한다.

 

 

 

 

205pg. Train/Test 데이터 Split하기

- isna( ) : 결측값의 수

 

 

 

결과

DecisionTree에서 criterion의 설정값을 바꿀 수 있음. (gini 계수가 변화함)

 

 

 

 

 

207pg. 교차검증 GridSearchCV를 이용해서 최적 파라미터 구하기

 

max_depth가 16일 때 최적의 parameter값이다.

 

 

208pg. 교차검증을 이용하지 않은 최적의 parameter값 찾기

 

verbose는 돌아가는 함수의 현재상태 메시지를 출력할지 결정하는 파라미터 

여기서는 max_depth가 8일 때 최적의 값이다.

 

 

참고) DecisionTree의 윗부분에 있을수록 기여도가 높음

 

 

728x90
반응형