sklearn使用流程:
准备数据集→选择类型→训练模型→测试模型
from sklearn import datasets
iris=datasets.load_iris()
digits=datasets.load_digits()
#查看数据集
#iris
print(iris.data)
print(iris.data.shape)
print(iris.target_names) #标签名
print(iris.target)
#digits
print(digits.data)
print(digits.data.shape)
print(digits.target_names)
print(digits.target)
#手动划分训练集、测试集
n_test=100 #测试样本个数
train_X=digits.data[:-n_test,:]
train_y=digits.target[:-n_test]
test_X=digits.data[-n_test:,:]
true_y=digits.target[-n_test:]
#选择SVM模型
from sklearn import svm
svm_model=svm.SVC(gamma=0.01,C=100)
#训练模型
svm_model.fit(train_X,train_y)
#选择LG模型
from sklearn.linear_model import LogisticRegression
lr_model=LogisticRegression()
#训练模型
lr_model.fit(train_X,train_y)
#在测试集上测试模型
y_pred_svm=svm_model.predict(test_X)
y_pred_lr=lr_model.predict(test_X)
#查看模型预测结果
from sklearn.metrics import accuracy_score
print('svm预测结果:',accuracy_score(true_y,y_pred_svm))
print('lr预测结果:',accuracy_score(true_y,y_pred_lr))
#保存模型
import pickle
with open(r'C:\Users\frizy\Desktop\svm_model','wb') as f:
pickle.dump(svm_model,f)
#重新加载模型进行预测
import numpy as np
with open(r'C:\Users\frizy\Desktop\svm_model','rb') as f:
model=pickle.load(f)
random_samples_index=np.random.randint(0,1796,5)
random_samples=digits.data[random_samples_index,:]
random_targets=digits.target[random_samples_index]
random_pred=model.predict(random_samples)
print(random_pred)
print(random_targets)