天天看點

機器學習--項目實際過程中的經驗

**pandas 線上

《統計學方法》 李航著 《機器學習》 周志華著 清華出版社 《劍指offer》 何海濤著

一次讀取大檔案可能把記憶體爆掉, 是以可以采取分塊讀取

import pandas as pd

path = \'./diabetes.csv\'
data = pd.read_csv(path,sep=\',\',engine = \'python\',iterator=True)
loop = True
chunk_size = 1024
chunks = []
index = 0
while loop:
    try:
        print(index)
        chunk = data.get_chunk(chunk_size)
        chunks.append(chunk)    
        index+=1
    except StopIteration as siterEx:
        loop = False
        print(\'the end...\')
        
print(\'start to combine...\')
data = pd.concat(chunks,ignore_index=True)
data.head()

           
numpy.random.rand(5,10)  # 5 行 10 列 随機生成
numpy.random.randn(5,10) # 5 行 10 列 呈正态分布 随機
numpy 對矩陣降維用 .ravel    或 .flattern()   可以 對比 spark 的 RDD 
pandas 處理 NaN 資料 填充 用 fillna()

numpy 處理 nan 資料 填充用 nan_to_num  (  auc = np.nan_to_num(metrics.auc(fpr,tpr))

pandas 輸出格式不友好,那麼就轉成 html 然後用浏覽器檢視表格 df.to_html()

直接用 psycopg2  讀取列是個問題, 建議改用 SQLAlchemy 擷取他進階點的 ORM 架構

           
在做模型訓練的時候,尤其是在訓練集上做交叉驗證,通常想要将模型儲存下來,然後放到獨立的測試集上測試,下面介紹的是Python中訓練模型的儲存和再使用。

scikit-learn已經有了模型持久化的操作,導入joblib即可

from sklearn.externals import joblib
1
模型儲存
>>> os.chdir("workspace/model_save")
>>> from sklearn import svm
>>> X = [[0, 0], [1, 1]]
>>> y = [0, 1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)  
>>> clf.fit(train_X,train_y)
>>> joblib.dump(clf, "train_model.m")
1
2
3
4
5
6
7
8
通過joblib的dump可以将模型儲存到本地,clf是訓練的分類器

模型從本地調回
>>> clf = joblib.load("train_model.m")
1
通過joblib的load方法,加載儲存的模型。

然後就可以在測試集上測試了

clf.predit(test_X) #此處test_X為特征集

           
機器學習--項目實際過程中的經驗