Datawhale - 데이터 발굴 - task 2: 특징 파생 + 특징 선택
5971 단어 학술
특징 파생 특징 선택: 각각 IV 값 과 랜 덤 숲 등 으로 특징 선택.............................................................
특징 파생
특징 파생: 개인 (전문가) 의 경험 을 이용 하여 데이터 에서 결과 에 더 큰 영향 을 미 치 는 특징 을 추출 합 니 다. 흔히 기 존의 데이터 특징 필드 는 가감 승제 등 조작 을 통 해 새로운 필드 를 생 성 합 니 다. 이런 필드 는 일부 선형 알고리즘 을 결합 하여 훈련 할 때 모델 효 과 를 향상 시 키 는 역할 을 합 니 다.예 를 들 어 사용자 가 배달, 같은 가게 A 를 주문 하면 일주일 동안 사용자 가 이 가게 에서 구 매 한 횟수 를 집계 하고 심지어 한 달 동안 의 범위 까지 집계 하면 이런 시간 주기 특징 은 파생 특징 으로 여 겨 질 수 있다.구체 적 으로 어떻게 왔어요?머리 를 두 드 리 며 생각 한 것 중 일 부 는 통계 적 의 미 를 가진다. 일 부 는 스스로 모색 하기 때문에 처음부터 경험 을 통 해 얻 은 것 이 라 고 말 했다. 기술 이 있다 고 말 해 야 한다. 그것 은 바로 경기 에 많이 참가 하고 다른 사람 이 특징 을 어떻게 추출 하 는 지 보고 스스로 탐색 하 는 것 이다.
import pandas as pd
import numpy as np
dataPath = "D:\\Data\\dataAnalyse\\"
dataFile = "data.csv"
data = pd.read_csv(dataPath+dataFile,encoding='gbk')
label = data.columns
print(' =',label)
결과:
= Index(['Unnamed: 0', 'custid', 'trade_no', 'bank_card_no',
'low_volume_percent', 'middle_volume_percent',
'take_amount_in_later_12_month_highest',
'trans_amount_increase_rate_lately', 'trans_activity_month',
'trans_activity_day', 'transd_mcc', 'trans_days_interval_filter',
'trans_days_interval', 'regional_mobility', 'student_feature',
'repayment_capability', 'is_high_user', 'number_of_trans_from_2011',
'first_transaction_time', 'historical_trans_amount',
'historical_trans_day', 'rank_trad_1_month', 'trans_amount_3_month',
'avg_consume_less_12_valid_month', 'abs',
'top_trans_count_last_1_month', 'avg_price_last_12_month',
'avg_price_top_last_12_valid_month', 'reg_preference_for_trad',
'trans_top_time_last_1_month', 'trans_top_time_last_6_month',
'consume_top_time_last_1_month', 'consume_top_time_last_6_month',
'cross_consume_count_last_1_month',
'trans_fail_top_count_enum_last_1_month',
'trans_fail_top_count_enum_last_6_month',
'trans_fail_top_count_enum_last_12_month',
'consume_mini_time_last_1_month',
'max_cumulative_consume_later_1_month',
'max_consume_count_later_6_month',
'railway_consume_count_last_12_month',
'pawns_auctions_trusts_consume_last_1_month',
'pawns_auctions_trusts_consume_last_6_month',
'jewelry_consume_count_last_6_month', 'status', 'source',
'first_transaction_day', 'trans_day_last_12_month', 'id_name',
'apply_score', 'apply_credibility', 'query_org_count',
'query_finance_count', 'query_cash_count', 'query_sum_count',
'latest_query_time', 'latest_one_month_apply',
'latest_three_month_apply', 'latest_six_month_apply', 'loans_score',
'loans_credibility_behavior', 'loans_count', 'loans_settle_count',
'loans_overdue_count', 'loans_org_count_behavior',
'consfin_org_count_behavior', 'loans_cash_count',
'latest_one_month_loan', 'latest_three_month_loan',
'latest_six_month_loan', 'history_suc_fee', 'history_fail_fee',
'latest_one_month_suc', 'latest_one_month_fail', 'loans_long_time',
'loans_latest_time', 'loans_credit_limit', 'loans_credibility_limit',
'loans_org_count_current', 'loans_product_count', 'loans_max_limit',
'loans_avg_limit', 'consfin_credit_limit', 'consfin_credibility',
'consfin_org_count_current', 'consfin_product_count',
'consfin_max_limit', 'consfin_avg_limit', 'latest_query_day',
'loans_latest_day'],
dtype='object')
상기 특징 중 많은 것 이 파생 후의 특징 이다. 예 를 들 어 latestone_month_suc、latest_one_month_fail、latest_six_month_loan, 이것들 은 모두 잘 처 리 된 특징 입 니 다.
IV 값 (정 보 량)
IV 의 전 칭 은 Information Value 이 고 중국 어 는 정보 가치 또는 정 보 량 을 의미한다.주로 입력 변수 에 대해 인 코딩 과 예측 능력 평 가 를 하 는 데 쓰 인 다.우 리 는 논리 회귀, 결정 트 리 등 모델 방법 으로 분류 모델 을 구축 할 때 자주 독립 변 수 를 선별 해 야 한다.예 를 들 어 우 리 는 200 개의 후보 독립 변수 가 있 는데 보통 상황 에서 200 개의 변 수 를 모델 에 직접 넣 지 않 고 의합 훈련 을 하 는 것 이 아니 라 몇 가지 방법 으로 이 200 개의 독립 변수 중에서 일 부 를 골 라 서 모델 에 넣 어 입 모 변수 목록 을 형성한다.그러면 우 리 는 어떻게 입 모 변 수 를 선택 합 니까?
입 모 변 수 를 선택 하 는 과정 은 비교적 복잡 한 과정 으로 고려 해 야 할 요소 가 매우 많다. 예 를 들 어 변수의 예측 능력, 변수 간 의 상관 성, 변수의 단순 성 (쉽게 생 성 되 고 사용), 변수의 강성 (쉽게 돌아 가지 않 음), 변수 가 업무 적 으로 해석 할 수 있 는 가능성 (도전 당 할 때 설명 할 수 있 는 통) 등 이다.그러나 그 중에서 가장 주요 하고 직접적인 평가 기준 은 변수의 예측 능력 이다.
'변수의 예측 능력' 이라는 말 은 매우 추상 적 이 고 주관적 이 며 비 양 적 이다. 변 수 를 선별 할 때 우 리 는 '나 는 이 변수의 예측 능력 이 매우 강하 다 고 생각 하기 때문에 그 가 모델 에 들 어가 야 한다' 고 말 할 수 없다.우 리 는 구체 적 인 계량 화 기준 으로 모든 독립 변수의 예측 능력 을 평가 하고 이런 계량 화 지표의 크기 에 따라 어떤 변수 가 모델 에 들 어 가 는 지 확인 해 야 한다.IV 는 바로 이러한 지표 로 그 는 독립 변수의 예측 능력 을 평가 할 수 있다.유사 한 지 표 는 정보 이득, 지 니 계수 등 도 있다.
이 IV 값 은 WOE 값 에 의존 하 는데 여 기 는 좀 복잡 하 니 시간 을 내 서 잘 연구 해 보 세 요.블 로그 참고 가능.
랜 덤 숲
from sklearn.ensemble import RandomForestClassifier
y_train = data['status']
x_train = data.drop(['status'],axis =1)
forest = RandomForestClassifier(n_estimators=10000, random_state=0,n_jobs=1)
forest.fit(x_train, y_train)
importance = forest.feature_importances_
imp_result = np.argsort(importance)[::-1]
for i in range(data.shape[1]):
print("%2d. %-*s %f"%(i+1, 30, label[i], importance[imp_result[i]]))
참고 블 로그
[특징 공정 시리즈 3] 현성 특징의 파생 특징 파생 - 1 IV 값 의 계산 및 사용