保存SVM模型并调用

将训练好的模型保存为pickle文件,有以下步骤:

1)以二进制的方式打开文件:

file = open("G:/Download_Data_bishe/save_model/model.pickle", "wb")

2)然后将模型写入文件:pickle.dump(classifier, file)

3)最后关闭文件:file.close()

要想调用保存好的模型,有以下思路:

1) 以读二进制的方式打开文件

file = open("G:/Download_Data_bishe/save_model/model.pickle", "rb")

2)把模型从文件中读取出来
svm_model = pickle.load(file)

3)关闭文件
file.close()

4)用读入的模型进行预测

pred= svm_model.predict(X)
if pred==0:
    print("病害")
if pred==1:
    print("健康")
print("\n")

本文调用的模型是识别植物叶片是否病害。

下面是Python代码实现支持向量机SVM模型分类算法中利用高斯核作为核函数训练模型保存调用训练模型并预测自己给出样例的类别以及实现SVM分类的可视化的过程: ```python import numpy as np import matplotlib.pyplot as plt from sklearn import svm, datasets # 加载数据集 iris = datasets.load_iris() X = iris.data[:, :2] # 只取前两个特征 y = iris.target # 定义网格点的步长 h = .02 # 训练SVM模型,使用高斯核函数 C = 1.0 # SVM正则化参数 svc = svm.SVC(kernel='rbf', C=C, gamma=0.7) svc.fit(X, y) # 保存训练好的模型 from sklearn.externals import joblib joblib.dump(svc, 'svm_model.pkl') # 加载模型并进行预测 svc = joblib.load('svm_model.pkl') new_data = np.array([[6.2, 3.1]]) print("预测结果为:", svc.predict(new_data)) # 可视化分类结果 x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z = svc.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8) plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired) plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.xticks(()) plt.yticks(()) plt.title('SVM Classification') plt.show() ``` 其中,`svm.SVC(kernel='rbf', C=C, gamma=0.7)`中的`kernel='rbf'`表示使用高斯核函数,`C`是SVM的正则化参数,`gamma`是高斯核函数的参数。训练好的模型可以使用`joblib.dump()`函数保存到本地文件,使用`joblib.load()`函数加载本地文件中保存模型进行预测。最后,使用`matplotlib`库进行SVM分类结果的可视化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值