frame 是Pandas的dataframe對象
alpha 圖像透明度
figsize 英寸為單位的圖像大小
diagonal 只能在{‘hist','kde'}中選一個 hist表示直方圖 kde表示核密度估計
這個參數是scatter_matrix的關鍵參數
marker 是標記類型,如圈,點,三角號
代碼
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split iris_dataset=load_iris() X_train,X_test,y_train,y_test=train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=2) #print("X_train",X_train) #print("y_train",y_train) #print("X_test",X_test) #print("y_test",y_test) #print("X_train shape: {}".format(X_train.shape)) #print("X_test shape: {}".format(X_test.shape)) import pandas as pd import matplotlib.pyplot as plt iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names) pd.plotting.scatter_matrix(iris_dataframe,c=y_train,figsize=(15,15),marker='o',hist_kwds={'bins':20},s=60,alpha=.8) plt.show()
其中在 jupyter notebook里是不需要import matplotlib.pyplot 就可以顯示圖像
但是在VScode里必須 加這句
從中可以看出 比如 special width 和 special length 之間的關系比較雜亂
我們在訓練模型時要優先選擇關系明顯的特征對進行學習
n_neighbors 表示近鄰數量
weights 計算距離時的權重 缺省值是uniform 表示平均權重
distance表示距離遠近設置不同的權重
metric 是距離的計算 缺省值是 minkowski 閔氏距離
顯然當P=2即為歐氏距離
P=1即為曼哈頓距離
from sklearn import datasets from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split iris=datasets.load_iris() print("數據集結構:",iris.data.shape) #獲取屬性 iris_X=iris.data #獲取類別 iris_y=iris.target #划分數據集和訓練集 iris_train_X,iris_test_X,iris_train_y,iris_test_y=train_test_split(iris_X,iris_y,test_size=0.2,random_state=0) #分類器初始化,參數默認 knn=KNeighborsClassifier() #對訓練集進行訓練 knn.fit(iris_train_X,iris_train_y) #對測試集數據的鳶尾花類型進行預測 predict_result=knn.predict(iris_test_X) print("測試集大小:",iris_test_X.shape) print("真實結果:",iris_test_y) print("預測結果:",predict_result) #顯示預測結果准確率 print("預測准確率",knn.score(iris_test_X,iris_test_y))