機器學習之訓練好的模型儲存與載入

2021-09-25 23:48:21 字數 2824 閱讀 8518

載入資料

刪除無用資料

刪除缺失資料

過取樣平衡資料

提取資料

對資料進行標準化

切分資料

訓練模型

儲存模型

載入模型

# 匯入邏輯回歸模型

from sklearn.linear_model import logisticregression

# 匯入標準化函式

from sklearn.preprocessing import standardscaler

# 匯入資料切分函式

from sklearn.model_selection import train_test_split as tts

匯入儲存模型函式

from sklearn.externals import joblib

path =

"../datas/breast-cancer-wisconsin.data"

# 列名

names =

['id'

,'clump thickness'

,'uniformity of cell size'

,'uniformity of cell shape'

,'marginal adhesion'

,'single epithelial cell size'

,'bare nuclei'

,'bland chromatin'

,'normal nucleoli'

,'mitoses'

,'class'

]# 載入資料

data = pd.read_csv(path,names=names)

# 設定pandas可以顯示的結果行數/列數

pd.set_option(

'display.max_rows'

,200

)pd.set_option(

'display.max_columns'

,200

)# 刪除為空的資料和帶'?'的資料

data = data.replace(

'?',np.nan)

.dropna(

)# 分析資料刪除無用的列

data.drop(columns=

['id'

],inplace=

true

)# 使用過取樣,進行類別平衡

counts = data[data[

'class'

].isin(

['2'])

]['class'

].count(

)#444

print

(counts)

# 提取所有的標籤為4的資料作為一組新增資料

data_add = data[data[

'class'

].isin(

['4'])

]# 新增資料,保持樣本平衡

data = pd.concat(

[data_add,data]

,axis=0)

print

(data.shape)

# 提取x和y

x = data.iloc[:,

:-1]

y = data.iloc[:,

-1]# 標準化

ss = standardscaler(

)x = pd.dataframe(ss.fit_transform(x)

,columns=names[1:

-1])

# 分割資料集

x_train,x_test,y_train,y_test = tts(x,y,test_size=

0.3,random_state=3)

# 邏輯回歸模型訓練

model_lr = logisticregression(max_iter=

500)

model_lr.fit(x_train,y_train)

print

(model_lr.coef_)

print

(model_lr.score(x_test,y_test)

)# 儲存模型 這是乙個二進位制檔案

joblib.dump(filename=

'lr.model'

,value=model_lr)

# 匯入模型儲存於載入函式

from sklearn.externals import joblib

# 載入模型

model_lr = joblib(filename=

'lr.model'

)# 此時上述訓練好的模型就可以直接使用

# 列印引數

print

(model_lr.coef_)

訓練好的模型

儲存的二進位制模型

再次呼叫的模型引數

機器學習之儲存訓練模型

話不多說,直接進入正題。1.首先匯入joblib包 import joblib2.訓練好模型之後,即可儲存模型到本地 joblib.dump 模型例項名稱,本地路徑 檔名稱 比如 joblib.dump lr,r g 學習檔案 機器學習 import learing predict card.pkl...

儲存模型後無法訓練 機器學習儲存與匯入訓練模型

當我們訓練好乙個模型後,下次如果還想要使用這個模型。那麼我們可以將這個模型儲存下來,下次使用的時候直接匯入就可以了,這樣節省了時間,不用每次都重頭訓練資料,程式執行速度更快。這裡我們使用sklearn提供的模組joblib來儲存模型。from sklearn.linear model import ...

機器學習之模型訓練

通過sklearn自帶資料報載入iris資料 from sklearn import datasets iris datasets.load iris 樣本資料與結果分別賦值到 x y x iris.data y iris.target 確定樣本與輸出資料維度 print x.shape print...