python tfidf特征變換_機器學習的“萬能模板” - 數據分析

最后是文本變量。很遺憾Titanic數據集中沒有合適的文本變量。一般我們處理文本變量的方法是,合并所有的文本形成一個變量,然后調用Count Vectorizer或者TfidfVectorizer算法,將文本數據轉換成數字。

大部分情況下,TfidfVectorizer比CountVectorizer表現更好;而且,下面一組參數幾乎任何時候都有效。

如果你只在訓練集上使用這些文本向量,請把它們保存到磁盤,以便在驗證集上繼續使用。

3. 正則化特征,特征選擇

然后,我們來到了棧模塊(stack module),這里的棧不是模型棧而是特征棧。在經過上一步的處理后,我們得到了不同的特征。

根據你得到的是稠密特征還是稀疏特征,你可以使用numpy模塊的hstack或者sparse hstack把所有特征存進一個棧。

如果還有其他處理過程,比如PCA或者特征選擇,我們還可以使用FeatureUnion模塊。本文后面會繼續提到分解和特征選擇。

有了上面的特征,我們就可以開始應用機器學習模型了。現階段,你只需要考慮基于樹的模型就足夠了。這些模型包括:

隨機森林分類器 RandomForestClassifier

隨機森林回歸器 RandomForestRegressor

ExtraTreesClassifier

ExtraTreesRegressor

XGBClassifier

XGBRegressor

在直接使用上面的特征之前,首先需要進行正則化。對于使用線性模型而言,我們可以選擇scikit-learn中的Normalizer或者StandardScaler。這些正則方法只針對稠密特征有效,在稀疏特征上不會給出好的結果。

假如上面的過程得到了一個“好的”模型,那我們可以繼續優化超參數;假如沒有得到

“足夠好的”模型,我們可以通過下面的方法繼續優化模型。

下一步包含分解方法:

PCA

為了簡單起見,我們不談LDA和QDA變換。對高維數據,一般采用PCA算法分解數據。對圖片數據,我們從10-15個components開始逐漸增加,直到結果質量充分提高;對其他類型數據,我們初始選擇50-60個components。

SVD

對于文本數據,在文本轉換成稀疏矩陣后,使用奇異值分解(Singular Value Decomposition, SVD)轉換數據。Scikit-learn提供了一份SVD的變種算法TruncatedSVD。

對于TF-IDF或者count向量化方法,SVD的components個數選擇120-200之間一般是有效果的。更高的components個數會提高效果,但也需要更高的計算代價。

貪心特征選擇

有多種方法達到特征選擇的目的,其中最常見的一個是貪心特征選擇(向前或向后)。在貪心特征選擇中,我們選擇一個特征,訓練一個模型,然后在一項固定的指標上評估模型表現。然后我們一個一個地添加或者刪除特征,記錄每一步中模型的表現。最后選擇讓模型表現最好的特征集。貪心特征選擇的一種實現,可以參考這里

Gradient Boosting Machine

特征選擇還可以通過Gradient Boosting Machine達到。推薦使用xgboost代替scikit-learn中的GBM實現,因為xgboost更快而且更加具有可伸縮性。

4. 模型選擇,超參數優化

我們一般采用下面的算法選擇機器學習模型:

分類

隨機森林 Random Forest

GBM

邏輯回歸 Logistic Regression

樸素貝葉斯 Naive Bayes

支持向量機 Support Vector Machine

k近鄰 k-Nearest Neighbors

回歸

隨機森林 Random Forest

GBM

線性回歸 Linear Regression

嶺回歸 Ridge

Lasso

SVR

下面是作者給出他建議的模型和相對應的經驗參數值,參數的選擇經過時間和數據的積累。作者號稱,上面的模型和參數組合已經超過了其他所有的模型。

5. 保存轉換器

最后,記得保存轉換器,在驗證集應用訓練出的模型。

三、總結

1.識別問題的類型,數據分割成兩部分:訓練集,驗證集

2.識別數據中的變量,形成特征

3.正則化征,選擇特征

4.選擇模型,優化超參數

5.保存轉換器

作者:renqHIT

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457553.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python實現哈希表

# python 實現哈希表class HashTable:"""哈希函數的構造解決沖突"""def __init__(self, source):self.source sourceself._index []self._val []self.table []self._mod 13def Output(self):print(self._index)print(self._val)def _create…

商品綜合評價排名

店內有很多產品,而且包含但不局限于以下指標:瀏覽量、訪客數、平均停留時長、詳情頁跳出率、下單轉化率、下單支付轉化率、支付轉化率、下單金額、下單商品件數、下單買家數、支付金額、支付商品件數、加購件數、訪客平均價值、收藏人數、客單價、搜索支…

ionic資源網站

http://ionichina.com/topic/570b1f4ecd63e4247a7cfcf3 http://doc.ionicmaterialdesign.com/#intro http://ionicmaterial.com/demo/ 10大materialhttp://www.open-open.com/news/view/192f93e轉載于:https://www.cnblogs.com/znsongshu/p/6079357.html

pytorch神經網絡因素預測_實戰:使用PyTorch構建神經網絡進行房價預測

微信公號:ilulaoshi / 個人網站:lulaoshi.info本文將學習一下如何使用PyTorch創建一個前饋神經網絡(或者叫做多層感知機,Multiple-Layer Perceptron,MLP),文中會使用PyTorch提供的自動求導功能,訓練一個神經…

SQL基本操作

SQL 操作 檢索數據 SELECT 檢索數據 -- 檢索單個列 SELECT 列名 FROM table_name;-- 檢索多個列 SELECT 列1, 列2 FROM table_name;-- 檢索所有列 SELECT * FROM table_name;-- 檢索不同的值 SELECT DISTINCT 列名 FROM table_name;限制檢索結果 -- SQL Server / Access SE…

