hybrid appro
工作的「離職 衍伸出「待
月1 日離職 間為2 個月
圖 3.2
ta Reducti
來自於求職tribute 逐一
Solve the
而一般求職 要分析短期 有imbalance 包括成本敏感Class Imb
職者在找到一balance Pr
一份新工作 況,會造成 生。sensitive le g、增加取樣
roblem)
作時,短期間 成分類的數量earning)[5]和 樣 oversamp
經歷
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
1. 成本敏感學習:正負例分別給定不同的錯誤分類成本,以減少整體分類 所花的成本,缺點是需要使用者自行定義不同目標類別的錯誤分類成本,
當使用者判斷力不足時,則無法訂出適當的錯誤成本。
2. 減少取樣:舉例來說,假設有一組資料包含 100 個負例(少數類別)和 1000 個正例(多數類別)的資料,減少取樣就是從 1000 個負例中隨機選出 100 個和正例個數相同的為訓練資料,缺點是可能造成有些有用的負例未被 選到,解決方法就是做很多次,最後再歸納出來。
3. 增加取樣:複製正例直到數量和負例相同,優點是確保在決策邊緣的例 子不會被修剪掉,缺點是當有noisy data 時,會導致過度配適,解決方 法是在訓練時不要加入任何新的訊息。
4. 混合方法:是結合減少取樣(藉由隨機二段抽樣產生)和增加取樣(重複已 經存在的正例或是在鄰近產生新的正例)。
本研究因資料集不平衡,且不希望在決策邊緣的資料被修剪掉,故採增加取 樣方式來平衡資料,增加取樣最著名的抽樣法便是SMOTE[7]演算法,利用 SMOTE 演算法使訓練資料裡的少數類別數量增加至和多數類別相近。
SMOTE 演算法:
利用 SMOTE 產生新訓練資料之示意圖如圖 3.3,設有參數(T, N, K, R),其中 T 代表少數類別的訓練資料筆數、N 代表少數類別增加的倍率、K 代表鄰居個數、
R 代表多數類別的訓練資料筆數,其演算法為針對少數類別的每筆訓練資料 xi,找 出其 K 個最近的鄰居,從 K 個最近的鄰居隨機抽樣 N 個鄰居,針對每個隨機抽樣 的鄰居 yi,計算位移difi=yi-xi,增加的訓練資料zi=xi+gap*difi(gap:隨機產生一介 於 0 至 1 之間的數字)
例:設 xi為(8,6),yi為(2,8),xi與 yi的差異值 dif=(2,8)−(8,6)=(-6,2);
設取得的 gap 是 0.4,則 xi為(8,6)+0.4×(-6,2)=(5.6,6.8)。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 3.3 利用 SMOTE 產生新訓練資料示意圖
將原本的求職者基本資料表、學歷資料表以及經歷資料表,經過上述Data Preprocessing 之後,產生一個新的轉職資料表,共有 44 個欄位,詳如表 3.11;
後續的各項轉職分析,則按照需要選取各個屬性來使用。
表 3.11 彙整所有新增屬性的轉職資料表
中文名稱 欄位名稱 欄位型態 長度 說明
主鍵 pkey bigint 20 主鍵
個人編號 id_no bigint 20 資料關聯用
性別 sex tinyint 1 1=男、0=女
生日 birthday date 10 格式:yyyy-MM-dd
所屬世代 generation tinyint 1 3=30 世代、4=40 世代、5=50 世 代、6=60 世代、7=70 世代、8=80 世代、9=90 世代
工作個數 seq tinyint 2 轉職者的第幾個工作
轉職次數 rownum tinyint 2 轉職者的第幾次轉職 原工作任職時間 stay_month1 int 4 原工作任職時間(月) 新工作任職時間 stay_month2 int 4 新工作任職時間(月) 年資(月) seniority_month int 4 轉職時累計工作年資(月) 年資(年) seniority_year float 6 轉職時累計工作年資(年) 轉職頻率 frequency float 6 平均一年換幾個工作
待業時間(月) wait_month int 4 從原公司轉至新公司經過的待 業時間(月)
所有資料
訓練資料
多數類別資料
少數類別資料
新的訓練資料
測試資料 分類
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
轉職前原職類(大類) job1 varchar 4 轉職前原工作所屬職務(大類) 轉職前原職類(中類) job_M1 varchar 7 轉職前原工作所屬職務(中類) 轉職前原職類(小類) job_S1 varchar 10 轉職前原工作所屬職務(小類) 轉職後新職類(大類) job2 varchar 4 轉職後新工作所屬職務(大類) 轉職後新職類(中類) job_M2 varchar 7 轉職後新工作所屬職務(中類) 轉職後新職類(小類) job_S2 varchar 10 轉職後新工作所屬職務(小類) 是否為相似工作 similar_job varchar 1 轉職前的原職類是否與轉職後
的新職類為同一個職類大類,T=
是、F=否
轉職前原產業(大類) industry1 varchar 4 轉職前原工作所屬產業(大類) 轉職前原產業(中類) industry_M1 varchar 7 轉職前原工作所屬產業(中類) 轉職前原產業(小類) industry_S1 varchar 10 轉職前原工作所屬產業(小類) 轉職後新產業(大類) industry2 varchar 4 轉職後新工作屬於產業(大類) 轉職後新產業(中類) industry_M2 varchar 7 轉職後新工作屬於產業(中類) 轉職後新產業(小類) industry_S2 varchar 10 轉職後新工作屬於產業(小類) 是否為相似產業 similar_industry varchar 1 轉職前的工作所屬產業是否與 轉職後的工作所屬產業為同一 個產業大類,T=是、F=否 轉職前原公司規模 size1 tinyint 1 轉職前原公司的公司規模大
小,1=1~30 人、2=30~500 人、
3=500 人以上
轉職後新公司規模 size2 tinyint 1 轉職後新公司的公司規模大 小,1=1~30 人、2=30~500 人、
3=500 人以上
公司規模是否相似 trans_size varchar 2 轉職前後兩公司規模是否相 似,S2S=小轉小、S2M=小轉中、
S2L=小轉大、M2S=中轉小、
M2M=中轉中、M2L=中轉大、
L2S=大轉小、L2M=大轉中、
L2L=大轉大
學歷 degree tinyint 1 轉職者畢業的最高學歷:1=博
士、2=碩士、3=大學、四技、二 技、4=二專、三專、五專、5=
高中、高職、6=國中含以下 學校代碼 school varchar 4 轉職者畢業最高學歷的所屬學
校
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
科系代碼(大類) major varchar 4 轉職者畢業最高學歷科系 (大類)
科系代碼(中類) major_M varchar 7 轉職者畢業最高學歷科系 (中類)
原公司任職日期 start_date1 date 10 格式:yyyy-MM-dd 原公司離職日期 end_date1 date 10 格式:yyyy-MM-dd 新公司任職日期 start_date2 date 10 格式:yyyy-MM-dd 新公司離職日期 end_date2 date 10 格式:yyyy-MM-dd 原公司任職月份 start_month1 varchar 2 格式:MM
原公司離職月份 end_month1 varchar 2 格式:MM 新公司任職月份 start_month2 varchar 2 格式:MM 新公司離職月份 end_ month2 varchar 2 格式:MM
原工作任職時年齡 start_age1 tinyint 2 原工作任職日期 – 生日 原工作任職時
年齡區間
start_age_range1 varchar 5 顯示原工作任職當時年齡為:
20~29、30~39、40~49、50~59 或60~69
原工作離職時年齡 end_age1 tinyint 2 原工作離職日期 – 生日 原工作離職時
年齡區間
end_age_range1 varchar 5 顯示原工作離職當時年齡為:
20~29、30~39、40~49、50~59 或60~69
新工作任職時年齡 start_age2 tinyint 2 新工作任職日期 – 生日 新工作任職時
年齡區間
start_age_range2 varchar 5 顯示新工作任職當時年齡為:
20~29、30~39、40~49、50~59 或60~69
新工作離職時年齡 end_age2 tinyint 2 新工作離職日期 – 生日 新工作離職時
年齡區間
end_age_range2 varchar 5 顯示新工作離職當時年齡為:
20~29、30~39、40~49、50~59 或60~69
在原公司 三個月內離職
old_stay_lte_3 varchar 1 T=是、F=否 在新公司
三個月內離職
new_stay_lte_3 varchar 1 T=是、F=否 是否一年轉職3 次或
更多
frequency_gte_3 varchar 1 T=是、F=否
‧
(3)leaf no決策樹演
stance 裡的某
成(參考圖 3
nd Conquer e_list 和 Att _list 為描述 的attribute 提 性選擇指標如 如Informati
屬世代
class label。
向下遞迴式分 hod 來建樹
使其對選擇類 gini index 代求職者