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)