from sklearn.model_selection import train_test_split
from sklearn import preprocessing
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_digits
from sklearn.svm import SVC
import matplotlib as plt
from sklearn.metrics import confusion_matrix
import seaborn as sns # 數據可視化的包
加載數據
digits = load_digits()
data = digits.data
查看數據集大小
data.shape
數據集介紹
1797個樣本,每個樣本包括88像素的圖像和一個[0, 9]整數的標籤。
array矩陣類型數據,保存88的圖像,裏面的元素是float64類型,共有1797張圖片
用於顯示圖片。
獲取第一張圖片的像素數
print(digits.images[0])
將25%的數據作爲測試集,其餘作爲訓練集
train_x, test_x, train_y, test_y = train_test_split(data, digits.target, test_size=0.25, random_state=33)
採用Z-Score規範化
ss = preprocessing.StandardScaler()
train_ss_x = ss.fit_transform(train_x)
test_ss_x = ss.transform(test_x)
from sklearn.linear_model import LogisticRegression
創建LR分類器
lr = LogisticRegression(random_state = 1)
lr.fit(train_ss_x, train_y)
predict_y = lr.predict(test_ss_x)
print('LR準確率: %0.4lf' % accuracy_score(test_y, predict_y))
#查看模型的混淆矩陣,可以看出模型哪些地方做的不夠好
lr_cm = confusion_matrix(test_y, predict_y)
sns.heatmap(lr_cm, square=True, annot=True, cbar=False)