關於xgboost:
xgboost是大規模並行boosted tree的工具,它是目前最快最好的開源boosted網上有不少介紹的文章,這裡就此略過,直奔主題,寫一篇煉丹文。tree工具包,比常見的工具包快10倍以上。在資料科學方面,有大量kaggle選手選用它進行資料探勘比賽,其中包括兩個以上kaggle比賽的奪冠方案。在工業界規模方面,xgboost的分布式版本有廣泛的可移植性,支援在yarn,
mpi, sungrid engine等各個平台上面執行,並且保留了單機並行版本的各種優化,使得它可以很好地解決於工業界規模的問題。
(1)語料格式
content,label
在麼,1
你好,0
...
左邊為文字,右邊為標籤,從這裡也可以看出來,疑問句判別問題可以簡單的作為乙個二分類問題來解決。
(2)語料預處理
tokenizer = jieba.tokenizer()
從本地讀取語料後,進行簡單的分詞處理
(3)特徵工程
vectorizer = tfidfvectorizer(smooth_idf=true,
analyzer=analyzer,
ngram_range=(1, 1),
min_df=1, norm='l1')
這裡對分詞後的語料進行tfidf特徵抽取,構造訓練矩陣。
(1)模型引數
模型引數使用k折交叉驗證進行對比,確定
for i, param in enumerate(param_grid):
cv_result = xgb.cv(param, self.train_matrix,
num_boost_round=self.num_boost_round, # max iter round
nfold=self.nfold,
stratified=self.stratified,
metrics=self.metrics, # metrics focus on
early_stopping_rounds=self.early_stopping_rounds) # stop when metrics not get better
最終得到表現最好的一組引數及相應的迭代次數等
(2)模型訓練
_, best_param, best_iter_round = self.model_param_select()
self.model = xgb.train(dtrain=self.train_matrix, params=best_param, num_boost_round=best_iter_round)
與交叉驗證尋找最佳引數不用,訓練模型時使用全部的資料進行訓練
(3)模型結果
param select 0, auc: 0.9793438, iter_round: 207, params: , now best auc: 0.9793438
param select 1, auc: 0.9799142, iter_round: 350, params: , now best auc: 0.9799142
param select 2, auc: 0.9802402, iter_round: 280, params: , now best auc: 0.9802402
...param select 24, auc: 0.97926, iter_round: 694, params: , now best auc: 0.980495
param select 25, auc: 0.9803058, iter_round: 824, params: , now best auc: 0.980495
param select 26, auc: 0.980129, iter_round: 880, params: , now best auc: 0.980495
最終可以看到,模型的auc在0.980495得到最佳的引數,儲存模型。
from interrogative.api import *
train()
tag = recognize(u'今天 來 點 兔子 嗎')
output = '是疑問句' if tag else '不是疑問句'
print(output)
1、xgboost引數解釋:
2、具體原始碼可以在我的github上找到:
GBDT與XGBoost 基於負梯度擬合 的說明
為了不讓自己在深度學習的網路裡迷失 嗝 回顧了一下機器學習 相信大家看到整合學習的時候,類似於adaboost等思路還是挺清晰的,bdt裡面的基於擬合殘差思想也好理解,但是碰到gbdt時候有點蒙蔽 只針對小白,大佬繞行 這怎麼就變成了根據損失函式的負梯度擬合呢,編輯公式有點煩,我就把pad筆記拿上來...
基於詞典的實體識別
ner 命名實體識別 一般是詞典和模型方式結合,詞典負責已有詞識別,模型負責未知詞識別。在不需發現未知詞的情況下基於詞典的實體識別已足夠 基於字典的ner也有兩種做法 字串多模匹配 和 切詞 詞典加入自定義詞庫 多模匹配有兩種基本演算法 trie樹 和 記錄長度集合的最長匹配 trie樹匹配效率更高...
基於Opencv的顏色識別
hsv模型中顏色的引數分別是 色調 h hue 飽和度 s saturation 亮度 v value 由a.r.smith在1978年建立的一種顏色空間,也稱六角錐體模型 hexcone model 1 色調 h hue 用角度度量,取值範圍為0 360 從紅色開始按逆時針方向計算,紅色為0 綠色...