成人字幕网视频在线观看|久热最新精品品在线|高跟丝袜麻麻求我调教|色先锋av影音先锋在线|调教强迫+粗暴强j+高h文

用戶畫像建模:方法與工具

用戶畫像是啥?聽起來很魁梧上的,反正你最清楚不過了。你的性別,年齡,喜好等等這些大都用戶畫像的維度。迅雷的產品總監blues認為,用戶畫像分析的維度,也可以按照人口屬性和產品行為屬性通過綜合類分析,

人口屬性:地域、年齡、性別、文化、職業、收入、生活習慣、消費習慣等;

產品行為:產品類別、亢奮頻率、產品喜好、產品驅動安裝、使用習慣、產品消費等;

這樣的話問題又他來了,互聯網公司憑借用戶畫像做啥呢?比較多是個性化營銷和精準廣告。

如果一個電商網站明白你是一個妹子,那你給你幫我推薦女性的商品,你更很可能去購買。

假如你是一個二十來歲的小伙子,在視頻網站上再看英超比賽,此時給你定向投放一個體育用品的廣告,哪怕你不是有會直接點擊甚至連產生消費行為,但總比給你精準投放一個婦女用品的廣告的效果要好。

完了,吹牛x到此結束吧。下面就開始從技術層面談談該如何理論和實踐用戶畫像建模。

每個公司占據的用戶信息不太同一,有些公司有用戶的都是假的信息(比如年齡),那種情況很很有可能不不需要建模預估了,本文指出再討論的是我們從用戶行為上建模分析和預測各種用戶畫像維度。

說到分析和預測,肯定變會他知道機器學習的分類和回歸算法(貝葉斯,決策樹,邏輯回歸,支持向量機等)。對,我們是采取措施這些有監督的學習方法,從標出好的訓練數據去學習到一個預測模型,后再對未標注的數據并且分析和預測。

從中文姓名預測國家性別你說起

幫幫我一個名字,讓我大家猜男還是女。哈哈哈哈,難免好像有點算八字的味道。

必須,有監督的學習方法,就要這樣一批標注數據:大量的人名,以及其性別。

下面是某網站的數據,

在我的驗證,上面的是真實的身份證數據,所以數據絕對靠譜不和真實。

隨后,從上面爬了幾百萬條的數據另外我們的訓練集和測試集。

其中,400w當成訓練樣本,100w當做測試樣本。

分類算法:貝葉斯

特征提取流程:

1依據姓氏辭典把姓氏可以去掉,他留不帶姓氏的名字;

2特征有三個維度,共有用X1,X2,X3(=X1X2)來表示。

如果是單字名,則X1為空格,X2為單字名,X3應該是前兩者拼接X1X2,

諸如郭靖,X1=””,X2=”靖”,X3=”靖”。

如果沒有是雙字名,則X1為第一個字,X2為第二個字,X3由前兩者拼接,

例如黃藥師,則X1=”藥”,X2=”師”,X3=”藥師”

要是是三個字以上,則只保留結果兩個字,當成雙字名處理。

上古時代貝葉斯公式

工程基于中,上面公式的分母可以不去掉后。

所以才這對名字X1X2,

P(男|X1X2)=P(男)*P(X1|男)*P(X2|男)*P(X1X2|男)

P(女|X1X2)=P(女)*P(X1|女)*P(X2|女)*P(X1X2|女)

最重要的注意的是,P(X1|男)來表示的是特訓樣本中,男性用戶中,名字那個字又出現X1的概率,假如第二個字再次出現X1,不算在這里。

舉個例子,如何能判斷謝霆鋒男還是女?

P(男|霆鋒)=P(男)*P(霆|男)*P(鋒|男)*P(霆鋒|男)

P(女|霆鋒)=P(女)*P(霆|女)*P(鋒|女)*P(霆鋒|女)

P(霆|男)意思是的是特訓樣本中,男性用戶第一個字再次出現霆的概率,

P(鋒|男)來表示的是特訓樣本中,男性用戶第二個字出現鋒的概率,

P(霆鋒|男)可以表示的是訓練樣本中,男性用戶第一個字是霆且第二個字是鋒字的概率。

工程實現程序中,在預測階段,很可能會碰到一些特征在訓練樣本中沒有,則要做一下光滑(比如說分子加一個很小的值),要不然男女概率都為0,無法預估。

關于這個模型,特征提取和采取貝葉斯模型,是建議參考了《設計和實現中文人名用字特征的性別不能判斷方法》這篇論文來做的。有篇論文,是用條件隨機場來做的,有興趣的讀者這個可以看看《基于條件隨機場的中文人名性別識別研究》。

在實際應用中,這個模型適合于我們很清楚用戶姓名可是還不知道性別的情況,比如說某電商網站,一般不用戶訂單中填的收貨人姓名也是虛無飄渺的,注冊信息中可能會類似性別但是不靠譜很可能是亂填的。

提起電商,不得已提淘寶,淘寶可是有用戶的身份證信息的,但是我聽說過淘寶會存放用戶兩個性別,一個是身份證信息的性別,一個是預測性別。也許是是他們實踐過,差別的業務場景,兩個性別的效果都一樣。

好了,再講講從用戶行為來建模預測。差別的產品的用戶行為信息不太相同,提取的特征在內方法也不對應。是對視頻用戶,提取的特征常見是這個視頻信息,比如說你再仔細看看了《小時代》,我們都會給你打上一個“楊冪“的標簽另外你其中一個特征。這對微博用戶,提取的特征來自于你發的微博內容和查哈的好友,比如說你參與了tfboys,或是你經常轉發他們的相關的微博,我們是會給你打上”tfboys“和”小鮮肉“的特征。這對新聞資訊用戶,提取的特征就是該新聞的主題,關鍵詞等信息。提取的特征不知從何而來于結構化信息和非結構化信息。對于結構化信息(數據庫表,xml,json等),很難吸納。但是這對非結構化信息,就需要自然語言處理和文本挖掘的方式來吸納,諸如最常見的tf-idf來其他提取關鍵詞,lda算法來其他提取主題。

