1.定義問題
這個專案通過分析批發銷售資料集(wholesale customers data)來判斷銷售商品**於哪個渠道。
fresh:新鮮商品年度支出
milk::牛奶商品年度支出
grocery:雜貨商品年度支出
frozen:冷凍品年度支出
detergents_*****: 清潔劑和紙製品的年度支出(百萬美元)(連續)
delicatessen: 熟食產品年度支出(百萬美元)
channel: 銷售渠道,horeca(酒店/餐廳/咖啡廳)或retail(零售渠道8) ;horeca取1,retail取2
8)region:銷售地區,lison, oporto or other;lison取1,oporto取2,other取3
#將資料集拆分為訓練集和測試集
predictors = wholesale.columns[1:]
x_train,x_test,y_train,y_test = model_selection.train_test_split(
wholesale[predictors],wholesale.channel,test_size = 0.25,random_state = 1234)
arg_max = np.array(accuracy).argmax()
plt.rcparams[『font.sans-serif』] = [『microsoft yahei』]
plt.rcparams[『axes.unicode_minus』] = false
plt.plot(k, accuracy)
plt.scatter(k, accuracy)
plt.text(k[arg_max],accuracy[arg_max], 『最佳k值為%s』 %int(k[arg_max]))
從圖中可以看出最佳k值為4。
3.理解資料
#重新構建模型,並將最佳的近鄰個數設定為4
import numpy as np
from sklearn import neighbors
knn_class = neighbors.kneighborsclassifier(n_neighbors = 4,weights = 『distance』)
knn_class.fit(x_train, y_train)
predict = knn_class.predict(x_test)
#構建混淆矩陣
從混淆矩陣圖中主對角線上來看,絕大多數的樣本都被正確分類,混淆矩陣圖中,每一行代表真實的樣本類別,每一列代表**的樣本類別,以第一列為例,實際來自渠道1的樣本有72個,**來自渠道1的樣本有62個,說明渠道1類別的覆蓋率為62/72=0.8611
#模型整體的**準確率
print(metrics.scorer.accuracy_score(y_test,predict))
#分類模型的評估報告
如上圖所示,前兩行代表因變數y中的各個類別值, 最後三行表示微平均、巨集平均和加權平均。第一列precision表示模型的**精度,計算公式為「**正確的類別個數/該類別**的所有個數」;第二列recall表示模型的**覆蓋率,計算公式為「**正確的類別個數/該類別實際的所有個數」;第三列fl_score是對precision和recall的加權結果;第四列為類別實際的樣本個數。
Knn演算法實戰
三 完整 或者尋找最近的k個資料,推測新資料的分類。import csv with open e 資資 python練習 knn prostate cancer.csv r as file dictreader把資料讀成字典 reader csv.dictreader file datas row ...
KNN演算法實戰
time 2021 1 4 20 37 file knn.py from sklearn.datasets import load iris from sklearn.model selection import train test split from sklearn.preprocessing...
RBAC許可權模型 專案實戰
一 前言 許可權一句話來理解就是對資源的控制,對web應用來說就是對url的控制,關於許可權可以毫不客氣的說幾乎每個系統都會包含,只不過不同系統關於許可權的應用複雜程式不一樣而已,現在我們在用的許可權模型基本上都是以rbac為基礎進行擴充套件的,我們今天就將rbac許可權模型進行下介紹。二 rbac...