載入資料
刪除無用資料
刪除缺失資料
過取樣平衡資料
提取資料
對資料進行標準化
切分資料
訓練模型
儲存模型
載入模型
# 匯入邏輯回歸模型
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
(counts)
# 提取所有的標籤為4的資料作為一組新增資料
data_add = data[data[
'class'
].isin(
['4'])
]# 新增資料,保持樣本平衡
data = pd.concat(
[data_add,data]
,axis=0)
(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)
(model_lr.coef_)
(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...