是對注入的這些信息,就也可以當作用戶的基本上行為特征,其實也可以當做一部分用戶畫像的維度了。

然后,我們要如何憑借這些基本上行為特征,來進行其他用戶畫像維度的預測呢?

肯定采取什么措施分類的算法。相對于有監督學,當然了不需要男女,年齡等上標數據了。也可以跟第三方公司進行數據合作,也也可以人工標注。正常情況,也可以跟第三方廣告公司并且數據交換,按照cookie-**pping方式接受用戶關聯。

好了,特征和上標數據都有吧了,這樣這個可以建模了。分類劃分算法一大堆,貝葉斯,邏輯回歸,svm,gbdt,randomforest,神經網絡等等。開源的算法庫也有很多,現會介紹liblinear,xgboost,sklearn。

但,在實踐的工程師都明白了,算法并非那用的。個好的模型,之外算法本身,數據質量,數據預處理,特征工程等等這些都很最重要。且外,還必須依據業務情況,進行隨機應變。

下面多多分享一些工作中應用的奇技淫巧。

互聯網數據,并不像學術研究中的數據這樣完美,完全是“雜亂臟“。先不說業務不說,僅從數據上看,標出數據信息不全,特征數據稀落,類別不平衡等等。不過由于諸多問題,肯定導致我們模型不是什么這樣的話清楚。一種管用的思路,那是我們不分析預測全體用戶,只預測國家我們有把握預估的,是因為是對業務方來說,準確率對于召回率,對他們更重要。朝著遠處這種思路,也有不少一段時間方案。.例如分群分析和預測,分群的方法是可以從業務上分,也可以從算法上分。從業務上分,比如說視頻用戶可以不可分電影用戶和電視用戶等等。從算法上分,是可以方式聚類的方法來分。分群完畢后,再對完全不同的群體接受建模,通過測試集預估,過濾處理掉準確率較低的群體,記錄準確率較高的群體去掉。另外種嘗試方案,那是特征選擇和用戶再次篩選特點站了起來,特征選擇類型的算法也有很多,.例如信息增益,卡方測試等,剩余下有分類能力的特征,特征你選之后后,對用戶并且過濾,是否需要記錄這個用戶取決于你這個用戶是否強大加上多的有分類能力的特征。這個用戶過濾環節,訓練測試階段和預測階段都要參與。

那樣最好,talknotcheap,funyourcode。下面正在介紹幾個開放源代碼算法工具庫。

下面三點是我挑選工具的標準:

1支持什么類似libsvm格式的稀疏特征輸入

2支持什么百萬級別訓練數據

3輕量級,快

libsvm和liblinear

在特征維度是幾萬以上級別的前提下,

libsvm只能訓練訓練幾萬條樣本。

而liblinear這對百萬級別的樣本數量,速度很快,

千萬級別有點兒沉重。

liblinear相對于libsvm的缺點就是,又不能建議使用核函數,libsvm也正是這也所以才耗性能。

數據文件格式:標準的libsvm格式,每一行是

labelindex1:value1index2:value2

的稀疏向量的格式。

liblinear最簡單的訓練和測試方式:

traintrain.txtmodel.txt

predicttest.txtmodel.txtpredict.txt

在用liblinear之前,

見意進行L2范式輸入特征,利用簡單啊,也可以減慢訓練速度,很有可能會能提高準確率。

Xgboost

說過該工具,只好秀下這個工具的作者陳天奇大神。

xgboost是gbdt算法的實現,是可以做回歸,分類,和排序。支持各種語言動態鏈接庫,接受單機和分布式,允許libsvm的稀疏矩陣的數據格式,更加適合我于大規模行動數據集。

項目主頁

dmlc/xgboost·GitHub

單機版的python全局函數例子:

《xgboost快速入門》

xgboost快速入門

sklearn

涵蓋數據預處理,降維,分類,輪回,聚類,模型選擇。

sklearn也支持libsvm的數據格式,

不過某些算法不當然支持,

諸如1.5版本的隨機森林不支持什么稀疏矩陣,1.6就接受了。

1.6版本的gbdt也不允許稀疏矩陣。

kmeans的動態鏈接庫例子

《sklearn特征選擇類型和分類模型》

sklearn特征你選和分類模型

那樣最好,情況了用戶畫像建模的這段經歷,的確再體驗到算法并不是萬能的。所以我,我們出了把精力怎么學習那些神奇無比的算法原理,還必須在數據分析,數據處理,特征工程甚至于業務知識方面花功夫。特別是特征工程,在互聯網中是永恒之光的主題。百度鳳鳴谷在很久之前,始終沿稱人肉特征工程+線性模型的方法,也是熱門才語句深度學習來做特征。最近有篇Facebook的論文,是用gbdt提特征輸入給lr預測,有時間我也會去學習看看。

行了,晚安好夢。

2015年11月25號夜

本文作者:linger

本文鏈接:用戶畫像建模:方法與工具

歡迎轉載須注明出處

熱情關注公眾號:數據挖掘菜鳥【公眾號ID:data_bird】

關注大數據,數據挖掘,機器學習,深度學習

Copyright 2021 快鯨

掃碼免費用

源碼支持二開

申請免費使用

在線咨詢