用戶精細化分類也可以稱做用戶畫像,是目前很常見的一種運營手段,目的是為了更好的服務不同性質的客戶,提高每個環(huán)節(jié)的轉化率,最大程度挖掘客戶價值,創(chuàng)造利潤。 那么如何構建用戶畫像,或者說構建精細化的運營體系,這個過程的數(shù)據(jù)工作其實就是:
本次案例就來分享如何通過數(shù)據(jù)挖掘的手段對用戶進行精細化分類,以保險行業(yè)為例。 一、客戶細分客戶細分根據(jù)客戶的分類維度進行細分,保險行業(yè)的分類的維度一般包括5類,分別是社會特征因素、自然屬性因素、行為特征因素、態(tài)度偏好因素和生活狀態(tài)與個性因素。 前三者屬于事前分類維度,是表露在外的因素,即通過接觸就可知道的因素;后兩者是屬于事后分類維度,需要通過調研才能了解,反應客戶內在本質的區(qū)別。對客戶細分,我們往往通過事后分類維度做客戶分類,以保證分類的深入性,再通過事前分類維度進行描述與驗證,以保證分類客戶的差異性和可接觸性。這里用Python讀取調研的Excel數(shù)據(jù),將事后分類維度取出來并查看類型,發(fā)現(xiàn)9個維度都是數(shù)字類型并且部分維度之間似乎存在一定的相關性,這種相關性可能會造成重疊信息的擴大化,增加分類偏差,因此先對這9個維度進行因子分析。 1.1 因子分析 因子分析是將多個實測變量轉換為少數(shù)幾個綜合指標(或稱潛變量),它反映一種降維的思想。通過降維將相關性高的變量聚在一起,從而減少需要分析的變量的數(shù)量,而減少問題分析的復雜性。 因子分析的前提是具有一定的相關性,因此必須通過了kmo和bartlett球形度檢驗的數(shù)據(jù)才能進行因子分析。
通過了適用性檢驗后進行因子分析: 查看9個公因子的特征值以及方差貢獻率,一般選擇方差累計貢獻率大于0.8的公因子,而文中選擇了特征值大于1的公因子,即方差累計貢獻率為0.697的前4個公因子。接著根據(jù)4個公因子重新擬合。 查看公因子的提取度,發(fā)現(xiàn)當使用4個公因子時,4個公因子對9個維度的解釋率都超過0.6,說明提取的4個公因子對原始維度有一定的解釋力。 以第一個維度為例,我們發(fā)現(xiàn)4個公因子對原始的第一個維度的解釋程度分別為:0.418,-0.046,0.697,0.293,表明公因子1與公因子3之間存在一定的相關性,達不到因子分析的既定效果,因此需要進行旋轉,使得各個公因子具有差異化的特征。 還是以第一個維度為例,我們發(fā)現(xiàn)經(jīng)過最大方差法旋轉之后,4個公因子對原始的第一個維度的解釋程度分別為:-0.069,0.153,0.203,0.824,即公因子4對第一個維度的解釋力較大。旋轉后4個公因子在原始維度上被明顯的區(qū)別出來,即4個公因子具有差異性的特征。 1.2 聚類分析 經(jīng)過因子分析之后,我們把所有的客戶分成了具有差異性特征的4類客戶(代表了9個事后分類維度),接著我們通過因子類型以及保費金額兩個維度進行聚類分析。 聚類分析是針對數(shù)據(jù)的相似性和差異性將一組數(shù)據(jù)分為幾個類別。常用的聚類分析方法有kmeans、DBSCAN以及層次聚類。這里使用的是層次聚類,因為層次聚類對數(shù)據(jù)的類型要求不高而且事先不需要知道分為幾類,缺點在于計算量大。
# 因子類型以及保費金額的量綱不一致,需進行標準化處理result['因子類型'] = result['因子類型'].astype('int64')result['Z因子類型'] = (result['因子類型']-result['因子類型'].mean())/result['因子類型'].std()result['Z保費金額'] = (result['保費金額']-result['保費金額'].mean())/result['保費金額'].std()result = result.set_index(result['問卷編號'])#層次聚類分析Z = hierarchy.linkage(result[['Z保費金額', 'Z因子類型']], method='ward', metric='euclidean')hierarchy.dendrogram(Z, labels=result.index)
通過層次聚類分析,我們將所有客戶分為了5類。接下來我們通過方法分析檢驗分類的效果。我們發(fā)現(xiàn)無論是保費金額還是因子類型,通過層次聚類分組后,p值都小于0.05,即組間存在顯著性差異,聚類效果良好。 #使用方差分析檢驗 聚類效果a = anova_lm(ols('保費金額~C(細分類型)', data=result[['保費金額', '細分類型']]).fit())[:1]b = anova_lm(ols('因子類型~C(細分類型)', data=result[['因子類型', '細分類型']]).fit())[:1]f_oneway_result = pd.concat([a.iloc[:, 3:], b.iloc[:, 3:]])f_oneway_result['列名'] = ['保費金額', '因子類型']print(f_oneway_result) F PR(>F) 列名C(細分類型) 306.108565 1.157673e-152 保費金額C(細分類型) 742.643495 1.999808e-251 因子類型 通過單因素方差分析,我們知道細分類型各組間存在顯著性差異,那么這種差異怎么表現(xiàn)出來呢?對于類別型數(shù)據(jù)我們用占比比較,對于數(shù)值型數(shù)據(jù)我們用均值進行比較,然后根據(jù)保費金額以及因子類別對細分類型命名。
二、目標客戶選取細分客戶之后,要選取目標客戶。選取目標客戶主要從兩個維度來度量,客戶吸引力和企業(yè)競爭力。 企業(yè)吸引力主要體現(xiàn)在各個保險公司擁有各個細分類型客戶的數(shù)量,即市場占有率。 客戶吸引力包括兩個方面,一是客戶規(guī)模,二是保費金額,根據(jù)其公司需要,按權重6:4進行計算,得出客戶吸引力。 #統(tǒng)計客戶吸引力和企業(yè)競爭力result_final = pd.DataFrame()result_final['客戶數(shù)量'] = result.groupby('細分類型')['問卷編號'].count()result_final['保費金額'] = result.groupby('細分類型')['保費金額'].mean()result_final['客戶規(guī)模'] = result_final['客戶數(shù)量']/result_final['客戶數(shù)量'].sum()result_final['客戶規(guī)模標準化'] = ( result_final['客戶規(guī)模']-result_final['客戶規(guī)模'].mean())/result_final['客戶規(guī)模'].std()result_final['保費金額標準化'] = ( result_final['保費金額']-result_final['保費金額'].mean())/result_final['保費金額'].std()result_final['客戶吸引力'] = 0.6*result_final['客戶規(guī)模標準化']+0.4*result_final['保費金額標準化']result2 = pd.crosstab(result['細分類型'], result['保險公司的選擇'], normalize=0)result2.columns = ['甲', '乙', '丙', '丁']result_final['企業(yè)競爭力'] = result2['甲']print(result_final) 客戶數(shù)量 保費金額 客戶規(guī)模 客戶規(guī)模標準化 保費金額標準化 客戶吸引力 企業(yè)競爭力細分類型 中端享受型客戶 216 2098.268056 0.303371 1.477388 -0.291968 0.769645 0.240741中端外向型客戶 133 2779.996241 0.186798 -0.188688 0.441347 0.063326 0.458647中端自信型客戶 123 1708.326829 0.172753 -0.389420 -0.711415 -0.518218 0.162602低端居家型客戶 159 1481.796226 0.223315 0.333215 -0.955087 -0.182106 0.119497高端享受型客戶 81 3780.096296 0.113764 -1.232494 1.517124 -0.132647 0.320988#矩陣分析圖plt.rcParams['font.sans-serif'] = 'Simhei'plt.rcParams['axes.unicode_minus'] = Falseplt.subplot(1, 1, 1)plt.scatter(result_final['企業(yè)競爭力'], result_final['客戶吸引力'], s=200, c='r', marker='o')plt.hlines(y=0, xmin=0, xmax=0.5)plt.vlines(x=0.25, ymin=-1.2, ymax=1.2)plt.xlabel('企業(yè)競爭力')plt.ylabel('客戶吸引力')for a, b, c in zip(result_final['企業(yè)競爭力'], result_final['客戶吸引力'], result_final.index): plt.text(a, b, c, ha='center', va='bottom', fontsize=10) 由上圖可知,中端外向型客戶是甲公司的首選客戶,其次是中端享受型客戶和高端享受型客戶,而低端居家型客戶和中端自信型客戶在資源不足的情況下暫可放棄。 三、目標客戶定位目標客戶定位包括兩部分,一是目標客戶長什么樣,也就是用戶畫像,通過事前分類維度描述目標客戶畫像;二是目標客戶需求是什么,針對需求進行精準營銷。分析過程依然是先進行方差分析,通過方差分析的維度用均值或者占比表現(xiàn)差異性,最后通過對應分析展示效果。 3.1 目標客戶畫像 事前分類維度一共由6個,分別是城市、年齡、性別、家庭月收入、汽車價格、學歷以及職業(yè)。通過方差分析發(fā)現(xiàn),學歷以及職業(yè)在細分類型組間沒有顯著性差異,故忽略這兩個維度繼續(xù)分析。
從對應分析效果圖可知,甲公司首選目標客戶中端外向型客戶,主要分布在北京。武漢的分布比例也比其他細分類型要高,年齡集中在31-40之間,性別為男,家庭月收入在1.5萬到2萬元之間,汽車價格在20-30萬元間。 3.2 目標客戶需求分析 目標客戶關注哪些需求,如何分析?依然是選定各細分類型客戶,然后對各個維度進行方差分析,通過方差分析檢驗后的維度用均值或者占比進行比較。而未通過方差分析的維度,則直接用中端外向型客戶進行各個維度的比較,數(shù)值型用均值,類型用占比。 具體見下: #事前分類維度方差分析result['職業(yè)'] = result['職業(yè)'].replace(' ', '6').astype('int64')target_sd = []for i in ['性別', '年齡', '城市', '家庭月收入', '汽車價格', '學歷', '職業(yè)']: formula = '(' + str(i) + '~' + 'C(' + '細分類型)' + ')' a = anova_lm(ols(formula, data=result[[i, '細分類型']]).fit())[:1] target_sd.append(pd.DataFrame( {'c': str(i), 'F': a['F'], 'PR(>F)': a['PR(>F)']}))target_result = pd.concat(target_sd)target_result = target_result[target_result['PR(>F)'] < 0.05]#具有顯著性差異的維度結果展示print(target_result) c F PR(>F)C(細分類型) 性別 57.940193 2.614665e-42C(細分類型) 年齡 553.274636 4.801252e-216C(細分類型) 城市 3629.629395 0.000000e+00C(細分類型) 家庭月收入 268.460859 3.193752e-140C(細分類型) 汽車價格 901.193079 7.780527e-276#具有顯著性差異的維度命名Y = result[['性別', '年齡', '城市', '家庭月收入', '汽車價格', '細分類型']]Y['性別'] = Y['性別'].map({1: '男', 2: '女'})Y['年齡'] = Y['年齡'].map({1: '18-30歲', 2: '31-40歲', 3: '41歲以上'})Y['城市'] = Y['城市'].map( {1: '北京', 2: '上海', 3: '武漢', 4: '沈陽', 5: '廣州', 6: '西安', 7: '成都'})Y['家庭月收入'] = Y['家庭月收入'].map( {1: '小于7000元', 2: '7000-10000元', 3: '10000-15000元', 4: '15000-20000元', 5: '20000元以上'})Y['汽車價格'] = Y['汽車價格'].map( {1: '10萬元以下', 2: '10-20萬元', 3: '20-30萬元', 4: '30萬元以上'})# 多因子對應分析mca = prince.MCA(n_components=2, n_iter=10, random_state=1)mca = mca.fit(Y)ax = mca.plot_coordinates( X=Y, ax=None, figsize=(10, 6), show_row_points=False, show_column_points=True, column_points_size=100, show_column_labels=True, legend_n_cols=1) 由上面的分析可知:
總結最后,市場上用戶畫像的方法很多,許多企業(yè)也提供用戶畫像服務,將用戶畫像提升到很有逼格一件事。金融企業(yè)是最早開始用戶畫像的行業(yè),由于擁有豐富的數(shù)據(jù),金融企業(yè)在進行用戶畫像時,對眾多緯度的數(shù)據(jù)無從下手,總是認為用戶畫像數(shù)據(jù)緯度越多越好,畫像數(shù)據(jù)越豐富越好,某些輸入的數(shù)據(jù)還設定了權重甚至建立了模型,搞的用戶畫像是一個巨大而復雜的工程。但是費力很大力氣進行了畫像之后,卻發(fā)現(xiàn)只剩下了用戶畫像,和業(yè)務相聚甚遠,沒有辦法直接支持業(yè)務運營,投入精力巨大但是回報微小,可以說是得不償失,無法向領導交代。 事實上,用戶畫像涉及數(shù)據(jù)的緯度需要業(yè)務場景結合,既要簡單干練又要和業(yè)務強相關,既要篩選便捷又要方便進一步操作。用戶畫像需要堅持三個原則,分別是人口屬性和信用信息為主,強相關信息為主,定性數(shù)據(jù)為主。 1、信用信息和人口屬性為主 描述一個用戶的信息很多,信用信息是用戶畫像中重要的信息,信用信息是描述一個人在社會中的消費能力信息。任何企業(yè)進行用戶畫像的目的是尋找目標客戶,其必須是具有潛在消費能力的用戶。信用信息可以直接證明客戶的消費能力,是用戶畫像中最重要和基礎的信息。一句戲言,所有的信息都是信用信息就是這個道理。其包含消費者工作、收入、學歷、財產(chǎn)等信息。 定位完目標客戶之后,企業(yè)需要觸達客戶,人口屬性信息就是起到觸達客戶的作用,人口屬性信息包含姓名、性別,電話號碼,郵件地址,家庭住址等信息。這些信息可以幫助聯(lián)系客戶,將產(chǎn)品和服務推銷給客戶 2、采用強相關信息,忽略弱相關信息 強相關信息就是同場景需求直接相關的信息,其可以是因果信息,也可以是相關程度很高的信息。 如果定義采用0到1作為相關系數(shù)取值范圍的化,0.6以上的相關系數(shù)就應該定義為強相關信息。例如在其他條件相同的前提下,35歲左右人的平均工資高于平均年齡為30歲的人,計算機專業(yè)畢業(yè)的學生平均工資高于哲學專業(yè)學生,從事金融行業(yè)工作的平均工資高于從事紡織行業(yè)的平均工資,上海的平均工資超過海南省平均工資。從這些信息可以看出來人的年齡、學歷、職業(yè)、地點對收入的影響較大,同收入高低是強相關關系。簡單的將,對信用信息影響較大的信息就是強相關信息,反之則是弱相關信息。 用戶其他的信息,例如用戶的身高、體重、姓名、星座等信息,很難從概率上分析出其對消費能力的影響,這些弱相關信息,這些信息就不應該放到用戶畫像中進行分析,對用戶的信用消費能力影響很小,不具有較大的商業(yè)價值。 用戶畫像和用戶分析時,需要考慮強相關信息,不要考慮弱相關信息,這是用戶畫像的一個原則。 3、將定量的信息歸類為定性的信息 用戶畫像的目的是為產(chǎn)品篩選出目標客戶,定量的信息不利于對客戶進行篩選,需要將定量信息轉化為定性信息,通過信息類別來篩選人群。 例如可以將年齡段對客戶進行劃分,18歲-25歲定義為年輕人,25歲-35歲定義為中青年,36-45定義為中年人等??梢詤⒖紓€人收入信息,將人群定義為高收入人群,中等收入人群,低收入人群。參考資產(chǎn)信息也可以將客戶定義為高、中、低級別。定性信息的類別和方式方法,金融可以從自身業(yè)務出發(fā),沒有固定的模式。 將企業(yè)各類定量信息,集中在一起,對定性信息進行分類,并進行定性化,有利與對用戶進行篩選,快速定位目標客戶,是用戶畫像的另外一個原則。 4、用戶畫像的方法介紹,不要太復雜 需要結合業(yè)務需求進行用戶畫像,從實用角度出發(fā),比如這里我們將用戶畫像信息分成五類信息。分別是社會特征因素、自然屬性因素、行為特征因素、態(tài)度偏好因素和生活狀態(tài)與個性因素。它們基本覆蓋了業(yè)務需求所需要的強相關信息,結合外部場景數(shù)據(jù)將會產(chǎn)生巨大的商業(yè)價值。特別復雜的用戶畫像緯度例如八個緯度,十個緯度信息都不利于商業(yè)應用,其他具有價值的信息,基本上都可以歸納到這五個緯度。過于復雜用戶畫像這個工作,對商業(yè)意義也不太大。 最后,以上就是本篇分享,希望對大家有用。 |
|