蝸牛最近精力真是有限,很快就要大考了,不過讀書不能停。
接下來幾天讀一讀 《Mastering Machine Learning with Python in Six Steps》這本書。
更完整的思維導(dǎo)圖 在整本書結(jié)束后,在我的公眾號后臺回復(fù) MLb01 即可下載。
本文目的為速讀,一些重要的知識點有相關(guān)歷史博文鏈接,還沒有寫到的后續(xù)也會陸續(xù)推出。
如書名 in Six Steps,本書結(jié)構(gòu)也是 6 部分。
step 1: 主要講了 python 的安裝和一些基礎(chǔ)。
step 2: 講了機器學(xué)習(xí)的發(fā)展史,分為 監(jiān)督式,非監(jiān)督式,解決問題的基本流程,核心 package 的主要組件。
常用中間的CRISP-DM流程。
一個框架解決幾乎所有機器學(xué)習(xí)問題
通過一個kaggle實例學(xué)習(xí)解決機器學(xué)習(xí)問題
step 3: 機器學(xué)習(xí)基礎(chǔ),包括 數(shù)據(jù)的類型,特征工程,數(shù)據(jù)探索方法,以及回歸
/分類/聚類等基礎(chǔ)算法。
特征工程怎么做
機器學(xué)習(xí)算法應(yīng)用中常用技巧-1
輕松看懂機器學(xué)習(xí)十大常用算法
step 4: 調(diào)優(yōu),講了如何選擇合適的模型參數(shù),超參數(shù),Bagging/Boosting/Stacking 等模型融合方法。
Bagging 簡述
Adaboost 算法
淺談 GBDT
詳解 Stacking 的 python 實現(xiàn)
step 5: 講了在文本挖掘方面的應(yīng)用,包括 數(shù)據(jù)預(yù)處理的常用幾種方法,以及如何做 情感分析和推薦系統(tǒng)。
一個 tflearn 情感分析小例子
怎樣做情感分析
推薦系統(tǒng)
step 6: 深度學(xué)習(xí),簡單介紹幾種神經(jīng)網(wǎng)絡(luò),F(xiàn)NN,CNN,RNN。
step 3:
3.1 數(shù)據(jù)的類型
對于不同類型的數(shù)據(jù),可以通過相應(yīng)的描述性統(tǒng)計方法來觀察數(shù)據(jù):
3.2 特征工程
講了幾種基本方法,例如
對缺失數(shù)據(jù),
- < 5% 時可以刪除,2. 用 mean/average or mode
or median 等值進行代替,3. 用隨機數(shù)替代, 4. 或者用簡單的回歸/分類模型預(yù)測。
對類別數(shù)據(jù),
- 可以用 One Hot Encoder 轉(zhuǎn)化,2. 可以用 LabelEncoder() 轉(zhuǎn)化成 0 到
n_classes-1 的數(shù)字
對數(shù)據(jù)進行規(guī)范化,
- Normalizing:將數(shù)據(jù)范圍縮到 0 to 1, 2. standardization:將數(shù)據(jù)轉(zhuǎn)化成標準正態(tài)分布的
3.3 數(shù)據(jù)探索
單變量的可以用 value_counts(), hist(), boxplot() 等方法,
多變量的可以用 Correlation Matrix 看相關(guān)關(guān)系,
也可以用 matrix of scatter plots 看各對變量間的關(guān)系和分布,
通過這些可視化的觀察,可以得到一些基本的發(fā)現(xiàn),例如 missing values,各變量的range,變量間相關(guān)性等。
3.4 回歸
這一部分先講了幾種回歸的模型,然后講了幾種診斷。
幾種回歸的模型
1. Linear regression
在評估模型好壞時,常用指標
- R-squared:在 0~1 之間,越接近 1 模型越好
- RMSE
- MAE
2. Polynomial Regression
可以通過 from sklearn.preprocessing import PolynomialFeatures 實現(xiàn),用 R-squared 看哪個degree好一些。
3. Multivariate Regression
例如房價就會由 Bedrooms,Bathrms 等多個因素決定。
此處會涉及到 Multicollinearity 多重共線性問題,即多個自變量彼此強相關(guān)這時應(yīng)該只使用其中一個自變量。
可以用 VIF 來檢查多重共線性:
方法就是:
- 1.plot correlation matrix
- 2.Remove multicollinearity
Pseudo code:
vif = [variance_inflation_factor(X[independent_variables].values, ix)
if max(vif) > thresh:
del independent_variables[maxloc]
- 3.Build the multivariate linear regression model
lm = sm.OLS(y_train, X_train).fit()
幾種診斷:
1. outliers
通過執(zhí)行 Bonferroni outlier test,得到 p value < 0.05 為影響精度的異常值。
2. Homoscedasticity and Normality
誤差方差應(yīng)該是常數(shù),且誤差應(yīng)該是正態(tài)分布的。
3. Over-fitting and Under-fitting
隨著變量數(shù)的增加,模型的復(fù)雜性增加,過擬合的概率也會增加。
Regularization
是其中一種可以緩解過擬合問題的方法,常用 Ridge 和 LASSO 回歸通過懲罰系數(shù)的大小來處理這個問題。
持續(xù)更新