博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之sklearn-分类算法-3.5 模型的保存与加载
阅读量:4203 次
发布时间:2019-05-26

本文共 3041 字,大约阅读时间需要 10 分钟。

一,sklearn模型的保存和加载API

from sklearn.externals import joblib

  • 保存:joblib.dump(rf,“test.pkl”)
  • 加载:estimator = joblib.load(‘test.pkl’)

二,线性回归模型的保存加载案例

1,保存模型
import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import classification_report,roc_auc_scorefrom sklearn.externals import joblibdef logisticregression():    '''逻辑回归癌症预测'''    # 确定数据columns数值    columns = ["Sample code number","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("breast-cancer-wisconsin.data",names=columns)    # 去掉缺失值    data.replace(to_replace="?",value=np.nan,inplace=True)    data.dropna(axis=0,inplace=True,how="any")    # 提取目标值    target = data["Class"]    # 提取特征值    data = data.drop(["Sample code number"],axis=1).iloc[:,:-1]    # 切割训练集和测试集    x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.3)    # 进行标准化    std = StandardScaler()    x_train = std.fit_transform(x_train)    x_test = std.fit_transform(x_test)    # 逻辑回归进行训练和    lr = LogisticRegression()    lr.fit(x_train,y_train)    # 得到训练集返回数据    # print("逻辑回归权重:",lr.coef_)    # print("逻辑回归偏置:",lr.intercept_)    # 保存训练模型    joblib.dump(lr, "test.pkl")if __name__ == '__main__':    logisticregression()
2,加载模型
import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardScalerfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import classification_report,roc_auc_scorefrom sklearn.externals import joblibdef logisticregression():    '''逻辑回归癌症预测'''    # 确定数据columns数值    columns = ["Sample code number","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("breast-cancer-wisconsin.data",names=columns)    # 去掉缺失值    data.replace(to_replace="?",value=np.nan,inplace=True)    data.dropna(axis=0,inplace=True,how="any")    # 提取目标值    target = data["Class"]    # 提取特征值    data = data.drop(["Sample code number"],axis=1).iloc[:,:-1]    # 切割训练集和测试集    x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.3)    # 进行标准化    std = StandardScaler()    x_train = std.fit_transform(x_train)    x_test = std.fit_transform(x_test)    lr = joblib.load("test.pkl")    # 逻辑回归测试集预测结果    pre_result = lr.predict(x_test)    # print(pre_result)    # 逻辑回归预测准确率    sore = lr.score(x_test,y_test)    print(sore)    # 精确率(Precision)与召回率(Recall)    report = classification_report(y_test,pre_result,target_names=["良性","恶性"])    print(report)    # 查看AUC指标    y_test = np.where(y_test>2.5,1,0)    print(y_test)    auc_score = roc_auc_score(y_test,pre_result)    print(auc_score)if __name__ == '__main__':    logisticregression()

转载地址:http://upili.baihongyu.com/

你可能感兴趣的文章
用vbs来写sql注入等80端口的攻击脚本
查看>>
C# 检查字符串,防SQL注入攻击
查看>>
关于对SQL注入80004005 及其它错误消息分析
查看>>
即时通软件性能测试(与宴宾的对话)
查看>>
应用软件性能测试的艺术(翻译)——序
查看>>
高级性能测试(翻译)
查看>>
Web安全测试解决方案
查看>>
今天开始上班
查看>>
开源测试研究方案泡汤了
查看>>
晒一下我培训的课程——应用系统性能测试规划、实施与分析
查看>>
自动化测试框架之控制界面的关键
查看>>
自动化测试框架指南
查看>>
利用 STAF 实现程序更新包的自动部署测试
查看>>
软件安全性测试转载自小龙虾博客
查看>>
周末参加“北京干部管理职业技术学院”关于高职课程改革的专家讨论会
查看>>
软件测试框架介绍
查看>>
软件自动化测试框架的发展
查看>>
实现haproxy+LNMT负载均衡架构
查看>>
论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
查看>>
论文浅尝 | 融合多粒度信息和外部语言知识的中文关系抽取
查看>>