git 忽略 部分文件夾_git提交忽略某些文件或文件夾

記得第一次用 github 提交代碼,node_modules 目錄死活傳不上去,哈哈哈,后來才知道在 .gitignore 文件里設置了忽略 node_modules 目錄上傳。是的, .gitignore 文件就是設置那些你不想用 git 一起上傳的文件和文件夾。比如剛接觸到…

Ajax實現原理詳解

Ajax:Asynchronous javascript and xml,實現了客戶端與服務器進行數據交流過程。使用技術的好處是:不用頁面刷新,并且在等待頁面傳輸數據的同時可以進行其他操作。 這就是異步調用的很好體現。首先得了解什么是異步和同步的概念。…

SpringJDBC解析3-回調函數(update為例)

PreparedStatementCallback作為一個接口,其中只有一個函數doInPrepatedStatement,這個函數是用于調用通用方法execute的時候無法處理的一些個性化處理方法,在update中的函數實現: protected int update(final PreparedStatementCr…

python上下文管理器

DAY 23. python上下文管理器 Python 的 with 語句支持通過上下文管理器所定義的運行時上下文這一概念。 此對象的實現使用了一對專門方法,允許用戶自定義類來定義運行時上下文,在語句體被執行前進入該上下文,并在語句執行完畢時退出該上下文&…

勾股定理python思路_趣叮咚編程數學揭秘:為什么勾股定理a+b=c?

我們都知道:三角形3個外角之和360度可是誰知道為什么等于360度呢?其實利用編程制作動圖演繹了解啦:那勾股定理abc又是為什么呢?還有很多有趣的數學公式都可以演繹:圓的面積公式、圓周長...通過動圖演繹原來晦澀難懂的定…

System.InvalidOperationException : 不應有 Response xmlns=''。

xml如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <Response version"2"><datacash_reference>4700203048783633</datacash_reference><information>Failed to identify the card scheme of the supp…

Navicat Premium連接SQL Server

Navicat Premium連接SQL Server 步驟&#xff1a; 激活SQL Server 服務配置SQL Server網絡配置連接SQL Server 激活SQLServer服務 直接搜索 計算機管理 點 服務和應用程序&#xff0c; 點 SQL Server配置管理器&#xff0c; 雙擊第一個SQL Server服務 不出意外的話&#xf…

mysql 單標遞歸_MySql8 WITH RECURSIVE遞歸查詢父子集的方法

背景開發過程中遇到類似評論的功能是&#xff0c;需要時用查詢所有評論的子集。不同數據庫中實現方式也不同&#xff0c;本文使用Mysql數據庫&#xff0c;版本為8.0Oracle數據庫中可使用START [Param] CONNECT BY PRIORMysql 中需要使用 WITH RECURSIVE需求找到name為張三的孩子…

processon完全裝逼指南

一、引言 作為一名IT從業者&#xff0c;不僅要有扎實的知識儲備&#xff0c;出色的業務能力&#xff0c;還需要具備一定的軟實力。軟實力體現在具體事務的處理能力&#xff0c;包括溝通&#xff0c;協作&#xff0c;團隊領導&#xff0c;問題的解決方案等&#xff0c;這些能力在…

mysql在空閑8小時之后會斷開連接(默認情況)

調試程序的過程發現&#xff0c;在mysql連接空閑一定時間&#xff08;默認8小時&#xff09;之后會斷開連接&#xff0c;需要重新連接&#xff0c;也引發我對重連機制的思考。轉載于:https://www.cnblogs.com/ppzbty/p/5707576.html

selector多路復用_多路復用器Selector

Unix系統有五種IO模型分別是阻塞IO(blocking IO)&#xff0c;非阻塞IO( non-blocking IO)&#xff0c;IO多路復用(IO multiplexing)&#xff0c;信號驅動(SIGIO/Signal IO)和異步IO(Asynchronous IO)。而IO多路復用通常有select&#xff0c;poll&#xff0c;epoll&#xff0c;k…

解決svn log顯示no author,no date的方法之一

只要把svnserve.conf中的anon-access read 的read 改為none&#xff0c;也不需要重啟svnserve就行 sh-4.1# grep "none" /var/www/html/svn/pro/conf/svnserve.conf ### and "none". The sample settings below are the defaults. anon-access none轉載…

REST framework 權限管理源碼分析

REST framework 權限管理源碼分析 同認證一樣&#xff0c;dispatch()作為入口&#xff0c;從self.initial(request, *args, **kwargs)進入initial() def initial(self, request, *args, **kwargs):# .......# 用戶認證self.perform_authentication(request)# 權限控制self.che…

解決larave-dompdf中文字體顯示問題

0、使用MPDF dompdf個人感覺沒有那么好用&#xff0c;最終的生產環境使用的是MPDF&#xff0c;github上有文檔說明。如果你堅持使用&#xff0c;下面是解決辦法。可以明確的說&#xff0c;中文亂碼是可以解決的。 1、安裝laravel-dompdf依賴。 Packagist&#xff1a;https://pa…

mfc程序轉化為qt_小峰的QT學習筆記

我的專業是輸電線路&#xff0c;上個學期&#xff0c;我們開了一門架空線路設計基礎的課&#xff0c;當時有一個大作業是計算線路的比載&#xff0c;臨界檔距&#xff0c;弧垂最低點和安裝曲線。恰逢一門結課考試結束&#xff0c;大作業ddl快到&#xff0c;我和另外兩個同專業的…