劉宇波
(湖北大學 計算機學院,湖北 武漢 430061)
滿意度是一種心理狀態(tài),是指一個人對一段關(guān)系質(zhì)量的主觀評價。航空公司對于乘客滿意度的管理尤為重要,對乘客滿意度進行測評,可以分析影響滿意度的關(guān)鍵因素、衡量當前乘客的滿意度水平、針對產(chǎn)品以及服務(wù)做出改進策略。通過構(gòu)建滿意度預(yù)測模型,可以對乘客進行市場細分,對于不同乘客推出不同的服務(wù)產(chǎn)品,充分挖掘大數(shù)據(jù),提高乘客滿意度。
隨著計算機技術(shù)的發(fā)展,諸多學者采用機器學習等人工智能方式對顧客滿意度進行預(yù)測。范曉婷[1]通過對頭部企業(yè)“口碑”平臺的交易數(shù)據(jù)進行挖掘分析,運用機器學習理論搭建顧客滿意度預(yù)測模型,并對不同算法的預(yù)測結(jié)果進行對比分析。章凱兵[2]基于yelp官方用戶和商戶信息數(shù)據(jù),運用LSTM模型進行用戶偏好挖掘,最后運用人工神經(jīng)網(wǎng)絡(luò)對用戶滿意度進行預(yù)測。陳雪松等[3]通過對36名學生進行實驗觀察收集數(shù)據(jù),然后運用GBDT模型和馬爾代夫模型設(shè)計了圖像搜索環(huán)境下的用戶滿意度預(yù)測模型。
本文采用kaggle網(wǎng)站公開數(shù)據(jù)集。其中包含了10萬余條乘客數(shù)據(jù),23種特征。具體如下:Satisfaction:乘客滿意或不滿意,待預(yù)測項;Gender:性別(男,女);Age:年齡;Type of Travel:飛行目的(個人旅行、商務(wù)旅行);Class:乘客飛機上的旅行等級(商務(wù)、環(huán)保、環(huán)保加);Flight Distance:本次行程的飛行距離;Seat comfort:座椅舒適度滿意度(0:不適用;1-5);Departure/Arrival time convenient:出發(fā)/到達時間方便的滿意度;Food and drink:食品和飲料的滿意度;Gate location:gate位置的滿意度;Inflight WIFI service:機上WIFI的滿意度;Inflight entertainment:機上娛樂的滿意度;Online support:線上支持滿意度;Ease of Online booking:在線預(yù)訂滿意度;On-board service:機上服務(wù)滿意度;Leg room service:腿部客房服務(wù)的滿意度;Baggage handling:行李處理滿意度;Checkin service:值機服務(wù)滿意度;Cleanliness:清潔滿意度;Online boarding:線上登機滿意度;Departure/Arrival Delay in Minutes:出發(fā)/到達時延遲分鐘數(shù)。
利用padas庫將數(shù)據(jù)導入,隨后用info函數(shù)查看數(shù)據(jù)的總體信息,該函數(shù)可以查看所有特征、類型,以及數(shù)據(jù)缺失情況,如圖1所示。運行代碼后發(fā)現(xiàn)只有到達時延遲分鐘數(shù)存在缺失值,于是采取中值填充的方法彌補缺失值,代碼如下:data['Arrival Delay in Minutes'].fillna(data['Arrival Delay in Minutes'].median(axis=0),inplace=True)。
然后要進行特征分類,分成數(shù)值特征和類別特征。年齡、飛行距離、出發(fā)/達到延遲分鐘數(shù)四種都屬于數(shù)值特征,除了上述四種以及預(yù)測目標滿意度外,剩下的18種屬于類別特征。將類別特征的類型進行修改,修改完成后再次查看數(shù)據(jù)信息,如圖2所示,所有特征類型已經(jīng)修改完成,無缺失值。
采用matplotlib庫和seaborn庫對數(shù)據(jù)進行可視化,以便能夠更直觀地觀察特征之間的關(guān)系,挖掘數(shù)據(jù)信息。
圖1 數(shù)據(jù)總體信息
圖2 修改后數(shù)據(jù)信息
(1)查看待預(yù)測目標:滿意乘客的比例,如圖3。發(fā)現(xiàn)滿意與不滿意的人數(shù)相差不大,趨近于平衡,分類可以看作均衡分類。
圖3 滿意度比例扇形圖
(2)用熱力圖查看數(shù)值特征之間的聯(lián)系,如圖4,橫軸為到達延遲分鐘數(shù),縱軸代表出發(fā)延遲分鐘數(shù)。發(fā)現(xiàn)出發(fā)延遲分鐘和到達延遲分鐘的相關(guān)度很高,高達0.96,于是用散點圖分析之間的聯(lián)系,如圖5??梢钥闯?,這些點大部分呈直線排列,說明二者間有很大的線性相關(guān)性。而這也是符合邏輯的,因為一旦飛機起飛時延誤了,那么它的落地時間也會很大概率延誤。
圖4 數(shù)值特征熱力圖
圖5 出發(fā)和到達延遲分鐘數(shù)散點圖
(3)查看類別特征和滿意度之間的關(guān)系,由于篇幅原因選取部分圖片展示,如圖6,每張圖的下方有特征名。
特征工程是機器學習建模中重要的一個環(huán)節(jié),特征處理結(jié)果很大程度上決定模型擬合度根據(jù)上述特征分類結(jié)果,對數(shù)值特征和類別特征分別進行處理。
對于類別特征,最常用的處理方式是將其進行編碼。編碼方式有很多種,本文對數(shù)據(jù)集中的類別特征主要采用獨熱編碼和二分編碼,類別數(shù)有兩種的特征采用二分編碼,類別個數(shù)兩個以上的采用獨熱編碼。
圖6 類別特征和乘客滿意度的關(guān)系
首先針對類別特征的類別個數(shù)進行分類,借助describe函數(shù),將類別個數(shù)為2或大于2的分開。結(jié)果顯示,類別個數(shù)為2的特征有性別、乘客種類以及飛行目的,剩下的特征類別個數(shù)都大于2。隨后對這兩類特征進行編碼,類別個數(shù)為2的用二分編碼將兩種類別編為0和1,其余特征用獨熱編碼,采用了pandas庫中的get_dummies函數(shù)進行特征提取。
將兩類特征處理完后,用concat函數(shù)合并,將要預(yù)測的目標顧客滿意度進行編碼處理,將不滿意和滿意編為0和1,方便后續(xù)的建模預(yù)測。
將處理完成的數(shù)據(jù)用train_test_split函數(shù)分為訓練集和測試集,其中測試集比例為0.2。隨后用機器學習的算法對訓練集進行訓練,然后預(yù)測結(jié)果并和測試集進行比較。采用以下5種算法進行建模:knn算法、決策樹算法、隨機森林算法、gradientboosting算法和catboost算法,隨后采用了投票法將效果較好的模型進行融合,建模訓練比較結(jié)果。
對于每種模型,都用了七種評價指標,分別為:準確率(accuracy)、精確率(precision)、召回率(recall)、f1值、roc曲線下面積(roc_auc)、均衡準確率(balance_accuracy)和混淆矩陣(confusion_matrix)。表1是模型的訓練結(jié)果,保留了小數(shù)點后4位小數(shù)。vot是由gb、rf、cat進行投票融合的模型。
表1 模型訓練結(jié)果
根據(jù)結(jié)果,這些分類器的準確度都在90%以上,具體為:gradientboosting算法:95.73%;knn算法:93.13%;隨機森林算法:95.81%;決策樹算法:94.42%;catboost算法:96.25%;模型融合:96.15%。其中,catboost算法各項指標最高,準確度達到了96.25%,融合模型的準確率次之。knn以及決策樹算法均低于95%。在這6種模型中,除了knn和決策樹,其他4種都屬于集成算法,因此這可能是導致它們的準確度更高的原因之一。在訓練中,僅僅對gradientboosting算法和catboost算法的參數(shù)進行了微調(diào),而其他的算法都選擇了默認參數(shù),這也是導致預(yù)測結(jié)果不同的因素。在第二章的特征工程中如果采取不同的方式處理數(shù)據(jù),可能也會對結(jié)果產(chǎn)生影響。
雖然結(jié)果有些許差異,但本文幾種模型的表現(xiàn)都較好,其中以catboost算法最優(yōu)。還有許多分類算法在本文并沒有提及,比如svm支持向量機,集成算法中的xgboost算法等。航空公司可以根據(jù)本文的數(shù)據(jù)及結(jié)果,對模型進行改進或者使用更多不同的算法進行建模,對算法參數(shù)進行調(diào)整,以得到更優(yōu)性能的模型,也可以在本文機器學習基礎(chǔ)之上采取深度學習算法,以得到更高的準確率。對乘客滿意度進行更為深入的預(yù)測研究,以便提前制定策略,增加客流量。