python tfidf特征变换_机器学习的“万能模板” - 数据分析
最后是文本變量。很遺憾Titanic數(shù)據(jù)集中沒有合適的文本變量。一般我們處理文本變量的方法是,合并所有的文本形成一個(gè)變量,然后調(diào)用Count Vectorizer或者TfidfVectorizer算法,將文本數(shù)據(jù)轉(zhuǎn)換成數(shù)字。
大部分情況下,TfidfVectorizer比CountVectorizer表現(xiàn)更好;而且,下面一組參數(shù)幾乎任何時(shí)候都有效。
如果你只在訓(xùn)練集上使用這些文本向量,請把它們保存到磁盤,以便在驗(yàn)證集上繼續(xù)使用。
3. 正則化特征,特征選擇
然后,我們來到了棧模塊(stack module),這里的棧不是模型棧而是特征棧。在經(jīng)過上一步的處理后,我們得到了不同的特征。
根據(jù)你得到的是稠密特征還是稀疏特征,你可以使用numpy模塊的hstack或者sparse hstack把所有特征存進(jìn)一個(gè)棧。
如果還有其他處理過程,比如PCA或者特征選擇,我們還可以使用FeatureUnion模塊。本文后面會(huì)繼續(xù)提到分解和特征選擇。
有了上面的特征,我們就可以開始應(yīng)用機(jī)器學(xué)習(xí)模型了。現(xiàn)階段,你只需要考慮基于樹的模型就足夠了。這些模型包括:
隨機(jī)森林分類器 RandomForestClassifier
隨機(jī)森林回歸器 RandomForestRegressor
ExtraTreesClassifier
ExtraTreesRegressor
XGBClassifier
XGBRegressor
在直接使用上面的特征之前,首先需要進(jìn)行正則化。對于使用線性模型而言,我們可以選擇scikit-learn中的Normalizer或者StandardScaler。這些正則方法只針對稠密特征有效,在稀疏特征上不會(huì)給出好的結(jié)果。
假如上面的過程得到了一個(gè)“好的”模型,那我們可以繼續(xù)優(yōu)化超參數(shù);假如沒有得到
“足夠好的”模型,我們可以通過下面的方法繼續(xù)優(yōu)化模型。
下一步包含分解方法:
PCA
為了簡單起見,我們不談LDA和QDA變換。對高維數(shù)據(jù),一般采用PCA算法分解數(shù)據(jù)。對圖片數(shù)據(jù),我們從10-15個(gè)components開始逐漸增加,直到結(jié)果質(zhì)量充分提高;對其他類型數(shù)據(jù),我們初始選擇50-60個(gè)components。
SVD
對于文本數(shù)據(jù),在文本轉(zhuǎn)換成稀疏矩陣后,使用奇異值分解(Singular Value Decomposition, SVD)轉(zhuǎn)換數(shù)據(jù)。Scikit-learn提供了一份SVD的變種算法TruncatedSVD。
對于TF-IDF或者count向量化方法,SVD的components個(gè)數(shù)選擇120-200之間一般是有效果的。更高的components個(gè)數(shù)會(huì)提高效果,但也需要更高的計(jì)算代價(jià)。
貪心特征選擇
有多種方法達(dá)到特征選擇的目的,其中最常見的一個(gè)是貪心特征選擇(向前或向后)。在貪心特征選擇中,我們選擇一個(gè)特征,訓(xùn)練一個(gè)模型,然后在一項(xiàng)固定的指標(biāo)上評估模型表現(xiàn)。然后我們一個(gè)一個(gè)地添加或者刪除特征,記錄每一步中模型的表現(xiàn)。最后選擇讓模型表現(xiàn)最好的特征集。貪心特征選擇的一種實(shí)現(xiàn),可以參考這里
Gradient Boosting Machine
特征選擇還可以通過Gradient Boosting Machine達(dá)到。推薦使用xgboost代替scikit-learn中的GBM實(shí)現(xiàn),因?yàn)閤gboost更快而且更加具有可伸縮性。
4. 模型選擇,超參數(shù)優(yōu)化
我們一般采用下面的算法選擇機(jī)器學(xué)習(xí)模型:
分類
隨機(jī)森林 Random Forest
GBM
邏輯回歸 Logistic Regression
樸素貝葉斯 Naive Bayes
支持向量機(jī) Support Vector Machine
k近鄰 k-Nearest Neighbors
回歸
隨機(jī)森林 Random Forest
GBM
線性回歸 Linear Regression
嶺回歸 Ridge
Lasso
SVR
下面是作者給出他建議的模型和相對應(yīng)的經(jīng)驗(yàn)參數(shù)值,參數(shù)的選擇經(jīng)過時(shí)間和數(shù)據(jù)的積累。作者號稱,上面的模型和參數(shù)組合已經(jīng)超過了其他所有的模型。
5. 保存轉(zhuǎn)換器
最后,記得保存轉(zhuǎn)換器,在驗(yàn)證集應(yīng)用訓(xùn)練出的模型。
三、總結(jié)
1.識(shí)別問題的類型,數(shù)據(jù)分割成兩部分:訓(xùn)練集,驗(yàn)證集
2.識(shí)別數(shù)據(jù)中的變量,形成特征
3.正則化征,選擇特征
4.選擇模型,優(yōu)化超參數(shù)
5.保存轉(zhuǎn)換器
作者:renqHIT
總結(jié)
以上是生活随笔為你收集整理的python tfidf特征变换_机器学习的“万能模板” - 数据分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NVMe PM951 硬盘写入速度优化
- 下一篇: python实现哈希表