標籤:

假裝在專欄里發乾貨之邏輯回歸

邏輯回歸是個非常賽艇的模型,昨天到今天做了一個非常賽艇的項目,具體是什麼當然是天機不可泄露了,但是可以share一下寫的代碼。之前很少用scikit-learn 來做機器學習,這次是第一次用scikit-learn來做項目,感覺非常好用,解決一些小樣本量的問題還是效果很好的,強推。這次的樣本量大概只有150萬,所以就選擇了在自己的電腦上跑,learning curve和AUC曲線下次再補,模型內容大家都懂,直接放代碼。

import numpy as npfrom sklearn.cross_validation import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegressionimport clean_datax = clean_data.xy = clean_data.yx = np.mat(x)y = np.array(y)x = np.transpose(x)x = StandardScaler().fit_transform(x)y = y.astype(np.int)x_train, x_test, y_train, y_test = train_test_split(x,y,test_size = 0.3)lr = LogisticRegression(C = 10, penalty = l2,solver = liblinear)P = lr.fit(x_train,y_train)AC = lr.score(x_test,y_test)train_AC = lr.score(x_train,y_train)print lr.coef_print AC,train_AC

StandardDscaler.fit_transform()主要是對數據進行歸一化,後面就是對數據集進行拆分得到訓練集和測試集。lr.coef_輸出模型的係數,最後輸出模型的訓練誤差和測試誤差。

最後的訓練誤差和測試誤差都在27%左右,上下不超過0.5%,從學習曲線和AUC曲線來看效果還不錯。至於第五行的import clean_data,是我自己寫的一個洗數據的腳本,改成自己的數據就可以運行了,邏輯回歸的具體參數設置可以參照scikit-learn的官方文檔sklearn.linear_model.LogisticRegression

假裝分享乾貨技能get,以後開始水(逃

推薦閱讀:

Python預測分析核心演算法——Day4、5、6
相比於深度學習,傳統的機器學習演算法難道就此沒落了嗎,還有必要去學習嗎?
BOW 演算法,被CNN 打爆之前的王者
來自小姐姐的入門推薦:七套機器學習基本演算法(Python)
數據嗨客 | 第6期:不平衡數據處理

TAG:機器學習 |