久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

發布時間:2024/6/1 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎大家來到“Python從零到壹”,在這里我將分享約200篇Python系列文章,帶大家一起去學習和玩耍,看看Python這個有趣的世界。所有文章都將結合案例、代碼和作者的經驗講解,真心想把自己近十年的編程經驗分享給大家,希望對您有所幫助,文章中不足之處也請海涵。Python系列整體框架包括基礎語法10篇、網絡爬蟲30篇、可視化分析10篇、機器學習20篇、大數據分析20篇、圖像識別30篇、人工智能40篇、Python安全20篇、其他技巧10篇。您的關注、點贊和轉發就是對秀璋最大的支持,知識無價人有情,希望我們都能在人生路上開心快樂、共同成長。

前一篇文章講述了聚類算法的原理知識級案例,包括K-Means聚類、BIRCH算法、PCA降維聚類、均值漂移聚類、文本聚類等。。本文將詳細講解分類算法的原理知識級案例,包括決策樹、KNN、SVM,并通過詳細的分類對比實驗和可視化邊界分析與大家總結。四萬字基礎文章,希望對您有所幫助。

文章目錄

  • 一.分類
    • 1.分類模型
    • 2.常見分類算法
    • 3.回歸、聚類和分類的區別
    • 4.性能評估
  • 二.決策樹
    • 1.算法實例描述
    • 2.DTC算法
    • 3.決策樹分析鳶尾花
    • 4.數據集劃分及分類評估
    • 5.區域劃分對比
  • 三.KNN分類算法
    • 1.算法實例描述
    • 2.KNeighborsClassifier
    • 3.KNN分析紅酒類型
  • 四.SVM分類算法
    • 1.SVM基礎知識
    • 2.SVM分析紅酒數據
    • 3.優化SVM分析紅酒數據集
  • 五.各模型分類對比實驗
    • 1.決策樹
    • 2.KNN
    • 3.SVM
    • 4.邏輯回歸
    • 5.樸素貝葉斯
    • 6.隨機森林
    • 7.AdaBoost
    • 8.GradientBoosting
    • 9.實驗結果對比
  • 六.本章小結

下載地址:

  • https://github.com/eastmountyxz/Python-zero2one

前文賞析:

第一部分 基礎語法

  • [Python從零到壹] 一.為什么我們要學Python及基礎語法詳解
  • [Python從零到壹] 二.語法基礎之條件語句、循環語句和函數
  • [Python從零到壹] 三.語法基礎之文件操作、CSV文件讀寫及面向對象

第二部分 網絡爬蟲

  • [Python從零到壹] 四.網絡爬蟲之入門基礎及正則表達式抓取博客案例
  • [Python從零到壹] 五.網絡爬蟲之BeautifulSoup基礎語法萬字詳解
  • [Python從零到壹] 六.網絡爬蟲之BeautifulSoup爬取豆瓣TOP250電影詳解
  • [Python從零到壹] 七.網絡爬蟲之Requests爬取豆瓣電影TOP250及CSV存儲
  • [Python從零到壹] 八.數據庫之MySQL基礎知識及操作萬字詳解
  • [Python從零到壹] 九.網絡爬蟲之Selenium基礎技術萬字詳解(定位元素、常用方法、鍵盤鼠標操作)
  • [Python從零到壹] 十.網絡爬蟲之Selenium爬取在線百科知識萬字詳解(NLP語料構造必備技能)

第三部分 數據分析和機器學習

  • [Python從零到壹] 十一.數據分析之Numpy、Pandas、Matplotlib和Sklearn入門知識萬字詳解(1)
  • [Python從零到壹] 十二.機器學習之回歸分析萬字總結全網首發(線性回歸、多項式回歸、邏輯回歸)
  • [Python從零到壹] 十三.機器學習之聚類分析萬字總結全網首發(K-Means、BIRCH、層次聚類、樹狀聚類)
  • [Python從零到壹] 十四.機器學習之分類算法三萬字總結全網首發(決策樹、KNN、SVM、分類算法對比)

作者新開的“娜璋AI安全之家”將專注于Python和安全技術,主要分享Web滲透、系統安全、人工智能、大數據分析、圖像識別、惡意代碼檢測、CVE復現、威脅情報分析等文章。雖然作者是一名技術小白,但會保證每一篇文章都會很用心地撰寫,希望這些基礎性文章對你有所幫助,在Python和安全路上與大家一起進步。


分類(Classification)屬于有監督學習(Supervised Learning)中的一類,它是數據挖掘、機器學習和數據科學中一個重要的研究領域。分類模型類似于人類學習的方式,通過對歷史數據或訓練集的學習得到一個目標函數,再用該目標函數預測新數據集的未知屬性。本章主要講述分類算法基礎概念,并結合決策樹、KNN、SVM分類算法案例分析各類數據集,從而讓讀者學會使用Python分類算法分析自己的數據集,研究自己領域的知識,從而創造價值。

一.分類

1.分類模型

與前面講述的聚類模型類似,分類算法的模型如圖1所示。它主要包括兩個步驟:

  • 訓練。給定一個數據集,每個樣本包含一組特征和一個類別信息,然后調用分類算法訓練分類模型。
  • 預測。利用生成的模型或函數對新的數據集(測試集)進行分類預測,并判斷其分類后的結果,并進行可視化繪圖顯示。

通常為了檢驗學習模型的性能,會使用校驗集。數據集會被分成不相交的訓練集和測試集,訓練集用來構造分類模型,測試集用來檢驗多少類標簽被正確分類。

下面舉一個分類實例進行講解。假設存在一個垃圾分類系統,將郵件劃分為“垃圾郵件”和“非垃圾郵件”,現在有一個帶有是否是垃圾郵件類標的訓練集,然后訓練一個分類模型,對測試集進行預測,步驟如下:

  • (1) 分類模型對訓練集進行訓練,判斷每行數據是正向數據還是負向數據,并不斷與真實的結果進行比較,反復訓練模型,直到模型達到某個狀態或超出某個閾值,模型訓練結束。
  • (2) 利用該模型對測試集進行預測,判斷其類標是“垃圾郵件”還是“非垃圾郵件”,并計算出該分類模型的準確率、召回率和F特征值。

經過上述步驟,當收到一封新郵件時,我們可以根據它郵件的內容或特征,判斷其是否是垃圾郵件,這為我們提供了很大的便利,能夠防止垃圾郵件信息的騷擾。


2.常見分類算法

監督式學習包括分類和回歸。其中常見的分類算法包括樸素貝葉斯分類器、決策樹、K最近鄰分類算法、支持向量機、神經網絡和基于規則的分類算法等,同時還有用于組合單一類方法的集成學習算法,如Bagging和Boosting等。

(1) 樸素貝葉斯分類器
樸素貝葉斯分類器(Naive Bayes Classifier,簡稱NBC)發源于古典數學理論,有著堅實的數學基礎和穩定的分類效率。該算法是利用Bayes定理來預測一個未知類別的樣本屬于各個類別的可能性,選擇其中可能性最大的一個類別作為該樣本的最終類別。其中,樸素貝葉斯(Naive Bayes)法是基于貝葉斯定理與特征條件獨立假設的方法 ,是一類利用概率統計知識進行分類的算法,該算法被廣泛應用的模型稱為樸素貝葉斯模型(Naive Bayesian Model,簡稱NBM)。

根據貝葉斯定理,對于一個分類問題,給定樣本特征x,樣本屬于類別y的概率如下:

其中p(x)表示x事件發生的概率,p(y)表示y事件發生的概率,p(x|y)表示事件y發生后事件x發生的概率。由于貝葉斯定理的成立本身需要一個很強的條件獨立性假設前提,而此假設在實際情況中經常是不成立的,因而其分類準確性就會下降,同時它對缺失的數據不太敏感。本書沒有詳細介紹樸素貝葉斯分類實例,希望讀者下來自行研究學習。

(2) 決策樹算法
決策樹(Decision Tree)是以實例為基礎的歸納學習(Inductive Learning)算法,它是對一組無次序、無規則的實例建立一棵決策判斷樹,并推理出樹形結果的分類規則。決策樹作為分類和預測的主要技術之一,其構造目的是找出屬性和類別間的關系,用它來預測未知數據的類別。該算法采用自頂向下的遞歸方式,在決策樹的內部節點進行屬性比較,并根據不同屬性值判斷從該節點向下的分支,在決策樹的葉子節點得到反饋的結果。

決策樹算法根據數據的屬性采用樹狀結構建立決策模型,常用來解決分類和回歸問題。常見的算法包括:分類及回歸樹、ID3 、C4.5、隨機森林等。

(3) K最近鄰分類算法
K最近鄰(K-Nearest Neighbor,簡稱KNN)分類算法是一種基于實例的分類方法,是數據挖掘分類技術中最簡單常用的方法之一。所謂K最近鄰,就是尋找K個最近的鄰居,每個樣本都可以用它最接近的K個鄰居來代表。該方法需要找出與未知樣本X距離最近的K個訓練樣本,看這K個樣本中屬于哪一類的數量多,就把未知樣本X歸為那一類。

K-近鄰方法是一種懶惰學習方法,它存放樣本,直到需要分類時才進行分類,如果樣本集比較復雜,可能會導致很大的計算開銷,因此無法應用到實時性很強的場合。

(4) 支持向量機
支持向量機(Support Vector Machine,簡稱SVM)是數學家Vapnik等人根據統計學習理論提出的一種新的學習方法,其基本模型定義為特征空間上間隔最大的線性分類器,其學習策略是間隔最大化,最終轉換為一個凸二次規劃問題的求解。

SVM算法的最大特點是根據結構風險最小化準則,以最大化分類間隔構造最優分類超平面來提高學習機的泛化能力,較好地解決了非線性、高維數、局部極小點等問題,同時維數大于樣本數時仍然有效,支持不同的內核函數(線性、多項式、s型等)。

(5) 神經網絡
神經網絡(Neural Network,也稱之為人工神經網絡)算法是80年代機器學習界非常流行的算法,不過在90年代中途衰落。現在又隨著“深度學習”之勢重新火熱,成為最強大的機器學習算法之一。圖2是一個神經網絡的例子,包括輸入層、隱藏層和輸出層。

人工神經網絡(Artificial Neural Network,簡稱ANN)是一種模仿生物神經網絡的結構和功能的數學模型或計算模型。在這種模型中,大量的節點或稱“神經元”之間相互聯接構成網絡,即“神經網絡”,以達到處理信息的目的。神經網絡通常需要進行訓練,訓練的過程就是網絡進行學習的過程,訓練改變了網絡節點的連接權的值使其具有分類的功能,經過訓練的網絡就可用于對象的識別。

常見的人工神經網絡有BP(Back Propagation)神經網絡、徑向基RBF神經網絡、Hopfield神經網絡、隨機神經網絡(Boltzmann機)、深度神經網絡DNN、卷積神經網絡CNN等。

(6) 集成學習
集成學習(Ensemble Learning)是一種機器學習方法,它使用一系列學習器進行學習,并使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果。由于實際應用的復雜性和數據的多樣性往往使得單一的分類方法不夠有效,因此,學者們對多種分類方法的融合即集成學習進行了廣泛的研究,它已儼然成為了國際機器學習界的研究熱點。

集成學習試圖通過連續調用單個的學習算法,獲得不同的基學習器,然后根據規則組合這些學習器來解決同一個問題,可以顯著的提高學習系統的泛化能力。組合多個基學習器主要采用投票(加權)的方法,常見的算法有裝袋(Bagging)、推進(Boosting)等。


3.回歸、聚類和分類的區別

在第12篇文章中我們詳細講解了回歸分析,13篇詳細講解了聚類分析,本章著重講解分類分析,而它們之間究竟存在什么區別和關系呢?

  • 分類(Classification)和回歸(Regression)都屬于監督學習,它們的區別在于:回歸是用來預測連續的實數值,比如給定了房屋面積,來預測房屋價格,返回的結果是房屋價格;而分類是用來預測有限的離散值,比如判斷一個人是否患糖尿病,返回值是“是”或“否”。即明確對象屬于哪個預定義的目標類,預定義的目標類是離散時為分類,連續時為回歸。
  • 分類屬于監督學習,而聚類屬于無監督學習,其主要區別是:訓練過程中是否知道結果或是否存在類標。比如讓小孩給水果分類,給他蘋果時告訴他這是蘋果,給他桃子時告訴他這是桃子,經過反復訓練學習,現在給他一個新的水果,問他“這是什么?”,小孩對其進行回答判斷,整個過程就是一個分類學習的過程,在訓練小孩的過程中反復告訴他對應水果真實的類別。而如果采用聚類算法對其進行分析,則是給小孩一堆水果,包括蘋果、橘子、桃子,小孩開始不知道需要分類的水果是什么,讓小孩自己對水果進行分類,按照水果自身的特征進行歸納和判斷,小孩分成三堆后,再給小孩新的水果,比如是蘋果,小孩把它放到蘋果堆的整個過程稱之為聚類學習過程。

總之,分類學習在訓練過程中是知道對應的類標結果的,即訓練集是存在對應的類標的;而聚類學習在訓練過程中不知道數據對應的結果,根據數據集的特征特點,按照“物以類聚”的方法,將具有相似屬性的數據聚集在一起。


4.性能評估

分類算法有很多,不同的分類算法又有很多不同的變種,不同的分類算法有不同的特點,在不同的數據集上表現的效果也不同,我們需要根據特定的任務來選擇對應的算法。選擇好了分類算法之后,我們如何評價一個分類算法的好壞呢?

本書主要采用精確率(Precision)、召回率(Recall)和F值(F-measure或F-score)來評價分類算法。

(1) 精確率(Precision)和召回率(Recall)
精確率定義為檢索出相關文檔數與檢索出的文檔總數的比率,衡量的是檢索系統的查準率;召回率定義為檢索出的相關文檔數和文檔庫中所有相關文檔數的比率,衡量的是檢索系統的查全率。公式如下:

其中,參數N表示實驗結果中正確識別出的聚類類簇數,S表示實驗結果中實際識別出的聚類類簇數,T表示數據集中所有真實存在的聚類相關類簇數。

(2) F值(F-measure或F-score)
精確率和召回率兩個評估指標在特定的情況下是相互制約的,因而很難使用單一的評價指標來衡量實驗的效果。F-值是準確率和召回率的調和平均值,它可作為衡量實驗結果的最終評價指標,F值更接近兩個數中較小的那個。F值指的計算公式如下公式所示:

(3) 其他指標
其他常用的分類算法的評價指標包括:

  • 準確率(Accuracy)
  • 錯誤率(Error Rate)
  • 靈敏度(Sensitive)
  • 特效度(Specificity)
  • ROC曲線

二.決策樹

1.算法實例描述

下面通過一個招聘的案例講述決策樹的基本原理及過程。假設一位程序員與面試官的初次面試的簡單對話,我們利用決策樹分類的思想來構建一棵樹形結構。對話如下:

面試官:多大年紀了? 程序員:25歲。 面試官:本科是不是已經畢業呢? 程序員:是的。 面試官:編程技術厲不厲害? 程序員:不算太厲害,中等水平。 面試官:熟悉Python語言嗎? 程序員:熟悉的,做過數據挖掘相關應用。 面試官:可以的,你通過了。

這個面試的決策過程就是典型的分類樹決策。相當于通過年齡、學歷、編程技術和是否熟悉Python語言將程序員初試分為兩個類別:通過和不通過。假設這個面試官對程序員的要求是30歲以下、學歷本科以上并且是編程厲害或熟悉Pyhon語言中等以上編程技術的程序員,這個面試官的決策邏輯過程用圖3表示。

第二個實例是典型的決策樹判斷蘋果的例子,假設存在4個樣本,2個屬性判斷是否是好蘋果,其中第二列1表示蘋果很紅,0表示蘋果不紅;第三列1表示蘋果很大,0表示蘋果很小;第4列結果1表示蘋果好吃,0表示蘋果不好吃。

樣本中有2個屬性,即蘋果紅色屬性和蘋果大小屬性。這里紅蘋果用A0表示,大蘋果用A1表示,構建的決策樹如圖19.4所示。圖中最頂端有四個蘋果(1、2、3、4),然后它將顏色紅的蘋果放在一邊(A0=紅),顏色不紅的蘋果放在另一邊,其結果為1、2是紅蘋果,3、4是不紅的蘋果;再根據蘋果的大小進行劃分,將大的蘋果判斷為好吃的(A1=大),最終輸出結果在圖中第三層顯示,其中1和3是好吃的蘋果,2和4是不好吃的蘋果,該實例表明蘋果越大越好吃。

決策樹算法根據數據的屬性并采用樹狀結構構建決策模型,常用來解決分類和回歸問題。常見的決策樹算法包括:

  • 分類及回歸樹(Classification And Regression Tree,簡稱CART)
  • ID3算法(Iterative Dichotomiser 3)
  • C4.5算法
  • 隨機森林算法(Random Forest)
  • 梯度推進機算法(Gradient Boosting Machine,簡稱GBM)

決策樹構建的基本步驟包括4步,具體步驟如下:

  • 第一步:開始時將所有記錄看作一個節點。
  • 第二步:遍歷每個變量的每一種分割方式,找到最好的分割點。
  • 第三步:分割成兩個節點N1和N2。
  • 第四步:對N1和N2分別繼續執行第二步和第三步,直到每個節點足夠“純”為止。

決策數具有兩個優點:

  • 模型可以讀性好,描述性強,有助于人工分析。
  • 效率高,決策樹只需要一次構建,可以被反復使用,每一次預測的最大計算次數不超過決策樹的深度。

2.DTC算法

Sklearn機器學習包中,實現決策樹(DecisionTreeClassifier,簡稱DTC)的類是:

  • sklearn.tree.DecisionTreeClassifier

它能夠解決數據集的多類分類問題,輸入參數為兩個數組X[n_samples,n_features]和y[n_samples],X為訓練數據,y為訓練數據標記值。DecisionTreeClassifier構造方法為:

sklearn.tree.DecisionTreeClassifier(criterion='gini' , splitter='best' , max_depth=None , min_samples_split=2 , min_samples_leaf=1 , max_features=None , random_state=None , min_density=None , compute_importances=None , max_leaf_nodes=None)

DecisionTreeClassifier類主要包括兩個方法:

  • clf.fit(train_data, train_target)
    用來裝載(train_data,train_target)訓練數據,并訓練分類模型。
  • pre = clf.predict(test_data)
    用訓練得到的決策樹模型對test_data測試集進行預測分析。

3.決策樹分析鳶尾花

前面第12篇文章介紹過邏輯回歸分析鳶尾花的實例,這里再次講解決策樹分析鳶尾花實例,從而加深讀者印象。

(1) 數據集回顧
在Sklearn機器學習包中,集成了各種各樣的數據集,包括糖尿病數據集、鳶尾花數據集、新聞數據集等。這里使用的是鳶尾花卉Iris數據集,它是一個很常用的數據集,共150行數據,包括四個特征變量:

  • 萼片長度
  • 萼片寬度
  • 花瓣長度
  • 花瓣寬度。

同時包括一個類別變量,將鳶尾花劃分為三個類別,即:

  • 山鳶尾(Iris-setosa)
  • 變色鳶尾(Iris-versicolor)
  • 維吉尼亞鳶尾(Iris-virginica)

表2為鳶尾花數據集,詳細信息如下表所示。

iris是鳶尾植物,這里存儲了其萼片和花瓣的長寬,共4個屬性,鳶尾植物分三類。 iris數據集中包括兩個屬性iris.data和iris.target。其中,data數據是一個矩陣,每一列代表了萼片或花瓣的長寬,一共4列,每一行數據代表某個被測量的鳶尾植物,一共采樣了150條記錄。載入鳶尾花數據集代碼如下所示:

from sklearn.datasets import load_iris iris = load_iris() print(iris.data) print(iris.target)


(2) 決策樹簡單分析鳶尾花
下述代碼實現了調用Sklearn機器學習包中DecisionTreeClassifier決策樹算法進行分類分析,并繪制預測的散點圖。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06#導入數據集iris from sklearn.datasets import load_iris iris = load_iris() print(iris.data) #輸出數據集 print(iris.target) #輸出真實標簽 print(len(iris.target)) print(iris.data.shape) #150個樣本 每個樣本4個特征#導入決策樹DTC包 from sklearn.tree import DecisionTreeClassifier clf = DecisionTreeClassifier() clf.fit(iris.data, iris.target) #訓練 print(clf) predicted = clf.predict(iris.data) #預測#獲取花卉兩列數據集 X = iris.data L1 = [x[0] for x in X] L2 = [x[1] for x in X]#繪圖 import numpy as np import matplotlib.pyplot as plt plt.scatter(L1, L2, c=predicted, marker='x') #cmap=plt.cm.Paired plt.title("DTC") plt.show()

輸出結果如圖5所示,可以看到決策樹算法將數據集預測為三類,分別代表著數據集對應的三種鳶尾花,但數據集中存在小部分交叉結果。預測的結果如下:

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2] 150 (150, 4)DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,max_features=None, max_leaf_nodes=None,min_impurity_decrease=0.0, min_impurity_split=None,min_samples_leaf=1, min_samples_split=2,min_weight_fraction_leaf=0.0, presort=False,random_state=None, splitter='best')

下面對上述核心代碼進行簡單描述。

  • from sklearn.datasets import load_iris
  • iris = load_iris()

該部分代碼是導入sklearn機器學習包自帶的鳶尾花數據集,調用load_iris()函數導入數據,數據共分為數據(data)和類標(target)兩部分。

  • from sklearn.tree import DecisionTreeClassifier
  • clf = DecisionTreeClassifier()
  • clf.fit(iris.data, iris.target)
  • predicted = clf.predict(iris.data)

該部分代碼導入決策樹模型,并調用fit()函數進行訓練,predict()函數進行預測。

  • import matplotlib.pyplot as plt
  • plt.scatter(L1, L2, c=predicted, marker=‘x’)

該部分代碼是導入matplotlib繪圖擴展包,調用scatter()函數繪制散點圖。

但上面的代碼中存在兩個問題:

  • 代碼中通過“L1 = [x[0] for x in X]”獲取了第一列和第二列數據集進行了分類分析和繪圖,而真實的iris數據集中包括四個特征,那怎么繪制四個特征的圖形呢? 這就需要利用PCA降維技術處理,參考前一篇文章。
  • 第二個問題是在聚類、回歸、分類模型中,都需要先進行訓練,再對新的數據集進行預測,這里卻是對整個數據集進行分類分析,而真實情況是需要把數據集劃分為訓練集和測試集的,例如數據集的70%用于訓練、30%用于預測,或80%用于訓練、20%用于預測。

4.數據集劃分及分類評估

這部分內容主要是進行代碼優化,將數據集劃分為80%訓練集-20%預測集,并對決策樹分類算法進行評估。由于提供的數據集類標是存在一定規律的,前50個類標為0(山鳶尾)、中間50個類標為1(變色鳶尾)、最后50個類標為2(維吉尼亞鳶)。即:

[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]

這里調用NumPy庫中的 concatenate() 函數對數據集進行挑選集成,選擇第0-40行、第50-90行、第100-140行數據作為訓練集,對應的類標作為訓練樣本類標;再選擇第40-50行、第90-100行、第140-150行數據作為測試集合,對應的樣本類標作為預測類標。

代碼如下,“axis=0”表示選取數值的等差間隔為0,即緊挨著獲取數值。

#訓練集 train_data = np.concatenate((iris.data[0:40, :], iris.data[50:90, :], iris.data[100:140, :]), axis = 0) #訓練集樣本類別 train_target = np.concatenate((iris.target[0:40], iris.target[50:90], iris.target[100:140]), axis = 0) #測試集 test_data = np.concatenate((iris.data[40:50, :], iris.data[90:100, :], iris.data[140:150, :]), axis = 0) #測試集樣本類別 test_target = np.concatenate((iris.target[40:50], iris.target[90:100], iris.target[140:150]), axis = 0)

同時,調用sklearn機器學習包中metrics類對決策樹分類算法進行評估,它將輸出準確率(Precison)、召回率(Recall)、F特征值(F-score)、支持度(Support)等。

#輸出準確率 召回率 F值 from sklearn import metrics print(metrics.classification_report(test_target, predict_target)) print(metrics.confusion_matrix(test_target, predict_target))

分類報告的核心函數為:

sklearn.metrics.classification_report(y_true, y_pred, labels=None,target_names=None,sample_weight=None, digits=2)

其中y_true參數表示正確的分類類標,y_pred表示分類預測的類標,labels表示分類報告中顯示的類標簽的索引列表,target_names參數顯示與labels對應的名稱,digits是指定輸出格式的精確度。評價公式如下:

調用 metrics.classification_report() 方法對決策樹算法進行評估后,會在最后一行將對所有指標進行加權平均值,詳見下面完整代碼。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn import metrics import numpy as np import matplotlib.pyplot as plt#導入數據集iris ''' 重點:分割數據集 構造訓練集/測試集,80/2070%訓練 0-40 50-90 100-14030%預測 40-50 90-100 140-150 ''' iris = load_iris() train_data = np.concatenate((iris.data[0:40, :], iris.data[50:90, :], iris.data[100:140, :]), axis = 0) #訓練集 train_target = np.concatenate((iris.target[0:40], iris.target[50:90], iris.target[100:140]), axis = 0) #訓練集樣本類別 test_data = np.concatenate((iris.data[40:50, :], iris.data[90:100, :], iris.data[140:150, :]), axis = 0) #測試集 test_target = np.concatenate((iris.target[40:50], iris.target[90:100], iris.target[140:150]), axis = 0) #測試集樣本類別#導入決策樹DTC包 clf = DecisionTreeClassifier() clf.fit(train_data, train_target) #注意均使用訓練數據集和樣本類標 print(clf) predict_target = clf.predict(test_data) #測試集 print(predict_target)#預測結果與真實結果比對 print(sum(predict_target == test_target))#輸出準確率 召回率 F值 print(metrics.classification_report(test_target, predict_target)) print(metrics.confusion_matrix(test_target, predict_target))#獲取花卉測試數據集兩列數據 X = test_data L1 = [n[0] for n in X] L2 = [n[1] for n in X]#繪圖 plt.scatter(L1, L2, c=predict_target, marker='x') #cmap=plt.cm.Paired plt.title("DecisionTreeClassifier") plt.show()

輸出結果如下,包括對數據集40-50、90-100、140-150的預測結果,接下來輸出的“30”表示整個30組類標預測結果和真實結果是一致的,最后輸出評估結果。

[0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2] 30precision recall f1-score support0 1.00 1.00 1.00 101 1.00 1.00 1.00 102 1.00 1.00 1.00 10avg / total 1.00 1.00 1.00 30[[10 0 0][ 0 10 0][ 0 0 10]]

同時輸出圖形如圖6所示。

讀者可以自行深入研究,調用sklearn.tree.export_graphviz類實現導出決策樹繪制樹形結構的過程,比如鳶尾花數據集輸出如圖7所示的樹形結構。

  • https://www.freesion.com/article/894048252/


5.區域劃分對比

下面講述區域劃分對比實驗(前面已經出現過),它是指按照數據集真實的類標,將其劃分為不同顏色區域,這里的鳶尾花數據集共分為三個區域,最后進行散點圖繪制對比。每個區域對應一類散點,表示預測結果和真實結果一致,如果某個區域混入其他類型的散點,則表示該點的預測結果與真實結果不一致。

完整代碼如下所示,代碼首先調用“iris.data[:, :2]”代碼獲取其中兩列數據(兩個特征),再進行決策樹分類分析。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier #載入鳶尾花數據集 iris = load_iris() X = X = iris.data[:, :2] #獲取花卉前兩列數據 Y = iris.target lr = DecisionTreeClassifier() lr.fit(X,Y)#meshgrid函數生成兩個網格矩陣 h = .02 x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5 y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))#pcolormesh函數將xx,yy兩個網格矩陣和對應的預測結果Z繪制在圖片上 Z = lr.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.figure(1, figsize=(8,6)) plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)#繪制散點圖 plt.scatter(X[:50,0], X[:50,1], color='red',marker='o', label='setosa') plt.scatter(X[50:100,0], X[50:100,1], color='blue', marker='x', label='versicolor') plt.scatter(X[100:,0], X[100:,1], color='green', marker='s', label='Virginica') plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.xticks(()) plt.yticks(()) plt.legend(loc=2) plt.show()

下面作者對區域劃分對比代碼進行詳細講解。

  • x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
  • y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
  • xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))

獲取的鳶尾花兩列數據,對應為萼片長度和萼片寬度,每個點的坐標就是(x,y)。先取X二維數組的第一列(長度)的最小值、最大值和步長h(設置為0.02)生成數組,再取X二維數組的第二列(寬度)的最小值、最大值和步長h生成數組,最后用meshgrid()函數生成兩個網格矩陣xx和yy,如下所示:

[[ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ][ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ]..., [ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ][ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ]] [[ 1.5 1.5 1.5 ..., 1.5 1.5 1.5 ][ 1.52 1.52 1.52 ..., 1.52 1.52 1.52]..., [ 4.88 4.88 4.88 ..., 4.88 4.88 4.88][ 4.9 4.9 4.9 ..., 4.9 4.9 4.9 ]]
  • Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])

調用ravel()函數將xx和yy的兩個矩陣轉變成一維數組,再進行預測分析。由于兩個矩陣大小相等,因此兩個一維數組大小也相等。np.c_[xx.ravel(), yy.ravel()]是生成矩陣,即:

xx.ravel() [ 3.8 3.82 3.84 ..., 8.36 8.38 8.4 ] yy.ravel() [ 1.5 1.5 1.5 ..., 4.9 4.9 4.9] np.c_[xx.ravel(), yy.ravel()] [[ 3.8 1.5 ][ 3.82 1.5 ][ 3.84 1.5 ]..., [ 8.36 4.9 ][ 8.38 4.9 ][ 8.4 4.9 ]]

總之,上述操作是把第一列萼片長度數據按h取等分作為行,并復制多行得到xx網格矩陣;再把第二列萼片寬度數據按h取等分,作為列,并復制多列得到yy網格矩陣;最后將xx和yy矩陣都變成兩個一維數組,調用np.c_[]函數組合成一個二維數組進行預測。

調用predict()函數進行預測,預測結果賦值給Z。即:

Z = logreg.predict(np.c_[xx.ravel(), yy.ravel()]) [1 1 1 ..., 2 2 2] size: 39501
  • Z = Z.reshape(xx.shape)
    調用reshape()函數修改形狀,將其Z轉換為兩個特征(長度和寬度),則39501個數據轉換為171*231的矩陣。Z = Z.reshape(xx.shape)輸出如下:
[[1 1 1 ..., 2 2 2][1 1 1 ..., 2 2 2][0 1 1 ..., 2 2 2]..., [0 0 0 ..., 2 2 2][0 0 0 ..., 2 2 2][0 0 0 ..., 2 2 2]]
  • plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)

調用pcolormesh()函數將xx、yy兩個網格矩陣和對應的預測結果Z繪制在圖片上,可以發現輸出為三個顏色區塊,分別表示三類區域。cmap=plt.cm.Paired表示繪圖樣式選擇Paired主題。輸出的區域如下圖所示:

  • plt.scatter(X[:50,0], X[:50,1], color=‘red’,marker=‘o’, label=‘setosa’)

調用scatter()繪制散點圖,第一個參數為第一列數據(長度),第二個參數為第二列數據(寬度),第三、四個參數為設置點的顏色為紅色,款式為圓圈,最后標記為setosa。

最終輸出如圖9所示,經過決策樹分析后劃分為三個區域,左上角部分為紅色的圓點,對應setosa鳶尾花;右邊部分為綠色方塊,對應virginica鳶尾花;中間靠下部分為藍色星形,對應versicolor鳶尾花。散點圖為各數據點真實的花類型,劃分的三個區域為數據點預測的花類型,預測的分類結果與訓練數據的真實結果結果基本一致,部分鳶尾花出現交叉。


三.KNN分類算法

1.算法實例描述

KNN分類算法是最近鄰算法,字面意思就是尋找最近鄰居,由Cover和Hart在1968年提出,它簡單直觀易于實現。下面通過一個經典例子來講解如何尋找鄰居,選取多少個鄰居。圖10需要判斷右邊這個動物是鴨子、雞還是鵝?這就涉及到了KNN算法的核心思想,判斷與這個樣本點相似的類別,再預測其所屬類別。由于它走路和叫聲像一只鴨子,所以右邊的動物很可能是一只鴨子。

KNN分類算法的核心思想是從訓練樣本中尋找所有訓練樣本X中與測試樣本距離(常用歐氏距離)最近的前K個樣本(作為相似度),再選擇與待分類樣本距離最小的K個樣本作為X的K個最鄰近,并檢測這K個樣本大部分屬于哪一類樣本,則認為這個測試樣本類別屬于這一類樣本。

KNN分類的算法步驟如下:

  • 計算測試樣本點到所有樣本點的歐式距離dist,采用勾股定理計算
  • 用戶自定義設置參數K,并選擇離帶測點最近的K個點
  • 從這K個點中,統計各個類型或類標的個數
  • 選擇出現頻率最大的類標號作為未知樣本的類標號,反饋最終預測結果

假設現在需要判斷圖11中的圓形圖案屬于三角形還是正方形類別,采用KNN算法分析步驟如下:

  • 當K=3時,圖中第一個圈包含了三個圖形,其中三角形2個,正方形一個,該圓的則分類結果為三角形。
  • 當K=5時,第二個圈中包含了5個圖形,三角形2個,正方形3個,則以3:2的投票結果預測圓為正方形類標。
  • 同理,當K=11原理也是一樣,設置不同的K值,可能預測得到結果也不同。所以,KNN是一個非常簡單、易于理解實現的分類算法。

最后簡單講述KNN算法的優缺點。KNN分類算法存在的優點包括:

  • 算法思路較為簡單,易于實現。
  • 當有新樣本要加入訓練集中時,無需重新訓練,即重新訓練的代價低。
  • 計算時間和空間線性于訓練集的規模。

其缺點主要表現為分類速度慢,由于每次新的待分樣本都必須與所有訓練集一同計算比較相似度,以便取出靠前的K個已分類樣本,所以時間復雜度較高。整個算法的時間復雜度可以用O(m*n)表示,其中m是選出的特征項的個數,而n是訓練集樣本的個數。同時,如果K值確定不好,也會影響整個實驗的結果,這也是KNN算法的另一個缺點。


2.KNeighborsClassifier

Sklearn機器學習包中,實現KNN分類算法的類是neighbors.KNeighborsClassifier。構造方法如下:

KNeighborsClassifier(algorithm='ball_tree', leaf_size=30, metric='minkowski',metric_params=None, n_jobs=1, n_neighbors=3, p=2, weights='uniform')

其中最重要的參數是n_neighbors=3,設置最近鄰K值。同時,KNeighborsClassifier可以設置3種算法:brute、kd_tree、ball_tree。具體調用方法如下:

from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=3, algorithm="ball_tree")

KNN算法分析時也包括訓練和預測兩個方法。

  • 訓練:knn.fit(data, target)
  • 預測:pre = knn.predict(data)

下面這段代碼是簡單調用KNN分類算法進行預測的例子,代碼如下。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 import numpy as np from sklearn.neighbors import KNeighborsClassifier X = np.array([[-1,-1],[-2,-2],[1,2], [1,1],[-3,-4],[3,2]]) Y = [0,0,1,1,0,1] x = [[4,5],[-4,-3],[2,6]] knn = KNeighborsClassifier(n_neighbors=3, algorithm="ball_tree") knn.fit(X,Y) pre = knn.predict(x) print(pre)

定義了一個二維數組用于存儲6個點,其中x和y坐標為負數的類標定義為0,x和y坐標為正數的類標定義為1。調用knn.fit(X,Y)函數訓練模型后,再調用predict()函數預測[4,5]、[-4,-3]、[2,6]三個點的坐標,輸出結果分別為:[1, 0, 1],其中x和y坐標為正數的劃分為一類,負數的一類。

同時也可以計算K個最近點的下標和距離,代碼和結果如下,其中,indices表示點的下標,distances表示距離。

distances, indices = knn.kneighbors(X) print(indices) print(distances)>>> [1 0 1] [[0 1 3][1 0 4][2 3 5][3 2 5][4 1 0][5 2 3]] [[ 0. 1.41421356 2.82842712][ 0. 1.41421356 2.23606798][ 0. 1. 2. ][ 0. 1. 2.23606798][ 0. 2.23606798 3.60555128][ 0. 2. 2.23606798]] >>>

下面通過一個完整的實例結合可視化技術進行講解,加深讀者的印象。


3.KNN分析紅酒類型

(1) 數據集
該實驗數據集是UCI Machine Learning Repository開源網站提供的MostPopular Data Sets(hits since 2007)紅酒數據集,它是對意大利同一地區生產的三種不同品種的酒,做大量分析所得出的數據。這些數據包括了三種類別的酒,酒中共13種不同成分的特征,共178行數據,如圖13所示。

該數據集包括了三種類型酒中13種不同成分的數量,13種成分分別是:Alcohol、Malicacid、Ash、Alcalinity of ash、Magnesium、Total phenols、Flavanoids、Nonflavanoid phenols、Proanthocyanins、Color intensity、Hue、OD280/OD315 of diluted wines和Proline,每一種成分可以看成一個特征,對應一個數據。三種類型的酒分別標記為“1”、“2”、“3”。數據集特征描述如表3所示。

數據存儲在wine.txt文件中,如圖14所示。每行數據代表一個樣本,共178行數據,每行數據包含14列,即第一列為類標屬性,后面依次是13列特征。其中第1類有59個樣本,第2類有71個樣本,第3類有48個樣本。

注意:前面講述了如何讀取CSV文件數據集或Sklearn擴展包所提供的數據集,但現實分析中,很多數據集會存儲于TXT或DATA文件中,它們采用一定的符號進行分隔,比如圖中采用逗號分隔,如何獲取這類文件中的數據,也是非常重要的知識。所以接下來先教大家讀取這類文件的數據。


(2) 讀取數據集
從圖14可以看到整個數據集采用逗號分隔,常用讀取該類型數據集的方法是調用open()函數讀取文件,依次讀取TXT文件中所有內容,再按照逗號分割符獲取每行的14列數據存儲至數組或矩陣中,從而進行數據分析。這里講述另一種方法,調用loadtxt()函數讀取逗號分隔的數據,代碼如下:

# -*- coding: utf-8 -*- import os import numpy as np path = "wine/wine.txt" data = np.loadtxt(path,dtype=float,delimiter=",") print(data)

輸出如下所示:

loadtxt()讀入文件函數原型如下:

  • loadtxt(fname, dtype, delimiter, converters, usecols)

其中參數fname表示文件路徑,dtype表示數據類型,delimiter表示分隔符,converters將數據列與轉換函數進行映射的字段,如{1:fun},usecols表示選取數據的列。


(3) 數據集拆分訓練集和預測集
由于Wine數據集前59個樣本全是第1類,中間71個樣本為第2類,最后48個樣本是第3類,所以需要將數據集拆分成訓練集和預測集。步驟如下:

  • 調用split()函數將數據集的第一列類標(Y數據)和13列特征(X數組)分隔開來。該函數參數包括data數據,分割位置,其中1表示從第一列分割,axis為1表示水平分割、0表示垂直分割。
  • 由于數據集第一列存儲的類標為1.0、2.0或3.0浮點型數據,需要將其轉換為整型,這里在for循環中調用int()函數轉換,存儲至y數組中,也可采用np.astype()實現。
  • 最后調用np.concatenate()函數將0-40、60-100、140-160行數據分割為訓練集,包括13列特征和類標,其余78行數據為測試集。

代碼如下:

# -*- coding: utf-8 -*- import os import numpy as np path = "wine/wine.txt" data = np.loadtxt(path,dtype=float,delimiter=",") print(data)yy, x = np.split(data, (1,), axis=1) print(yy.shape, x.shape) y = [] for n in yy:y.append(int(n))train_data = np.concatenate((x[0:40,:], x[60:100,:], x[140:160,:]), axis = 0) #訓練集 train_target = np.concatenate((y[0:40], y[60:100], y[140:160]), axis = 0) #樣本類別 test_data = np.concatenate((x[40:60, :], x[100:140, :], x[160:,:]), axis = 0) #測試集 test_target = np.concatenate((y[40:60], y[100:140], y[160:]), axis = 0) #樣本類別print(train_data.shape, train_target.shape) print(test_data.shape, test_target.shape)

輸出結果如下:

(178L, 1L) (178L, 13L) (100L, 1L) (100L, 13L) (78L, 1L) (78L, 13L)

下面補充一種隨機拆分的方式,調用 sklearn.model_selection.train_test_split 類隨機劃分訓練集與測試集。代碼如下:

from sklearn.model_selection import train_test_split x, y = np.split(data, (1,), axis=1) x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, train_size=0.7)#Python2調用方法 #from sklearn.cross_validation import train_test_split

參數x表示所要劃分的樣本特征集;y是所要劃分的樣本結果;train_size表示訓練樣本占比,0.7表示將數據集劃分為70%的訓練集、30%的測試集;random_state是隨機數的種子。該函數在部分版本的sklearn庫中是導入model_selection類,建議讀者下來嘗試。


(4) KNN分類算法分析
上面已經將178個樣本分成100個訓練樣本和78個測試樣本,采用KNN分類算法訓練模型,再對測試集進行預測,判別出測試樣本所屬于酒的類型,同時輸出測試樣本計算的正確率和錯誤率。KNN核心代碼如下:

from sklearn.neighbors import KNeighborsClassifier clf = KNeighborsClassifier(n_neighbors=3,algorithm='kd_tree') clf.fit(train_data,train_target) result = clf.predict(test_data) print(result)

預測輸出結果如下所示:

[1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 3 2 2 2 2 2 2 2 2 3 2 3 2 2 2 22 2 3 3 2 2 2 2 2 2 2 2 3 2 3 3 3 3 2 1 2 3 3 2 2 3 2 3 2 2 2 1 2 2 2 3 11 1 1 3]

(5) 完整代碼
下面代碼實現了調用Sklearn機器學習包中KNeighborsClassifier算法進行分類分析,并繪制預測的散點圖和背景圖,完整代碼如下。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 import os import numpy as np from sklearn.neighbors import KNeighborsClassifier from sklearn import metrics from sklearn.decomposition import PCA import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap#---------------------------------------------------------------------------- #第一步 加載數據集 path = "wine/wine.txt" data = np.loadtxt(path,dtype=float,delimiter=",") print(data)#---------------------------------------------------------------------------- #第二步 劃分數據集 yy, x = np.split(data, (1,), axis=1) #第一列為類標yy,后面13列特征為x print(yy.shape, x.shape) y = [] for n in yy: #將類標浮點型轉化為整數y.append(int(n)) x = x[:, :2] #獲取x前兩列數據,方便繪圖 對應x、y軸 train_data = np.concatenate((x[0:40,:], x[60:100,:], x[140:160,:]), axis = 0) #訓練集 train_target = np.concatenate((y[0:40], y[60:100], y[140:160]), axis = 0) #樣本類別 test_data = np.concatenate((x[40:60, :], x[100:140, :], x[160:,:]), axis = 0) #測試集 test_target = np.concatenate((y[40:60], y[100:140], y[160:]), axis = 0) #樣本類別 print(train_data.shape, train_target.shape) print(test_data.shape, test_target.shape)#---------------------------------------------------------------------------- #第三步 KNN訓練 clf = KNeighborsClassifier(n_neighbors=3,algorithm='kd_tree') #K=3 clf.fit(train_data,train_target) result = clf.predict(test_data) print(result)#---------------------------------------------------------------------------- #第四步 評價算法 print(sum(result==test_target)) #預測結果與真實結果比對 print(metrics.classification_report(test_target, result)) #準確率 召回率 F值#---------------------------------------------------------------------------- #第五步 創建網格 x1_min, x1_max = test_data[:,0].min()-0.1, test_data[:,0].max()+0.1 #第一列 x2_min, x2_max = test_data[:,1].min()-0.1, test_data[:,1].max()+0.1 #第二列 xx, yy = np.meshgrid(np.arange(x1_min, x1_max, 0.1), np.arange(x2_min, x2_max, 0.1)) #生成網格型數據 print(xx.shape, yy.shape) #(53L, 36L) (53L, 36L)z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) #ravel()拉直函數 print(xx.ravel().shape, yy.ravel().shape) #(1908L,) (1908L,) print(np.c_[xx.ravel(), yy.ravel()].shape) #合并 (1908L,2)#---------------------------------------------------------------------------- #第六步 繪圖可視化 cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF']) #顏色Map cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF']) plt.figure() z = z.reshape(xx.shape) print(xx.shape, yy.shape, z.shape, test_target.shape) #(53L, 36L) (53L, 36L) (53L, 36L) (78L,) plt.pcolormesh(xx, yy, z, cmap=cmap_light) plt.scatter(test_data[:,0], test_data[:,1], c=test_target,cmap=cmap_bold, s=50) plt.show()

輸出結果如下所示,包括預測的78行類標,共預測正確58行數據,準確率為0.76,召回率為0.74,f特征為0.74。其結果不太理想,需要進一步優化算法。

[1 3 1 1 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 3 2 2 2 2 2 3 2 2 2 2 22 1 2 2 2 3 3 3 2 2 2 2 3 2 3 1 1 2 3 3 3 3 3 1 3 3 3 3 3 3 3 1 3 2 1 1 33 3 1 3] 58precision recall f1-score support1 0.68 0.89 0.77 192 0.88 0.74 0.81 313 0.67 0.64 0.65 28avg / total 0.76 0.74 0.74 78

輸出圖形如圖15所示,可以看到整個區域劃分為三種顏色,左下角為綠色區域,右下角為紅色區域,右上部分為藍色區域。同時包括78個點分布,對應78行數據的類標,包括綠色、藍色和紅色的點。可以發現,相同顏色的點主要集中于該顏色區域,部分藍色點劃分至紅色區域或綠色點劃分至藍色區域,則表示預測結果與實際結果不一致。

最后簡單總結,整個分析過程包括六個步驟,大致內容如下:

  • 1) 加載數據集
    采用loadtxt()函數加載酒類數據集,采用逗號(,)分割。
  • 2) 劃分數據集
    由于Wine數據集第一列為類標,后面13列為13個酒類特征,獲取其中兩列特征,并將其劃分成特征數組和類標數組,調用concatenate()函數實現。
  • 3) KNN訓練
    調用Sklearn機器學習包中KNeighborsClassifier()函數訓練,設置K值為3類,并調用clf.fit(train_data,train_target)訓練模型,clf.predict(test_data)預測分類結果。
  • 4) 評價算法
    通過classification_report()函數計算該分類預測結果的準確率、召回率和F值。
  • 5) 創建網格
    由于繪圖中,擬將預測的類標劃分為三個顏色區域,真實的分類結果以散點圖形式呈現,故需要獲取數據集中兩列特征的最大值和最小值,并創建對應的矩陣網格,調用numpy擴展包的meshgrid()函數實現,在對其顏色進行預測。
  • 6) 繪圖可視化
    設置不同類標的顏色,調用pcolormesh()函數繪制背景區域顏色,調用scatter()函數繪制實際結果的散點圖,形成如圖15的效果圖。

四.SVM分類算法

支持向量機(Support Vector Machine,簡稱SVM)是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及回歸分析。該算法的最大特點是根據結構風險最小化準則,以最大化分類間隔構造最優分類超平面來提高學習機的泛化能力,較好地解決了非線性、高維數、局部極小點等問題。

1.SVM基礎知識

(1) 基礎概念
由于作者數學推算能力不太好,同時SVM原理也比較復雜,所以SVM算法基礎知識推薦大家閱讀CSDN博客著名算法大神“JULY”的文章《支持向量機通俗導論(理解SVM的三層境界)》,這篇文章由淺入深的講解了SVM算法,而本小節作者主要講解SVM的用法。

SVM分類算法的核心思想是通過建立某種核函數,將數據在高維尋找一個滿足分類要求的超平面,使訓練集中的點距離分類面盡可能的遠,即尋找一個分類面使得其兩側的空白區域最大。如圖19.16所示,兩類樣本中離分類面最近的點且平行于最優分類面的超平面上的訓練樣本就叫做支持向量。

(2) SVM導入方法
SVM分類算法在Sklearn機器學習包中,實現的類是 svm.SVC,即C-Support Vector Classification,它是基于libsvm實現的。構造方法如下:

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)

其中參數含義如下:

  • C表示目標函數的懲罰系數,用來平衡分類間隔margin和錯分樣本的,默認值為1.0;
  • cache_size是制定訓練所需要的內存(以MB為單位);
  • gamma是核函數的系數,默認是gamma=1/n_features;
  • kernel可以選擇RBF、Linear、Poly、Sigmoid,默認的是RBF;
  • degree決定了多項式的最高次冪;
  • max_iter表示最大迭代次數,默認值為1;
  • coef0是核函數中的獨立項;
  • class_weight表示每個類所占據的權重,不同的類設置不同的懲罰參數C,缺省為自適應;
  • decision_function_shape包括ovo(一對一)、ovr(多對多)或None(默認值)。

SVC算法主要包括兩個步驟:

  • 訓練:nbrs.fit(data, target)
  • 預測:pre = clf.predict(data)

下面這段代碼是簡單調用SVC分類算法進行預測的例子,數據集中x和y坐標為負數的類標為1,x和y坐標為正數的類標為2,同時預測點[-0.8,-1]的類標為1,點[2,1]的類標為2。

import numpy as np from sklearn.svm import SVCX = np.array([[-1, -1], [-2, -2], [1, 3], [4, 6]]) y = np.array([1, 1, 2, 2]) clf = SVC() clf.fit(X, y) print(clf) print(clf.predict([[-0.8,-1], [2,1]]))#輸出結果:[1, 2]

支持向量機分類器還有其他的方法,比如NuSVC核支持向量分類,LinearSVC線性向量支持分類等,這里不再介紹。同時,支持向量機也已經推廣到解決回歸問題,稱為支持向量回歸,比如SVR做線性回歸。


2.SVM分析紅酒數據

接著采用SVM分類算法對酒類數據集Wine進行分析,并對比前面19.3小節的實例代碼,校驗SVM分類算法和KNN分類算法的分析結果和可視化分析的優劣。其分析步驟基本一致,主要包括如下六個步驟:

  • 第一步,加載數據集。采用loadtxt()函數加載酒類數據集,采用逗號(,)分割。
  • 第二步,劃分數據集。將Wine數據集劃分為訓練集和預測集,僅提取酒類13個特種中的兩列特征進行數據分析。
  • 第三步,SVM訓練。導入Sklearn機器學習包中svm.SVC()函數分析,調用fit()函數訓練模型,predict(test_data)函數預測分類結果。
  • 第四步,評價算法。通過classification_report()函數計算該分類預測結果的準確率、召回率和F值。
  • 第五步,創建網格。獲取數據集中兩列特征的最大值和最小值,并創建對應的矩陣網格,用于繪制背景圖,調用numpy擴展包的meshgrid()函數實現。
  • 第六步,繪圖可視化。設置不同類標的顏色,調用pcolormesh()函數繪制背景區域顏色,調用scatter()函數繪制實際結果的散點圖。

完整代碼如下所示:

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 import os import numpy as np from sklearn.svm import SVC from sklearn import metrics import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap#---------------------------------------------------------------------------- #第一步 加載數據集 path = "wine/wine.txt" data = np.loadtxt(path,dtype=float,delimiter=",") print(data)#---------------------------------------------------------------------------- #第二步 劃分數據集 yy, x = np.split(data, (1,), axis=1) #第一列為類標yy,后面13列特征為x print(yy.shape, x.shape) y = [] for n in yy: #將類標浮點型轉化為整數y.append(int(n)) x = x[:, :2] #獲取x前兩列數據,方便繪圖 對應x、y軸 train_data = np.concatenate((x[0:40,:], x[60:100,:], x[140:160,:]), axis = 0) #訓練集 train_target = np.concatenate((y[0:40], y[60:100], y[140:160]), axis = 0) #樣本類別 test_data = np.concatenate((x[40:60, :], x[100:140, :], x[160:,:]), axis = 0) #測試集 test_target = np.concatenate((y[40:60], y[100:140], y[160:]), axis = 0) #樣本類別 print(train_data.shape, train_target.shape) print(test_data.shape, test_target.shape)#---------------------------------------------------------------------------- #第三步 SVC訓練 clf = SVC() clf.fit(train_data,train_target) result = clf.predict(test_data) print(result)#---------------------------------------------------------------------------- #第四步 評價算法 print(sum(result==test_target)) #預測結果與真實結果比對 print(metrics.classification_report(test_target, result)) #準確率 召回率 F值#---------------------------------------------------------------------------- #第五步 創建網格 x1_min, x1_max = test_data[:,0].min()-0.1, test_data[:,0].max()+0.1 #第一列 x2_min, x2_max = test_data[:,1].min()-0.1, test_data[:,1].max()+0.1 #第二列 xx, yy = np.meshgrid(np.arange(x1_min, x1_max, 0.1), np.arange(x2_min, x2_max, 0.1)) #生成網格型數據 z = clf.predict(np.c_[xx.ravel(), yy.ravel()]) #---------------------------------------------------------------------------- #第六步 繪圖可視化 cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF']) #顏色Map cmap_bold = ListedColormap(['#000000', '#00FF00', '#FFFFFF']) plt.figure() z = z.reshape(xx.shape) print(xx.shape, yy.shape, z.shape, test_target.shape) plt.pcolormesh(xx, yy, z, cmap=cmap_light) plt.scatter(test_data[:,0], test_data[:,1], c=test_target,cmap=cmap_bold, s=50) plt.show()

代碼提取了178行數據的第一列作為類標,剩余13列數據作為13個特征的數據集,并劃分為訓練集(100行)和測試集(78行)。輸出結果如下,包括78行SVM分類預測的類標結果,其中61行數據類標與真實的結果一致,其準確率為0.78,召回率為0.78,F1特征為0.78。

最后可視化繪圖輸出如下圖所示的結果。


3.優化SVM分析紅酒數據集

前面SVM分析紅酒數據集的代碼存在兩個缺點,一是采用固定的組合方式劃分的數據集,即調用np.concatenate()函數將0-40、60-100、140-160行數據分割為訓練集,其余為預測集;二是只提取了數據集中的兩列特征進行SVM分析和可視化繪圖,即調用“x = x[:, :2]”獲取前兩列特征,而紅酒數據集共有13列特征。

真實的數據分析中通常會隨機劃分數據集,分析過程也是對所有的特征進行訓練及預測操作,再經過降維處理之后進行可視化繪圖展示。下面對SVM分析紅酒數據集實例進行簡單的代碼優化,主要包括:

  • 隨機劃分紅酒數據集
  • 對數據集的所有特征進行訓練和預測分析
  • 采用PCA算法降維后再進行可視化繪圖操作

完整代碼如下,希望讀者也認真學習該部分知識,更好地優化自己的研究或課題。

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 import os import numpy as np from sklearn.svm import SVC from sklearn import metrics import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA#第一步 加載數據集 path = "wine/wine.txt" data = np.loadtxt(path,dtype=float,delimiter=",") print(data)#第二步 劃分數據集 yy, x = np.split(data, (1,), axis=1) #第一列類標yy,后面13列特征為x print(yy.shape, x.shape) y = [] for n in yy: y.append(int(n)) y = np.array(y, dtype = int) #list轉換數組 #劃分數據集 測試集40% train_data, test_data, train_target, test_target = train_test_split(x, y, test_size=0.4, random_state=42) print(train_data.shape, train_target.shape) print(test_data.shape, test_target.shape)#第三步 SVC訓練 clf = SVC() clf.fit(train_data, train_target) result = clf.predict(test_data) print(result) print(test_target)#第四步 評價算法 print(sum(result==test_target)) #預測結果與真實結果比對 print(metrics.classification_report(test_target, result)) #準確率 召回率 F值#第五步 降維操作 pca = PCA(n_components=2) newData = pca.fit_transform(test_data)#第六步 繪圖可視化 plt.figure() cmap_bold = ListedColormap(['#000000', '#00FF00', '#FFFFFF']) plt.scatter(newData[:,0], newData[:,1], c=test_target, cmap=cmap_bold, s=50) plt.show()

輸出結果如下所示,其準確率、召回率和F值很低,僅為50%、39%和23%。

(106L, 13L) (106L,) (72L, 13L) (72L,) [2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] [1 1 3 1 2 1 2 3 2 3 1 3 1 2 1 2 2 2 1 2 1 2 2 3 3 3 2 2 2 1 1 2 3 1 1 1 33 2 3 1 2 2 2 3 1 2 2 3 1 2 1 1 3 3 2 2 1 2 1 3 2 2 3 1 1 1 3 1 1 2 3] 28precision recall f1-score support1 1.00 0.04 0.07 262 0.38 1.00 0.55 273 0.00 0.00 0.00 19avg / total 0.50 0.39 0.23 72

上述代碼如下采用決策樹進行分析,則其準確率、召回率和F值就很高,結果如下所示。所以并不是每種分析算法都適應所有的數據集,不同數據集其特征不同,最佳分析的算也會不同,我們在進行數據分析時,通常會對比多種分析算法,再優化自己的實驗和模型。

from sklearn.tree import DecisionTreeClassifier clf = DecisionTreeClassifier() print(metrics.classification_report(test_target, result))# precision recall f1-score support # # 1 0.96 0.88 0.92 26 # 2 0.90 1.00 0.95 27 # 3 1.00 0.95 0.97 19 # #avg / total 0.95 0.94 0.94 72

SVM算法分析后輸出的圖形如下所示。


五.各模型分類對比實驗

算法評價和對比實驗是深度學習重要的知識點,這里作者對各種機器學習分類算法進行對比,以鳶尾花數據集為例,我們從繪制的分類邊界效果以及實驗評估指標(Precision、Recall、F1-socre)分別進行對比。參考文章如下,推薦大家學習:

  • 機器學習之sklearn基本分類方法 - 萌弟老師

1.決策樹

原始代碼如下:

# -*- coding: utf-8 -*- # By:Eastmount CSDN 2021-07-06 # 該部分參考知乎萌弟老師:https://zhuanlan.zhihu.com/p/173945775 import numpy as np from sklearn import metrics from sklearn import datasets import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler#------------------------------------------------------------------------ #第一步 導入數據 iris = datasets.load_iris() X = iris.data[:,[2,3]] y = iris.target print("Class labels:",np.unique(y)) #打印分類類別的種類 [0 1 2]#30%測試數據 70%訓練數據 stratify=y表示訓練數據和測試數據具有相同的類別比例 X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=1,stratify=y)#------------------------------------------------------------------------ #第二步 數據標準化 sc = StandardScaler() #估算訓練數據中的mu和sigma sc.fit(X_train) #使用訓練數據中的mu和sigma對數據進行標準化 X_train_std = sc.transform(X_train) X_test_std = sc.transform(X_test) print(X_train_std) print(X_test_std)#------------------------------------------------------------------------ #第三步 可視化函數 畫出決策邊界 def plot_decision_region(X,y,classifier,resolution=0.02):markers = ('s','x','o','^','v')colors = ('red','blue','lightgreen','gray','cyan')cmap = ListedColormap(colors[:len(np.unique(y))])# plot the decision surfacex1_min,x1_max = X[:,0].min()-1,X[:,0].max()+1x2_min,x2_max = X[:,1].min()-1,X[:,1].max()+1xx1,xx2 = np.meshgrid(np.arange(x1_min,x1_max,resolution),np.arange(x2_min,x2_max,resolution))Z = classifier.predict(np.array([xx1.ravel(),xx2.ravel()]).T)Z = Z.reshape(xx1.shape)plt.contourf(xx1,xx2,Z,alpha=0.3,cmap=cmap)plt.xlim(xx1.min(),xx1.max())plt.ylim(xx2.min(),xx2.max())# plot class samplesfor idx,cl in enumerate(np.unique(y)):plt.scatter(x=X[y==cl,0],y = X[y==cl,1],alpha=0.8,c=colors[idx],marker = markers[idx],label=cl,edgecolors='black')#------------------------------------------------------------------------ #第四步 決策樹分類 from sklearn.tree import DecisionTreeClassifier tree = DecisionTreeClassifier(criterion='gini',max_depth=4,random_state=1) tree.fit(X_train_std,y_train) print(X_train_std.shape, X_test_std.shape, len(y_train), len(y_test)) #(105, 2) (45, 2) 105 45 res1 = tree.predict(X_test_std) print(res1) print(metrics.classification_report(y_test, res1, digits=4)) #四位小數plot_decision_region(X_train_std,y_train,classifier=tree,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('DecisionTreeClassifier') plt.legend(loc='upper left') plt.show()

實驗的精確率、召回率和F1值輸出如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示,可以看到分類效果明顯。


2.KNN

核心代碼如下:

  • macro avg: 0.98 0.98 0.98
#第五步 KNN分類 from sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=2,p=2,metric="minkowski") knn.fit(X_train_std,y_train) res2 = knn.predict(X_test_std) print(res2) print(metrics.classification_report(y_test, res2, digits=4)) #四位小數plot_decision_region(X_train_std,y_train,classifier=knn,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('KNeighborsClassifier') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示:


3.SVM

核心代碼如下:

#第六步 SVM分類 核函數對非線性分類問題建模(gamma=0.20) from sklearn.svm import SVC svm = SVC(kernel='rbf',random_state=1,gamma=0.20,C=1.0) #較小的gamma有較松的決策邊界 svm.fit(X_train_std,y_train) res3 = svm.predict(X_test_std) print(res3) print(metrics.classification_report(y_test, res3, digits=4))plot_decision_region(X_train_std,y_train,classifier=svm,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('SVM') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9361 0.9333 0.9340
precision recall f1-score support0 1.0000 0.9333 0.9655 151 0.9333 0.9333 0.9333 152 0.8750 0.9333 0.9032 15accuracy 0.9333 45macro avg 0.9361 0.9333 0.9340 45 weighted avg 0.9361 0.9333 0.9340 45

繪制的訓練數據分類效果如下圖所示:

如果使用的核函數gamma為100,然后實現非線性分類,則繪制結果如下圖所示:

  • svm = SVC(kernel=‘rbf’,random_state=1,gamma=100.0,C=1.0,verbose=1)

引用萌弟老師的結論,非常土建大家去關注他。
從不同的gamma取值的圖像來看:對于高斯核函數,增大gamma值,將增大訓練樣本的影響范圍,導致決策邊界緊縮和波動;較小的gamma值得到的決策邊界相對寬松。雖然較大的gamma值在訓練樣本中有很小的訓練誤差,但是很可能泛化能力較差,容易出現過擬合。


4.邏輯回歸

核心代碼如下:

#第七步 邏輯回歸分類 from sklearn.linear_model import LogisticRegression lr = LogisticRegression(C=100.0,random_state=1) lr.fit(X_train_std,y_train) res4 = lr.predict(X_test_std) print(res4) print(metrics.classification_report(y_test, res4, digits=4))plot_decision_region(X_train_std,y_train,classifier=lr,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('LogisticRegression') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示:


5.樸素貝葉斯

核心代碼如下:

#第八步 樸素貝葉斯分類 from sklearn.naive_bayes import GaussianNB gnb = GaussianNB() gnb.fit(X_train_std,y_train) res5 = gnb.predict(X_test_std) print(res5) print(metrics.classification_report(y_test, res5, digits=4))plot_decision_region(X_train_std,y_train,classifier=gnb,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('GaussianNB') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示,還挺好看的,邊界呈曲線分布。


6.隨機森林

核心代碼如下:

#第九步 隨機森林分類 from sklearn.ensemble import RandomForestClassifier forest = RandomForestClassifier(criterion='gini',n_estimators=25,random_state=1,n_jobs=2,verbose=1) forest.fit(X_train_std,y_train) res6 = gnb.predict(X_test_std) print(res6) print(metrics.classification_report(y_test, res6, digits=4))plot_decision_region(X_train_std,y_train,classifier=forest,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('GaussianNB') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示:


7.AdaBoost

核心代碼如下:

#第十步 集成學習分類 from sklearn.ensemble import AdaBoostClassifier ada = AdaBoostClassifier() ada.fit(X_train_std,y_train) res7 = ada.predict(X_test_std) print(res7) print(metrics.classification_report(y_test, res7, digits=4))plot_decision_region(X_train_std,y_train,classifier=forest,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('AdaBoostClassifier') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示:


8.GradientBoosting

核心代碼如下:

#第11步 GradientBoosting分類 from sklearn.ensemble import GradientBoostingClassifier gb = GradientBoostingClassifier() ada.fit(X_train_std,y_train) res8 = ada.predict(X_test_std) print(res8) print(metrics.classification_report(y_test, res8, digits=4))plot_decision_region(X_train_std,y_train,classifier=forest,resolution=0.02) plt.xlabel('petal length [standardized]') plt.ylabel('petal width [standardized]') plt.title('GradientBoostingClassifier') plt.legend(loc='upper left') plt.show()

輸出結果如下:

  • macro avg: 0.9792 0.9778 0.9778
precision recall f1-score support0 1.0000 1.0000 1.0000 151 0.9375 1.0000 0.9677 152 1.0000 0.9333 0.9655 15accuracy 0.9778 45macro avg 0.9792 0.9778 0.9778 45 weighted avg 0.9792 0.9778 0.9778 45

繪制的訓練數據分類效果如下圖所示:


9.實驗結果對比

最后通常需要對實驗結果進行對比,由于數據集比較少,所有效果都比較好,這里不太好進行對比實驗。簡單給出兩張對比結果圖,但方法是類似的。隨著作者深入會分享更多相關文章。


六.本章小結

寫到這里,這篇文章就結束了,您是否對分類更好的認識呢?
聚類是通過定義一種距離度量方法,表示兩個東西的相似程度,然后將類內相似度高且類間相似度低的數據放在一個類中,它是不需要標注結果的無監督學習算法。與之不同,分類是需要標注類標的,屬于有監督學習,它表示收集某一類數據的共有特征,找出區分度大的特征,用這些特征對要分類的數據進行分類,并且由于是標注結果的,可以通過反復地訓練來提升分類算法。

常見的分類算法包括樸素貝葉斯、邏輯回歸、決策樹、支持向量機等。常見應用比如通過分析市民歷史公交卡交易數據來分類預測乘客的出行習慣和偏好;京東從海量商品圖片中提取圖像特征,通過分類給用戶推薦商品和廣告,比如“找同款”應用;基于短信文本內容的分類智能化識別垃圾短信及其變種,防止騷擾手機用戶;搜索引擎通過訓練用戶的歷史查詢詞和用戶屬性標簽(如性別、年齡、愛好),構建分類算法來預測新增用戶的屬性及偏好等。不同的分類算法有不同的優劣,希望讀者下來編寫代碼體會不同的分類算法的特點。

最后希望讀者能復現每一行代碼,只有實踐才能進步。同時更多聚類算法和原理知識,希望讀者下來自行深入學習研究,也推薦大家結合Sklearn官網和開源網站學習更多的機器學習知識。

該系列所有代碼下載地址:

  • https://github.com/eastmountyxz/Python-zero2one

感謝在求學路上的同行者,不負遇見,勿忘初心。這周的留言感慨~

(By:娜璋之家 Eastmount 2021-07-10 夜于武漢 https://blog.csdn.net/Eastmount )


參考文獻:

  • [1] 楊秀璋. 專欄:知識圖譜、web數據挖掘及NLP - CSDN博客[EB/OL]. (2016-09-19)[2017-11-07]. http://blog.csdn.net/column/details/eastmount-kgdmnlp.html.
  • [2] 張良均,王路,譚立云,蘇劍林. Python數據分析與挖掘實戰[M]. 北京:機械工業出版社,2016.
  • [3] (美)Wes McKinney著. 唐學韜等譯. 利用Python進行數據分析[M]. 北京:機械工業出版社,2013.
  • [4] Jiawei Han,Micheline Kamber著. 范明,孟小峰譯. 數據挖掘概念與技術. 北京:機械工業出版社,2007.
  • [5] 楊秀璋. [Python數據挖掘課程] 四.決策樹DTC數據分析及鳶尾數據集分析[EB/OL].(2016-10-15)[2017-11-26]. http://blog.csdn.net/eastmount/article/details/52820400.
  • [6] 楊秀璋. [Python數據挖掘課程] 五.線性回歸知識及預測糖尿病實例[EB\OL]. (2016-10-28)[2017-11-26]. http://blog.csdn.net/eastmount/article/details/52929765.
  • [7] jackywu1010. 分類算法概述與比較[EB/OL]. (2011-12-09)[2017-11-26]. http://blog.csdn.net/jackywu1010/article/details/7055561.
  • [8] 百度百科. 鄰近算法[EB/OL]. (2015-09-16)[2017-11-26]. https://baike.baidu.com/item/鄰近算法/1151153?fr=aladdin.
  • [9] 楊秀璋. [python數據挖掘課程] 十九.鳶尾花數據集可視化、線性回歸、決策樹花樣分析[EB/OL]. (2017-12-02)[2017-12-02]. http://blog.csdn.net/eastmount/article/
    details/78692227.
  • [10]楊秀璋. [python數據挖掘課程] 二十.KNN最近鄰分類算法分析詳解及平衡秤TXT數據集讀取[EB/OL]. (2017-12-08)[2017-12-08]. http://blog.csdn.net/eastmount/article/
    details/78747128.
  • [11] lsldd. 用Python開始機器學習(4:KNN分類算法)[EB/OL]. (2014-11-23)[2017-11-26]. http://blog.csdn.net/lsldd/article/details/41357931.
  • [12] UCI官網. UCI Machine Learning Repository: Wine Data Set[EB/OL]. (2017)[2017-12-08]. http://archive.ics.uci.edu/ml/datasets/Wine.
  • [13]楊秀璋. [python數據挖掘課程] 二十一.樸素貝葉斯分類器詳解及中文文本輿情分析[EB/OL]. (2018-01-24)[2018-01-24]. http://blog.csdn.net/eastmount/article/
    details/79128235.
  • [14] scikit-learn官網. Nearest Neighbors Classification scikit-learn[EB\OL]. (2017)[2017-12-08]. http://scikit-learn.org/stable/auto_examples/neighbors/
    plot_classification.html#sphx-glr-auto-examples-neighbors-plot-classification-py.
  • [15]July大神. 支持向量機通俗導論(理解SVM的三層境界)[EB/OL]. http://blog.csdn.net/v_JULY_v/article/details/7624837.

總結

以上是生活随笔為你收集整理的[Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

亚洲人成无码网www | 中文字幕无码免费久久99 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | aⅴ亚洲 日韩 色 图网站 播放 | 日本高清一区免费中文视频 | 欧洲极品少妇 | 国产激情艳情在线看视频 | 亚洲中文字幕无码中字 | 少妇性俱乐部纵欲狂欢电影 | 久久人人97超碰a片精品 | 亚洲精品中文字幕乱码 | 久久国产精品偷任你爽任你 | √天堂资源地址中文在线 | 国产成人无码av在线影院 | 18黄暴禁片在线观看 | 国产超碰人人爽人人做人人添 | 性色欲网站人妻丰满中文久久不卡 | 人妻天天爽夜夜爽一区二区 | 亚洲中文字幕无码中文字在线 | 蜜桃视频韩日免费播放 | 日日橹狠狠爱欧美视频 | 在线观看免费人成视频 | 欧美性生交xxxxx久久久 | 国产xxx69麻豆国语对白 | 亚洲国产欧美日韩精品一区二区三区 | 人人妻人人澡人人爽人人精品浪潮 | 久久精品视频在线看15 | 青青青爽视频在线观看 | 日韩精品无码一本二本三本色 | 国产av一区二区精品久久凹凸 | 国产精品亚洲一区二区三区喷水 | 窝窝午夜理论片影院 | 国产av无码专区亚洲a∨毛片 | 亚洲精品国产a久久久久久 | 三上悠亚人妻中文字幕在线 | 日本护士毛茸茸高潮 | 成 人影片 免费观看 | 国产 精品 自在自线 | 88国产精品欧美一区二区三区 | 国产国语老龄妇女a片 | 一本大道伊人av久久综合 | 性色av无码免费一区二区三区 | 免费看男女做好爽好硬视频 | 少妇人妻偷人精品无码视频 | 亚洲乱码中文字幕在线 | 亚洲一区二区三区香蕉 | 亚洲精品国偷拍自产在线麻豆 | 久久综合九色综合欧美狠狠 | 国产香蕉尹人视频在线 | 久久久亚洲欧洲日产国码αv | 无码人妻丰满熟妇区五十路百度 | 国产人妻大战黑人第1集 | 国产精品高潮呻吟av久久4虎 | 乱人伦中文视频在线观看 | 香蕉久久久久久av成人 | 天天躁日日躁狠狠躁免费麻豆 | 久久人人爽人人爽人人片av高清 | 亚洲综合色区中文字幕 | 99久久久国产精品无码免费 | 国产午夜亚洲精品不卡 | 奇米影视7777久久精品人人爽 | 55夜色66夜色国产精品视频 | 国产精品永久免费视频 | 国产精品二区一区二区aⅴ污介绍 | 亚洲爆乳大丰满无码专区 | 中文字幕乱码中文乱码51精品 | 扒开双腿疯狂进出爽爽爽视频 | 人人妻人人澡人人爽精品欧美 | 欧美zoozzooz性欧美 | 亚洲日韩乱码中文无码蜜桃臀网站 | 日韩少妇白浆无码系列 | 久久综合色之久久综合 | 久久伊人色av天堂九九小黄鸭 | 欧美第一黄网免费网站 | 久久人人97超碰a片精品 | 国产精品人妻一区二区三区四 | 18禁黄网站男男禁片免费观看 | 99er热精品视频 | 曰本女人与公拘交酡免费视频 | 日日天干夜夜狠狠爱 | 无码成人精品区在线观看 | 搡女人真爽免费视频大全 | 精品久久8x国产免费观看 | 欧美高清在线精品一区 | 免费网站看v片在线18禁无码 | 精品国产青草久久久久福利 | 国产免费久久久久久无码 | 免费国产成人高清在线观看网站 | 国产精品办公室沙发 | 成 人影片 免费观看 | 无码帝国www无码专区色综合 | 丰满少妇熟乱xxxxx视频 | 国产莉萝无码av在线播放 | 国产精品久久福利网站 | 人妻夜夜爽天天爽三区 | 久久精品国产一区二区三区 | 无码国产色欲xxxxx视频 | 国产亚洲精品久久久闺蜜 | 一区二区传媒有限公司 | 东京一本一道一二三区 | 亚洲一区二区三区播放 | 欧美日本日韩 | 久久亚洲精品成人无码 | 99麻豆久久久国产精品免费 | 欧美性生交xxxxx久久久 | 国产69精品久久久久app下载 | 少妇无套内谢久久久久 | 最近中文2019字幕第二页 | 国产美女精品一区二区三区 | 正在播放东北夫妻内射 | 免费看男女做好爽好硬视频 | 国产午夜福利100集发布 | 久久精品国产大片免费观看 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲欧美中文字幕5发布 | 女人被男人躁得好爽免费视频 | 久久婷婷五月综合色国产香蕉 | 2020最新国产自产精品 | 国产精品久久久久无码av色戒 | 精品国产福利一区二区 | 亚洲精品www久久久 | 亚洲色欲久久久综合网东京热 | 麻豆蜜桃av蜜臀av色欲av | 国产美女精品一区二区三区 | 亚洲成色www久久网站 | 狂野欧美性猛交免费视频 | 久久久久亚洲精品男人的天堂 | 一本色道婷婷久久欧美 | 激情国产av做激情国产爱 | 成人无码精品一区二区三区 | a在线观看免费网站大全 | 国产乱人伦av在线无码 | 国产超碰人人爽人人做人人添 | 亚洲毛片av日韩av无码 | 亚洲日韩精品欧美一区二区 | 亚洲 a v无 码免 费 成 人 a v | 午夜精品一区二区三区在线观看 | 欧美性猛交内射兽交老熟妇 | 欧美丰满熟妇xxxx性ppx人交 | 久久精品人人做人人综合 | 国产熟女一区二区三区四区五区 | 国精产品一品二品国精品69xx | 又色又爽又黄的美女裸体网站 | 丰满人妻精品国产99aⅴ | 美女张开腿让人桶 | 国产肉丝袜在线观看 | 少妇被粗大的猛进出69影院 | 国产精品久久久一区二区三区 | 国内精品人妻无码久久久影院 | 西西人体www44rt大胆高清 | 噜噜噜亚洲色成人网站 | 男女作爱免费网站 | 蜜桃av抽搐高潮一区二区 | 玩弄中年熟妇正在播放 | 国产熟妇高潮叫床视频播放 | 少妇一晚三次一区二区三区 | 亚洲码国产精品高潮在线 | 四虎国产精品一区二区 | 国精产品一区二区三区 | 国产极品美女高潮无套在线观看 | 啦啦啦www在线观看免费视频 | 妺妺窝人体色www在线小说 | 成在人线av无码免观看麻豆 | 18禁黄网站男男禁片免费观看 | 日日碰狠狠躁久久躁蜜桃 | 免费国产黄网站在线观看 | 清纯唯美经典一区二区 | 人人妻人人澡人人爽人人精品 | 国产精华av午夜在线观看 | 久久国产精品_国产精品 | 国产口爆吞精在线视频 | 国产精品怡红院永久免费 | 丰满人妻翻云覆雨呻吟视频 | 国产真实乱对白精彩久久 | 国产午夜手机精彩视频 | 少妇人妻偷人精品无码视频 | 狠狠色噜噜狠狠狠7777奇米 | 欧美国产日产一区二区 | 亚洲无人区一区二区三区 | 老熟女重囗味hdxx69 | 国内少妇偷人精品视频免费 | 国内精品人妻无码久久久影院蜜桃 | 好男人www社区 | 伊人久久大香线焦av综合影院 | 在线播放无码字幕亚洲 | 国产性生大片免费观看性 | 色综合久久88色综合天天 | 国产高清av在线播放 | 永久免费精品精品永久-夜色 | 漂亮人妻洗澡被公强 日日躁 | 清纯唯美经典一区二区 | 国产免费久久精品国产传媒 | 亚洲成av人在线观看网址 | 久久精品99久久香蕉国产色戒 | 亚洲国产精品久久人人爱 | 奇米影视888欧美在线观看 | 丁香花在线影院观看在线播放 | 永久黄网站色视频免费直播 | 美女扒开屁股让男人桶 | 亚洲天堂2017无码中文 | 欧美精品无码一区二区三区 | 国产成人亚洲综合无码 | 最近的中文字幕在线看视频 | 国产一区二区三区日韩精品 | 一个人看的视频www在线 | 色妞www精品免费视频 | 久久午夜无码鲁丝片午夜精品 | 一本无码人妻在中文字幕免费 | 国产超碰人人爽人人做人人添 | 精品aⅴ一区二区三区 | 久久无码中文字幕免费影院蜜桃 | 亚洲国产精品毛片av不卡在线 | 亚洲小说春色综合另类 | 亚洲综合久久一区二区 | 午夜精品久久久久久久 | 亚洲狠狠色丁香婷婷综合 | 无码一区二区三区在线观看 | 国产av无码专区亚洲a∨毛片 | 国产乱码精品一品二品 | 久久综合给合久久狠狠狠97色 | 亚洲精品综合五月久久小说 | 丰满人妻一区二区三区免费视频 | 欧美成人免费全部网站 | 亚洲一区二区三区国产精华液 | 国产av剧情md精品麻豆 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美日本日韩 | 久久久久亚洲精品男人的天堂 | www国产精品内射老师 | 无码人妻精品一区二区三区下载 | 久久久久99精品成人片 | 无码av免费一区二区三区试看 | 亚洲爆乳精品无码一区二区三区 | 国产精品久久久久无码av色戒 | 国产午夜无码视频在线观看 | 亚洲乱码国产乱码精品精 | 久久久亚洲欧洲日产国码αv | 伊人久久婷婷五月综合97色 | 美女毛片一区二区三区四区 | 国产精品-区区久久久狼 | 国产av无码专区亚洲awww | 狠狠色丁香久久婷婷综合五月 | 偷窥村妇洗澡毛毛多 | 无码成人精品区在线观看 | 天干天干啦夜天干天2017 | 小泽玛莉亚一区二区视频在线 | 久久精品国产一区二区三区 | 55夜色66夜色国产精品视频 | 久久精品国产一区二区三区 | 精品国产av色一区二区深夜久久 | 国产日产欧产精品精品app | 性生交大片免费看l | 高清国产亚洲精品自在久久 | 久久久无码中文字幕久... | 国产人妻人伦精品 | 久久国产精品二国产精品 | 扒开双腿吃奶呻吟做受视频 | 精品久久久无码人妻字幂 | 国产97在线 | 亚洲 | 久久精品国产一区二区三区 | 又黄又爽又色的视频 | 纯爱无遮挡h肉动漫在线播放 | 日韩精品乱码av一区二区 | 欧美日韩亚洲国产精品 | 国产激情艳情在线看视频 | 色婷婷综合中文久久一本 | 草草网站影院白丝内射 | 亚洲gv猛男gv无码男同 | 久久久国产精品无码免费专区 | 扒开双腿吃奶呻吟做受视频 | 激情国产av做激情国产爱 | 老太婆性杂交欧美肥老太 | 日本va欧美va欧美va精品 | 午夜理论片yy44880影院 | 无遮挡国产高潮视频免费观看 | 少妇人妻偷人精品无码视频 | 国产av剧情md精品麻豆 | 国产亚洲人成在线播放 | 99精品视频在线观看免费 | 成人性做爰aaa片免费看不忠 | 精品少妇爆乳无码av无码专区 | 少妇性l交大片欧洲热妇乱xxx | 免费网站看v片在线18禁无码 | 丰满少妇人妻久久久久久 | 牲欲强的熟妇农村老妇女 | 一区二区传媒有限公司 | 一本大道伊人av久久综合 | 国产精品久久久一区二区三区 | 国产特级毛片aaaaaa高潮流水 | 久久综合九色综合欧美狠狠 | 无码人妻丰满熟妇区毛片18 | av人摸人人人澡人人超碰下载 | 国产色xx群视频射精 | 欧美日韩一区二区综合 | 亚洲精品一区二区三区婷婷月 | 亚洲精品一区二区三区四区五区 | 精品人妻人人做人人爽 | 99在线 | 亚洲 | 三级4级全黄60分钟 | 国产日产欧产精品精品app | 99久久久无码国产精品免费 | 亚洲成a人一区二区三区 | 东京热无码av男人的天堂 | 国产成人无码区免费内射一片色欲 | 精品国产aⅴ无码一区二区 | 亚洲爆乳大丰满无码专区 | 亚洲国产成人a精品不卡在线 | 日日夜夜撸啊撸 | 日韩人妻无码一区二区三区久久99 | 少妇性荡欲午夜性开放视频剧场 | 国产又粗又硬又大爽黄老大爷视 | 国产亚av手机在线观看 | 成人av无码一区二区三区 | 九九在线中文字幕无码 | 国产精品a成v人在线播放 | 特级做a爰片毛片免费69 | 精品无码一区二区三区的天堂 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日本熟妇人妻xxxxx人hd | 一本色道婷婷久久欧美 | 亚洲欧洲日本无在线码 | 熟妇激情内射com | 熟妇人妻激情偷爽文 | 日本又色又爽又黄的a片18禁 | 中文字幕乱码亚洲无线三区 | 亚洲中文字幕在线无码一区二区 | 欧美人妻一区二区三区 | 国产亚洲人成a在线v网站 | 国产片av国语在线观看 | 老子影院午夜伦不卡 | a在线亚洲男人的天堂 | 免费无码肉片在线观看 | 激情爆乳一区二区三区 | 国产av无码专区亚洲awww | 欧美xxxxx精品 | 中文字幕人成乱码熟女app | 理论片87福利理论电影 | 色综合久久久久综合一本到桃花网 | 无码av岛国片在线播放 | 亚洲人亚洲人成电影网站色 | 荫蒂被男人添的好舒服爽免费视频 | 国产电影无码午夜在线播放 | 麻豆成人精品国产免费 | 极品尤物被啪到呻吟喷水 | av香港经典三级级 在线 | 国产精品高潮呻吟av久久 | 午夜熟女插插xx免费视频 | 精品一区二区三区波多野结衣 | yw尤物av无码国产在线观看 | 水蜜桃av无码 | 少妇邻居内射在线 | 国产特级毛片aaaaaaa高清 | 国产97人人超碰caoprom | 亚洲日本一区二区三区在线 | 狠狠噜狠狠狠狠丁香五月 | 人人妻人人澡人人爽精品欧美 | 久久久av男人的天堂 | 天海翼激烈高潮到腰振不止 | 夜夜高潮次次欢爽av女 | 久久久久亚洲精品中文字幕 | 国产欧美精品一区二区三区 | av香港经典三级级 在线 | 欧美高清在线精品一区 | 在线观看国产一区二区三区 | 国产在线aaa片一区二区99 | 久久这里只有精品视频9 | 成人性做爰aaa片免费看不忠 | 小sao货水好多真紧h无码视频 | 国产香蕉97碰碰久久人人 | 97se亚洲精品一区 | 日韩视频 中文字幕 视频一区 | 亚洲欧美综合区丁香五月小说 | 国产精品国产三级国产专播 | 午夜精品一区二区三区在线观看 | 国产精品沙发午睡系列 | 乱人伦人妻中文字幕无码久久网 | 成人欧美一区二区三区 | 图片区 小说区 区 亚洲五月 | 亚洲精品国产a久久久久久 | 色欲综合久久中文字幕网 | 精品日本一区二区三区在线观看 | 性生交大片免费看l | 亚洲の无码国产の无码步美 | 无码国内精品人妻少妇 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产精品欧美成人 | 日本一区二区三区免费播放 | 亚洲熟熟妇xxxx | 粉嫩少妇内射浓精videos | 激情综合激情五月俺也去 | 熟妇人妻无乱码中文字幕 | 久久精品99久久香蕉国产色戒 | av无码电影一区二区三区 | 97无码免费人妻超级碰碰夜夜 | 久久久精品国产sm最大网站 | 精品一二三区久久aaa片 | 永久黄网站色视频免费直播 | 欧美丰满老熟妇xxxxx性 | 人妻与老人中文字幕 | 日本大乳高潮视频在线观看 | 欧美性生交xxxxx久久久 | 亚洲一区二区三区播放 | 亚洲の无码国产の无码步美 | 精品国产一区二区三区四区在线看 | 日日碰狠狠丁香久燥 | 无码人妻av免费一区二区三区 | 99精品久久毛片a片 | 久久天天躁夜夜躁狠狠 | 国产两女互慰高潮视频在线观看 | 欧美 日韩 亚洲 在线 | 日韩精品成人一区二区三区 | 无码人妻久久一区二区三区不卡 | 久久精品成人欧美大片 | 国产美女精品一区二区三区 | 国产午夜无码视频在线观看 | 亚洲阿v天堂在线 | 国产精品美女久久久网av | 鲁鲁鲁爽爽爽在线视频观看 | 成在人线av无码免观看麻豆 | 欧美精品一区二区精品久久 | 国产熟妇高潮叫床视频播放 | 波多野结衣 黑人 | 性色欲网站人妻丰满中文久久不卡 | 亚洲 另类 在线 欧美 制服 | 4hu四虎永久在线观看 | 精品少妇爆乳无码av无码专区 | 亚洲 高清 成人 动漫 | 国产亲子乱弄免费视频 | 国产av无码专区亚洲awww | 精品熟女少妇av免费观看 | 亚洲经典千人经典日产 | 亚洲aⅴ无码成人网站国产app | 一区二区三区高清视频一 | 亚洲欧洲日本综合aⅴ在线 | 日韩少妇白浆无码系列 | 麻豆精品国产精华精华液好用吗 | 强开小婷嫩苞又嫩又紧视频 | 成年美女黄网站色大免费全看 | 天干天干啦夜天干天2017 | 亚洲国产精品美女久久久久 | 亚洲精品午夜国产va久久成人 | 国内精品人妻无码久久久影院 | 精品国偷自产在线 | 东京热无码av男人的天堂 | 亚洲综合久久一区二区 | 秋霞成人午夜鲁丝一区二区三区 | 日产精品99久久久久久 | 捆绑白丝粉色jk震动捧喷白浆 | 久久精品丝袜高跟鞋 | 中文字幕+乱码+中文字幕一区 | 国产极品美女高潮无套在线观看 | 无码人妻黑人中文字幕 | 欧美老熟妇乱xxxxx | 亚洲中文无码av永久不收费 | 国产成人久久精品流白浆 | 亚洲国产一区二区三区在线观看 | 爆乳一区二区三区无码 | 女高中生第一次破苞av | 色欲综合久久中文字幕网 | 无码人妻av免费一区二区三区 | 少妇被粗大的猛进出69影院 | 牛和人交xxxx欧美 | 18禁止看的免费污网站 | 国产成人无码专区 | 亚洲高清偷拍一区二区三区 | 国产深夜福利视频在线 | 性史性农村dvd毛片 | 国产精品久久久午夜夜伦鲁鲁 | 亚洲国产精品无码一区二区三区 | 中文字幕 亚洲精品 第1页 | 亚洲精品久久久久中文第一幕 | 日本一卡二卡不卡视频查询 | 极品嫩模高潮叫床 | 国产精品va在线观看无码 | 久久午夜夜伦鲁鲁片无码免费 | 大肉大捧一进一出视频出来呀 | a在线亚洲男人的天堂 | 久久综合网欧美色妞网 | 最新版天堂资源中文官网 | 成人性做爰aaa片免费看不忠 | 国产精品丝袜黑色高跟鞋 | 欧美日本日韩 | 欧美zoozzooz性欧美 | 国产精品二区一区二区aⅴ污介绍 | 久久久中文字幕日本无吗 | 娇妻被黑人粗大高潮白浆 | 99久久人妻精品免费二区 | 精品国产国产综合精品 | 日日碰狠狠躁久久躁蜜桃 | 丝袜人妻一区二区三区 | 人人澡人人妻人人爽人人蜜桃 | 蜜臀aⅴ国产精品久久久国产老师 | 欧美熟妇另类久久久久久不卡 | 无码国内精品人妻少妇 | 国产精品久久久久久久9999 | 精品久久久无码中文字幕 | 亚洲中文字幕在线无码一区二区 | 国产明星裸体无码xxxx视频 | 久久久精品欧美一区二区免费 | 久久综合香蕉国产蜜臀av | 无码精品人妻一区二区三区av | 亚洲人成网站免费播放 | 国产卡一卡二卡三 | 久久久久se色偷偷亚洲精品av | 国产精品亚洲专区无码不卡 | 99精品无人区乱码1区2区3区 | 日日摸夜夜摸狠狠摸婷婷 | 国产人妻人伦精品 | 乱中年女人伦av三区 | 98国产精品综合一区二区三区 | aⅴ在线视频男人的天堂 | 狠狠色丁香久久婷婷综合五月 | 日韩视频 中文字幕 视频一区 | 强辱丰满人妻hd中文字幕 | 老头边吃奶边弄进去呻吟 | 小sao货水好多真紧h无码视频 | 在线精品亚洲一区二区 | 久久久无码中文字幕久... | 欧美人与动性行为视频 | 1000部啪啪未满十八勿入下载 | 精品亚洲成av人在线观看 | 久久99精品久久久久婷婷 | 成人欧美一区二区三区黑人 | √天堂中文官网8在线 | 亚洲中文字幕在线无码一区二区 | 国产suv精品一区二区五 | 亚洲午夜福利在线观看 | 亚洲男人av香蕉爽爽爽爽 | 欧美老熟妇乱xxxxx | 无码人妻丰满熟妇区五十路百度 | 内射欧美老妇wbb | 精品国产成人一区二区三区 | 帮老师解开蕾丝奶罩吸乳网站 | 久久亚洲日韩精品一区二区三区 | 99久久久无码国产精品免费 | 欧美性黑人极品hd | а√资源新版在线天堂 | 中文久久乱码一区二区 | 国产国语老龄妇女a片 | 撕开奶罩揉吮奶头视频 | 午夜理论片yy44880影院 | 台湾无码一区二区 | 国精产品一区二区三区 | 人人超人人超碰超国产 | 一本色道久久综合狠狠躁 | 无码一区二区三区在线 | 成人片黄网站色大片免费观看 | 丰满人妻一区二区三区免费视频 | 国产亚洲tv在线观看 | 九九热爱视频精品 | 欧美丰满熟妇xxxx性ppx人交 | 18黄暴禁片在线观看 | 男人扒开女人内裤强吻桶进去 | 在线а√天堂中文官网 | 自拍偷自拍亚洲精品被多人伦好爽 | 正在播放老肥熟妇露脸 | 日韩精品无码免费一区二区三区 | 2020久久超碰国产精品最新 | 欧美变态另类xxxx | 麻豆国产丝袜白领秘书在线观看 | 巨爆乳无码视频在线观看 | √8天堂资源地址中文在线 | 久久99精品久久久久久 | 国产高清不卡无码视频 | 日本在线高清不卡免费播放 | 夜夜夜高潮夜夜爽夜夜爰爰 | 免费视频欧美无人区码 | 狠狠躁日日躁夜夜躁2020 | 精品久久久久久亚洲精品 | 亚洲 另类 在线 欧美 制服 | 2019午夜福利不卡片在线 | 中文字幕无码人妻少妇免费 | 亚洲午夜无码久久 | 国产美女精品一区二区三区 | 国产人成高清在线视频99最全资源 | 大乳丰满人妻中文字幕日本 | 亚洲日本va中文字幕 | 亚洲中文字幕va福利 | 成人三级无码视频在线观看 | 亚洲自偷自拍另类第1页 | 领导边摸边吃奶边做爽在线观看 | 国产又爽又猛又粗的视频a片 | 久久精品一区二区三区四区 | 国产无遮挡又黄又爽免费视频 | 黑人大群体交免费视频 | 天天拍夜夜添久久精品 | 国产欧美精品一区二区三区 | 日本一卡二卡不卡视频查询 | 国产人妻精品一区二区三区不卡 | 久久久久久久久蜜桃 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 亚洲国产精品无码久久久久高潮 | 国产美女精品一区二区三区 | 亚洲人亚洲人成电影网站色 | 九九久久精品国产免费看小说 | 中国大陆精品视频xxxx | 久久久久99精品国产片 | 欧洲美熟女乱又伦 | 久久久久av无码免费网 | 嫩b人妻精品一区二区三区 | 丰腴饱满的极品熟妇 | 欧美日韩一区二区免费视频 | 国产suv精品一区二区五 | aa片在线观看视频在线播放 | 精品人人妻人人澡人人爽人人 | 国产人成高清在线视频99最全资源 | 99久久精品日本一区二区免费 | 亚洲天堂2017无码 | 国产在线aaa片一区二区99 | 久久精品国产日本波多野结衣 | 成人毛片一区二区 | 久久99精品久久久久婷婷 | 波多野结衣一区二区三区av免费 | 最近免费中文字幕中文高清百度 | 欧美熟妇另类久久久久久不卡 | 日日碰狠狠躁久久躁蜜桃 | 青春草在线视频免费观看 | 99riav国产精品视频 | 久久精品国产日本波多野结衣 | 午夜精品久久久内射近拍高清 | 亚洲国产成人av在线观看 | 激情内射亚州一区二区三区爱妻 | 国语自产偷拍精品视频偷 | 天堂亚洲免费视频 | 国产精品久久久久影院嫩草 | 四十如虎的丰满熟妇啪啪 | 一区二区三区高清视频一 | 精品人妻人人做人人爽 | 国产性生交xxxxx无码 | 97色伦图片97综合影院 | 亚洲熟妇自偷自拍另类 | 综合激情五月综合激情五月激情1 | 中国大陆精品视频xxxx | 天堂久久天堂av色综合 | 色五月丁香五月综合五月 | 国产无遮挡又黄又爽免费视频 | 亚洲色欲久久久综合网东京热 | 丰满护士巨好爽好大乳 | 午夜精品一区二区三区在线观看 | 亚洲欧美色中文字幕在线 | 久久人人爽人人人人片 | 午夜肉伦伦影院 | 欧美人与物videos另类 | 97夜夜澡人人双人人人喊 | 久久精品国产一区二区三区肥胖 | 捆绑白丝粉色jk震动捧喷白浆 | 国产成人无码av在线影院 | 国产午夜无码精品免费看 | 国产va免费精品观看 | 国产精品美女久久久 | 天堂无码人妻精品一区二区三区 | 18禁止看的免费污网站 | 人人超人人超碰超国产 | 日韩人妻无码一区二区三区久久99 | 成人亚洲精品久久久久软件 | 激情爆乳一区二区三区 | 丰满人妻翻云覆雨呻吟视频 | 亚洲人成影院在线无码按摩店 | aa片在线观看视频在线播放 | 精品日本一区二区三区在线观看 | 一本大道久久东京热无码av | 久久国产精品萌白酱免费 | 亚洲性无码av中文字幕 | 欧美 日韩 人妻 高清 中文 | 日本成熟视频免费视频 | 少妇无码av无码专区在线观看 | 精品无码av一区二区三区 | 高清国产亚洲精品自在久久 | 一个人看的www免费视频在线观看 | 无码人妻少妇伦在线电影 | 人妻少妇精品视频专区 | 永久黄网站色视频免费直播 | 亚洲综合无码一区二区三区 | 日韩精品久久久肉伦网站 | 黑人大群体交免费视频 | 国产无遮挡又黄又爽又色 | 国产精品爱久久久久久久 | 国产精品怡红院永久免费 | 亚洲乱码国产乱码精品精 | 人妻少妇精品无码专区动漫 | www成人国产高清内射 | 麻豆精品国产精华精华液好用吗 | 高清国产亚洲精品自在久久 | 亚洲爆乳无码专区 | 成人精品视频一区二区三区尤物 | 日本大香伊一区二区三区 | 麻豆人妻少妇精品无码专区 | 亚洲精品午夜国产va久久成人 | 国产精品久久久久7777 | av小次郎收藏 | 漂亮人妻洗澡被公强 日日躁 | 久久精品中文字幕大胸 | 人妻少妇被猛烈进入中文字幕 | 中文字幕av无码一区二区三区电影 | 亚洲精品美女久久久久久久 | 亚洲呦女专区 | 熟妇激情内射com | 噜噜噜亚洲色成人网站 | 国产午夜亚洲精品不卡 | 亚洲精品久久久久久一区二区 | 麻豆果冻传媒2021精品传媒一区下载 | 国产成人精品必看 | 丰满人妻被黑人猛烈进入 | 人人爽人人爽人人片av亚洲 | 高清国产亚洲精品自在久久 | 色欲av亚洲一区无码少妇 | www一区二区www免费 | 欧美人与善在线com | 亚洲国产成人av在线观看 | 无码免费一区二区三区 | 在线看片无码永久免费视频 | 九九在线中文字幕无码 | 亚洲综合精品香蕉久久网 | 人妻体内射精一区二区三四 | 秋霞成人午夜鲁丝一区二区三区 | 欧美日本免费一区二区三区 | 国产午夜无码精品免费看 | 欧美成人家庭影院 | 红桃av一区二区三区在线无码av | 老熟女乱子伦 | 18禁黄网站男男禁片免费观看 | 人人妻人人澡人人爽欧美一区九九 | 久久久久免费看成人影片 | 人人妻人人澡人人爽欧美一区 | 亚洲成a人片在线观看无码3d | 久久99精品久久久久久 | 曰韩无码二三区中文字幕 | 一本色道久久综合狠狠躁 | 最新版天堂资源中文官网 | 欧美日韩人成综合在线播放 | 久久精品一区二区三区四区 | 国产9 9在线 | 中文 | 欧美国产日韩久久mv | 成人影院yy111111在线观看 | 成人无码视频在线观看网站 | 精品国精品国产自在久国产87 | 狠狠躁日日躁夜夜躁2020 | 国产成人无码午夜视频在线观看 | 色窝窝无码一区二区三区色欲 | 国产极品视觉盛宴 | 久久人妻内射无码一区三区 | а√资源新版在线天堂 | 久久精品国产一区二区三区 | 亚洲欧美日韩综合久久久 | 亚洲精品国产品国语在线观看 | 免费国产成人高清在线观看网站 | 精品国产乱码久久久久乱码 | 女高中生第一次破苞av | 国产黄在线观看免费观看不卡 | 亚洲欧美综合区丁香五月小说 | 亚洲精品国偷拍自产在线麻豆 | 精品乱子伦一区二区三区 | 水蜜桃亚洲一二三四在线 | 大色综合色综合网站 | 精品久久久久久人妻无码中文字幕 | 久久久婷婷五月亚洲97号色 | 日本精品人妻无码免费大全 | 99视频精品全部免费免费观看 | 国内精品人妻无码久久久影院 | 亚洲综合另类小说色区 | 欧美野外疯狂做受xxxx高潮 | 久久人妻内射无码一区三区 | 久久久精品国产sm最大网站 | 欧美 丝袜 自拍 制服 另类 | 久久精品国产日本波多野结衣 | 思思久久99热只有频精品66 | 亚洲熟女一区二区三区 | 久久久精品成人免费观看 | 内射老妇bbwx0c0ck | 久久精品女人的天堂av | 女人色极品影院 | 亚洲人成影院在线观看 | 午夜精品久久久内射近拍高清 | 丰腴饱满的极品熟妇 | 亚洲欧美精品伊人久久 | 亚洲男人av天堂午夜在 | 国产猛烈高潮尖叫视频免费 | 小鲜肉自慰网站xnxx | 曰本女人与公拘交酡免费视频 | 亚洲性无码av中文字幕 | 国产精品怡红院永久免费 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 少妇人妻av毛片在线看 | 久久久久免费看成人影片 | 亚洲熟悉妇女xxx妇女av | 无码成人精品区在线观看 | 亚洲精品美女久久久久久久 | 无码人妻丰满熟妇区五十路百度 | 色综合久久88色综合天天 | 性做久久久久久久久 | 亚洲人成影院在线无码按摩店 | 日本护士xxxxhd少妇 | 国产手机在线αⅴ片无码观看 | 久久久无码中文字幕久... | 少妇人妻偷人精品无码视频 | 免费人成网站视频在线观看 | 色妞www精品免费视频 | 国产乱人无码伦av在线a | 樱花草在线播放免费中文 | 1000部啪啪未满十八勿入下载 | 丰满肥臀大屁股熟妇激情视频 | 久久久中文字幕日本无吗 | 久久久久久九九精品久 | 亚洲自偷自拍另类第1页 | 免费观看又污又黄的网站 | 欧美性生交活xxxxxdddd | 久久久婷婷五月亚洲97号色 | 性史性农村dvd毛片 | a国产一区二区免费入口 | 亚洲精品一区国产 | 亚洲色www成人永久网址 | 亚洲中文字幕成人无码 | 人妻少妇精品视频专区 | 国产一区二区三区四区五区加勒比 | 黑人粗大猛烈进出高潮视频 | 夫妻免费无码v看片 | 一二三四在线观看免费视频 | 天天躁日日躁狠狠躁免费麻豆 | 在线精品亚洲一区二区 | 色窝窝无码一区二区三区色欲 | 97色伦图片97综合影院 | 日本va欧美va欧美va精品 | 无码任你躁久久久久久久 | 久久精品国产一区二区三区 | 久久精品国产大片免费观看 | 少妇性l交大片欧洲热妇乱xxx | 国产精品久久久午夜夜伦鲁鲁 | 久久婷婷五月综合色国产香蕉 | 最近中文2019字幕第二页 | 天天摸天天透天天添 | 久久 国产 尿 小便 嘘嘘 | 精品成在人线av无码免费看 | 一区二区传媒有限公司 | 黑人巨大精品欧美一区二区 | 国产在线一区二区三区四区五区 | 鲁大师影院在线观看 | 1000部啪啪未满十八勿入下载 | 无码人妻出轨黑人中文字幕 | 俺去俺来也在线www色官网 | 婷婷综合久久中文字幕蜜桃三电影 | 色综合久久中文娱乐网 | 亚洲人成网站色7799 | 国产精品-区区久久久狼 | 色婷婷综合激情综在线播放 | 久久精品中文闷骚内射 | 亚洲一区二区三区含羞草 | 麻豆av传媒蜜桃天美传媒 | 亚洲熟妇自偷自拍另类 | 亚洲 激情 小说 另类 欧美 | 爽爽影院免费观看 | 纯爱无遮挡h肉动漫在线播放 | 国产性生大片免费观看性 | 乱码午夜-极国产极内射 | 四虎国产精品一区二区 | 男人的天堂av网站 | 日本大乳高潮视频在线观看 | 欧美精品免费观看二区 | 欧美人与禽猛交狂配 | 国产免费无码一区二区视频 | 国产精品亚洲五月天高清 | 人人爽人人爽人人片av亚洲 | 亚洲国精产品一二二线 | 亚洲日本va中文字幕 | 日本乱人伦片中文三区 | 女人被男人躁得好爽免费视频 | 国产欧美熟妇另类久久久 | 亚洲国产精品无码久久久久高潮 | 一本久久a久久精品vr综合 | 亚洲精品国偷拍自产在线观看蜜桃 | 熟妇人妻中文av无码 | 一本色道久久综合狠狠躁 | 成人毛片一区二区 | 波多野结衣av在线观看 | 亚洲色成人中文字幕网站 | 国产精品久久久av久久久 | 欧美老人巨大xxxx做受 | 午夜无码人妻av大片色欲 | 久久人人爽人人人人片 | 日韩人妻系列无码专区 | 亚洲啪av永久无码精品放毛片 | 亚洲国产精品一区二区第一页 | 国产人妻精品一区二区三区不卡 | 成人影院yy111111在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 国产精品对白交换视频 | 久久久久免费精品国产 | 天天摸天天碰天天添 | 久久国产精品偷任你爽任你 | 99在线 | 亚洲 | 亚洲国产精品无码一区二区三区 | 国产精品久久精品三级 | 午夜熟女插插xx免费视频 | 精品午夜福利在线观看 | 性生交大片免费看女人按摩摩 | 鲁鲁鲁爽爽爽在线视频观看 | 无套内谢老熟女 | 久久久久久国产精品无码下载 | 麻花豆传媒剧国产免费mv在线 | 国产超级va在线观看视频 | 国产偷抇久久精品a片69 | 午夜精品久久久久久久久 | 2020最新国产自产精品 | 免费无码午夜福利片69 | 一本色道久久综合亚洲精品不卡 | 精品一区二区三区无码免费视频 | 欧美成人午夜精品久久久 | 欧美xxxx黑人又粗又长 | 亚洲中文字幕成人无码 | www一区二区www免费 | 理论片87福利理论电影 | 日本精品少妇一区二区三区 | 精品久久综合1区2区3区激情 | 久久久精品国产sm最大网站 | 亚洲伊人久久精品影院 | 99视频精品全部免费免费观看 | 三上悠亚人妻中文字幕在线 | 中文字幕人妻无码一区二区三区 | 久久天天躁夜夜躁狠狠 | 狠狠亚洲超碰狼人久久 | 久久精品一区二区三区四区 | 亚洲精品久久久久avwww潮水 | 日本熟妇人妻xxxxx人hd | 装睡被陌生人摸出水好爽 | 东北女人啪啪对白 | 宝宝好涨水快流出来免费视频 | 樱花草在线社区www | 奇米影视7777久久精品 | 一本加勒比波多野结衣 | 午夜熟女插插xx免费视频 | 亚洲大尺度无码无码专区 | 亚洲成a人片在线观看无码 | 又粗又大又硬毛片免费看 | 国产办公室秘书无码精品99 | 国产精品欧美成人 | 日欧一片内射va在线影院 | 性生交大片免费看女人按摩摩 | 国产性生交xxxxx无码 | 国内精品九九久久久精品 | 少妇一晚三次一区二区三区 | 玩弄少妇高潮ⅹxxxyw | 丰满岳乱妇在线观看中字无码 | 日韩亚洲欧美中文高清在线 | 国产精品沙发午睡系列 | 欧美变态另类xxxx | 免费观看又污又黄的网站 | 大地资源网第二页免费观看 | 亚洲国产精品无码久久久久高潮 | 国产精品成人av在线观看 | 日本www一道久久久免费榴莲 | 男人和女人高潮免费网站 | 久激情内射婷内射蜜桃人妖 | 性开放的女人aaa片 | 精品久久久久久人妻无码中文字幕 | 亚洲精品国产精品乱码视色 | 成 人 免费观看网站 | 在线观看免费人成视频 | 亚洲成av人综合在线观看 | 激情内射亚州一区二区三区爱妻 | 亚洲欧美中文字幕5发布 | 狠狠色丁香久久婷婷综合五月 | 无码精品人妻一区二区三区av | 欧美成人家庭影院 | 亚洲精品中文字幕 | 在线成人www免费观看视频 | 免费观看的无遮挡av | 欧美人与禽zoz0性伦交 | 国产内射爽爽大片视频社区在线 | 人妻夜夜爽天天爽三区 | 日日摸日日碰夜夜爽av | 夜精品a片一区二区三区无码白浆 | 黑森林福利视频导航 | 亚洲日韩av片在线观看 | 一二三四社区在线中文视频 | 中文字幕乱妇无码av在线 | 夜夜躁日日躁狠狠久久av | 99久久精品日本一区二区免费 | 捆绑白丝粉色jk震动捧喷白浆 | 国产女主播喷水视频在线观看 | 国产网红无码精品视频 | aⅴ在线视频男人的天堂 | 内射爽无广熟女亚洲 | 国产又粗又硬又大爽黄老大爷视 | 日日摸夜夜摸狠狠摸婷婷 | 又粗又大又硬毛片免费看 | 中文字幕无码日韩专区 | 精品一区二区三区无码免费视频 | 人妻体内射精一区二区三四 | 亚洲无人区一区二区三区 | 久久亚洲中文字幕无码 | 精品国产成人一区二区三区 | 国产色视频一区二区三区 | 精品无码一区二区三区的天堂 | 国产午夜无码视频在线观看 | 亚洲精品午夜无码电影网 | 人妻天天爽夜夜爽一区二区 | 欧美乱妇无乱码大黄a片 | 久久久久亚洲精品中文字幕 | 老子影院午夜精品无码 | 国产成人精品视频ⅴa片软件竹菊 | 夜夜躁日日躁狠狠久久av | 扒开双腿疯狂进出爽爽爽视频 | 狠狠色色综合网站 | 亚洲欧洲中文日韩av乱码 | 国产后入清纯学生妹 | 波多野结衣一区二区三区av免费 | 午夜福利电影 | 国产成人无码a区在线观看视频app | 熟妇女人妻丰满少妇中文字幕 | 欧美国产日产一区二区 | 又色又爽又黄的美女裸体网站 | 国产农村乱对白刺激视频 | 欧美人与物videos另类 | 亚洲国产成人av在线观看 | 中文字幕无码乱人伦 | 无码国产乱人伦偷精品视频 | 巨爆乳无码视频在线观看 | www国产亚洲精品久久网站 | 国产va免费精品观看 | 国产无遮挡又黄又爽又色 | 无码人妻丰满熟妇区五十路百度 | 亚洲国产日韩a在线播放 | 国产成人无码a区在线观看视频app | 国精产品一区二区三区 | 国产精品-区区久久久狼 | 亚洲精品一区二区三区在线 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲爆乳精品无码一区二区三区 | 奇米影视888欧美在线观看 | 老熟妇仑乱视频一区二区 | 国产又粗又硬又大爽黄老大爷视 | 亚洲国产高清在线观看视频 | 日本大乳高潮视频在线观看 | 国产国产精品人在线视 | 国产精品美女久久久久av爽李琼 | 久久久久国色av免费观看性色 | 欧洲熟妇色 欧美 | 理论片87福利理论电影 | 亚洲人成无码网www | 日日摸夜夜摸狠狠摸婷婷 | 亚洲欧美中文字幕5发布 | 国产精品人人妻人人爽 | а√资源新版在线天堂 | 国产成人无码a区在线观看视频app | 免费人成在线视频无码 | 欧美性生交xxxxx久久久 | 国产精品爱久久久久久久 | 国产成人无码专区 | 2020久久超碰国产精品最新 | 野外少妇愉情中文字幕 | 国产综合在线观看 | 老头边吃奶边弄进去呻吟 | 午夜肉伦伦影院 | 亚洲а∨天堂久久精品2021 | 国产在线无码精品电影网 | 无码国模国产在线观看 | 亚洲一区av无码专区在线观看 | 一本无码人妻在中文字幕免费 | 久久国内精品自在自线 | 乱人伦人妻中文字幕无码久久网 | 亚洲成a人片在线观看无码3d | 欧美成人高清在线播放 | 一本久久伊人热热精品中文字幕 | 两性色午夜视频免费播放 | 成人免费视频视频在线观看 免费 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 午夜精品一区二区三区在线观看 | 无码纯肉视频在线观看 | 高潮毛片无遮挡高清免费视频 | 波多野结衣乳巨码无在线观看 | 黑人巨大精品欧美黑寡妇 | 捆绑白丝粉色jk震动捧喷白浆 | 色综合久久久无码网中文 | 国产后入清纯学生妹 | 国产精品99久久精品爆乳 | 亚洲乱码日产精品bd | 国产欧美精品一区二区三区 | 日本精品久久久久中文字幕 | 国产黑色丝袜在线播放 | 亚洲色欲色欲欲www在线 | 老司机亚洲精品影院 | 国产内射老熟女aaaa | 日本精品高清一区二区 | 成年美女黄网站色大免费视频 | 中文字幕乱码人妻无码久久 | 老熟妇乱子伦牲交视频 | 成人综合网亚洲伊人 | 国精产品一区二区三区 | 国产成人综合美国十次 | 99久久精品无码一区二区毛片 | 亚洲欧美色中文字幕在线 | 欧美猛少妇色xxxxx | 97精品人妻一区二区三区香蕉 | 丰满少妇高潮惨叫视频 | 中文无码精品a∨在线观看不卡 | 在线亚洲高清揄拍自拍一品区 | 伊在人天堂亚洲香蕉精品区 | 色婷婷欧美在线播放内射 | 亚洲一区二区三区四区 | 国内少妇偷人精品视频免费 | 亚洲中文字幕久久无码 | 精品午夜福利在线观看 | 未满小14洗澡无码视频网站 | 色欲av亚洲一区无码少妇 | 日本一本二本三区免费 | 国产香蕉尹人综合在线观看 | 国产综合在线观看 | 夜精品a片一区二区三区无码白浆 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 久久精品国产大片免费观看 | 免费视频欧美无人区码 | 西西人体www44rt大胆高清 | 亚洲欧美色中文字幕在线 | 国产成人综合在线女婷五月99播放 | 亚洲精品成a人在线观看 | 国产农村乱对白刺激视频 | 2020最新国产自产精品 | 国产色在线 | 国产 | 日日麻批免费40分钟无码 | 久久久久成人片免费观看蜜芽 | 在线视频网站www色 | 日本熟妇乱子伦xxxx | 女人色极品影院 | 无码一区二区三区在线 | 亚洲精品一区国产 | 狠狠色丁香久久婷婷综合五月 | 强辱丰满人妻hd中文字幕 | 国产精品第一国产精品 | 国产精品久久久久久亚洲影视内衣 | 中文字幕色婷婷在线视频 | 88国产精品欧美一区二区三区 | 人人妻人人澡人人爽欧美一区 | 十八禁视频网站在线观看 | 99久久人妻精品免费二区 | 国产精品久久精品三级 | 鲁大师影院在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | аⅴ资源天堂资源库在线 | 中文字幕乱码人妻二区三区 | 欧美午夜特黄aaaaaa片 | 任你躁国产自任一区二区三区 | 中文字幕无码av激情不卡 | 99国产欧美久久久精品 | 色欲久久久天天天综合网精品 | 精品国产一区二区三区四区在线看 | 天堂а√在线中文在线 | 日本熟妇乱子伦xxxx | 国产超级va在线观看视频 | 樱花草在线播放免费中文 | 国产午夜亚洲精品不卡下载 | 大地资源中文第3页 | 亚洲国产av美女网站 | 亚洲国产av精品一区二区蜜芽 | 国产精品对白交换视频 | 香港三级日本三级妇三级 | 国产精品福利视频导航 | 国产精品99久久精品爆乳 | 欧美zoozzooz性欧美 | 亚洲色无码一区二区三区 | 性欧美videos高清精品 | 在线看片无码永久免费视频 | 国产精品无码久久av | 久久久久久国产精品无码下载 | 亚洲毛片av日韩av无码 | 人妻尝试又大又粗久久 | 亚洲乱亚洲乱妇50p | 精品久久久久久亚洲精品 | 成熟女人特级毛片www免费 | 亚洲理论电影在线观看 | 国产乡下妇女做爰 | 男女超爽视频免费播放 | 婷婷五月综合缴情在线视频 | 亚洲小说图区综合在线 | 欧美肥老太牲交大战 | 精品国产精品久久一区免费式 | 欧美黑人乱大交 | 人人妻人人澡人人爽欧美一区九九 | 国产在线一区二区三区四区五区 | 国产人妖乱国产精品人妖 | 国产精品久久久久久久影院 | 亚洲自偷自偷在线制服 | 久久精品国产99久久6动漫 | 中文字幕无线码免费人妻 | 高清国产亚洲精品自在久久 | 国产三级久久久精品麻豆三级 | 免费无码的av片在线观看 | 国产精品.xx视频.xxtv | 国产高清不卡无码视频 | 国产成人无码a区在线观看视频app | 人妻夜夜爽天天爽三区 | 亚洲精品一区二区三区在线 | 人人妻人人澡人人爽欧美精品 | 亚洲欧洲中文日韩av乱码 | 中文字幕亚洲情99在线 | 亚洲日韩精品欧美一区二区 | 欧美日韩一区二区综合 | 欧美日韩一区二区综合 | 成人女人看片免费视频放人 | 精品国精品国产自在久国产87 | 在线а√天堂中文官网 | 55夜色66夜色国产精品视频 | 成人精品视频一区二区三区尤物 | 少妇被粗大的猛进出69影院 | 亚洲另类伦春色综合小说 | 精品少妇爆乳无码av无码专区 | 露脸叫床粗话东北少妇 | 久久国语露脸国产精品电影 | av在线亚洲欧洲日产一区二区 | 欧美日韩亚洲国产精品 | 男女下面进入的视频免费午夜 | 日韩欧美中文字幕公布 | 日日碰狠狠丁香久燥 | 爱做久久久久久 | 学生妹亚洲一区二区 | 对白脏话肉麻粗话av | 国产精品久久久久久久9999 | 国产肉丝袜在线观看 | 色综合视频一区二区三区 | 久久精品国产日本波多野结衣 | 男女作爱免费网站 | 人人超人人超碰超国产 | 国内揄拍国内精品人妻 | 领导边摸边吃奶边做爽在线观看 | 熟女俱乐部五十路六十路av | 亚洲日韩av一区二区三区四区 | 亚洲国产高清在线观看视频 | 亚洲va中文字幕无码久久不卡 | 国产精品资源一区二区 | 亚洲欧美日韩国产精品一区二区 | 中文无码精品a∨在线观看不卡 | 精品偷自拍另类在线观看 | 欧美日本免费一区二区三区 | 国产激情无码一区二区app | 国产乱人伦偷精品视频 | 超碰97人人做人人爱少妇 | 我要看www免费看插插视频 | 全球成人中文在线 | 国精产品一区二区三区 | 色一情一乱一伦一区二区三欧美 | 欧美日韩综合一区二区三区 | 7777奇米四色成人眼影 | 久久亚洲日韩精品一区二区三区 | 在线观看国产一区二区三区 | 欧美变态另类xxxx | 国内少妇偷人精品视频免费 | 人妻互换免费中文字幕 | 狠狠色噜噜狠狠狠狠7777米奇 | 麻豆国产丝袜白领秘书在线观看 | 暴力强奷在线播放无码 | 激情人妻另类人妻伦 | 亚洲欧美综合区丁香五月小说 | 免费人成在线观看网站 | 呦交小u女精品视频 | 人人澡人摸人人添 | 宝宝好涨水快流出来免费视频 | 乱码午夜-极国产极内射 | 亚洲一区二区三区无码久久 | 国产综合在线观看 | 狠狠cao日日穞夜夜穞av | 欧美喷潮久久久xxxxx | 亚洲国产一区二区三区在线观看 | 欧美人妻一区二区三区 | 无码乱肉视频免费大全合集 | 精品久久久久久人妻无码中文字幕 | 欧美真人作爱免费视频 | 樱花草在线社区www | 无码播放一区二区三区 | 国产精品99久久精品爆乳 | 18黄暴禁片在线观看 | 水蜜桃亚洲一二三四在线 | 国产午夜视频在线观看 | 天堂а√在线中文在线 | 亚洲狠狠婷婷综合久久 | 亚洲一区二区三区在线观看网站 | 久久久久免费精品国产 | 漂亮人妻洗澡被公强 日日躁 | 国产精品久久久午夜夜伦鲁鲁 | 精品无人国产偷自产在线 | 成人三级无码视频在线观看 | 天天拍夜夜添久久精品 | 久久久精品人妻久久影视 | 久久无码中文字幕免费影院蜜桃 | 久久无码人妻影院 | 国产精品va在线观看无码 | 国产乱人无码伦av在线a | 4hu四虎永久在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 精品一区二区三区无码免费视频 | 免费网站看v片在线18禁无码 | 国产在线无码精品电影网 | 日日麻批免费40分钟无码 | 天海翼激烈高潮到腰振不止 | 久久久久99精品成人片 | 无码国产色欲xxxxx视频 | 欧美老妇与禽交 | 88国产精品欧美一区二区三区 | 亚洲日本va午夜在线电影 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产av无码专区亚洲a∨毛片 | 狠狠躁日日躁夜夜躁2020 | 精品亚洲韩国一区二区三区 | 中国女人内谢69xxxxxa片 | 国产一区二区三区影院 | 国内精品九九久久久精品 | 伦伦影院午夜理论片 | 日韩精品a片一区二区三区妖精 | 欧美第一黄网免费网站 | 日本熟妇乱子伦xxxx | 久久国产精品_国产精品 | 午夜丰满少妇性开放视频 | 亚洲欧美精品伊人久久 | 搡女人真爽免费视频大全 | 国产乱人伦偷精品视频 | 97无码免费人妻超级碰碰夜夜 | 自拍偷自拍亚洲精品被多人伦好爽 | 成人片黄网站色大片免费观看 | 东京热一精品无码av | 亚洲一区二区三区含羞草 | 国产无遮挡又黄又爽又色 | 欧美乱妇无乱码大黄a片 | 粗大的内捧猛烈进出视频 | 国产两女互慰高潮视频在线观看 | 国产精品美女久久久久av爽李琼 | 免费观看又污又黄的网站 | 日本肉体xxxx裸交 | 亚洲va欧美va天堂v国产综合 | www一区二区www免费 | 无码午夜成人1000部免费视频 | 综合激情五月综合激情五月激情1 | 欧美色就是色 | 国产亚洲精品久久久久久久久动漫 | 精品国产麻豆免费人成网站 | 玩弄中年熟妇正在播放 | 精品乱码久久久久久久 | 野外少妇愉情中文字幕 | 中文字幕 亚洲精品 第1页 | 午夜嘿嘿嘿影院 | 精品无码一区二区三区的天堂 | 野狼第一精品社区 | 久久午夜无码鲁丝片午夜精品 | 丰满肥臀大屁股熟妇激情视频 | 中文字幕无码热在线视频 | 蜜桃无码一区二区三区 | 国产av剧情md精品麻豆 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲理论电影在线观看 | 97无码免费人妻超级碰碰夜夜 | 极品嫩模高潮叫床 | 中文字幕人成乱码熟女app | 麻花豆传媒剧国产免费mv在线 | 亚洲日韩乱码中文无码蜜桃臀网站 | 色欲av亚洲一区无码少妇 | 日韩人妻系列无码专区 | 特级做a爰片毛片免费69 | 国产精品亚洲专区无码不卡 | 成人一区二区免费视频 | 国产熟妇高潮叫床视频播放 | 国产精品第一区揄拍无码 | 性欧美牲交在线视频 | 亚洲人亚洲人成电影网站色 | 国产色视频一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 丰满妇女强制高潮18xxxx | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 啦啦啦www在线观看免费视频 | 99re在线播放 | 国产疯狂伦交大片 | 国产精品沙发午睡系列 | 免费看男女做好爽好硬视频 | 国产又粗又硬又大爽黄老大爷视 | 国精品人妻无码一区二区三区蜜柚 | 国产精品无码一区二区三区不卡 | 日本熟妇人妻xxxxx人hd | 欧美丰满熟妇xxxx | 国产午夜手机精彩视频 | 欧美性色19p | 狠狠cao日日穞夜夜穞av | 亚洲综合伊人久久大杳蕉 | 欧美 日韩 亚洲 在线 | 日本va欧美va欧美va精品 | 亚洲精品无码国产 | 激情国产av做激情国产爱 | 国产极品美女高潮无套在线观看 | 亚洲人成网站免费播放 | 国产精品高潮呻吟av久久4虎 | 国产手机在线αⅴ片无码观看 | 亚洲欧美精品aaaaaa片 | 亚洲精品国产第一综合99久久 | 色狠狠av一区二区三区 | 日韩人妻无码一区二区三区久久99 | 亚洲精品久久久久久一区二区 | 超碰97人人射妻 | 国产午夜福利亚洲第一 | 亚洲中文无码av永久不收费 | 青青久在线视频免费观看 | 亚洲爆乳无码专区 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久精品国产亚洲精品 | 国产精品内射视频免费 | 九九热爱视频精品 | 大肉大捧一进一出好爽视频 | 国产精品亚洲а∨无码播放麻豆 | 亚洲国产精品一区二区第一页 | 999久久久国产精品消防器材 | 99麻豆久久久国产精品免费 | 丝袜 中出 制服 人妻 美腿 | 精品成在人线av无码免费看 | 日日摸天天摸爽爽狠狠97 | 久久天天躁狠狠躁夜夜免费观看 | 在线 国产 欧美 亚洲 天堂 | 精品一二三区久久aaa片 | 国产精品久久精品三级 | 日日碰狠狠丁香久燥 | 51国偷自产一区二区三区 | 国产激情艳情在线看视频 | 99精品视频在线观看免费 | 装睡被陌生人摸出水好爽 | 成熟妇人a片免费看网站 | 国产内射爽爽大片视频社区在线 | 全黄性性激高免费视频 | 日本一区二区更新不卡 | 精品人妻人人做人人爽 | 成人精品视频一区二区三区尤物 | 国产成人无码一二三区视频 | 国产舌乚八伦偷品w中 | 97夜夜澡人人双人人人喊 | 国产无遮挡吃胸膜奶免费看 | 内射后入在线观看一区 | 午夜无码人妻av大片色欲 | 国产精品久久久久久久影院 | 18禁黄网站男男禁片免费观看 | 又大又硬又爽免费视频 | 日韩精品无码免费一区二区三区 | 欧美 亚洲 国产 另类 | 国产精品久免费的黄网站 | 国产精品久久久久久亚洲毛片 | 亚洲欧洲中文日韩av乱码 | 国产精品久久久久久亚洲影视内衣 | 九九在线中文字幕无码 | 又大又硬又爽免费视频 | 久久亚洲中文字幕无码 | 熟妇人妻中文av无码 | 人人妻人人澡人人爽精品欧美 | 国产一区二区三区精品视频 | 国产美女精品一区二区三区 | 毛片内射-百度 | 久久99精品久久久久久动态图 | 国产手机在线αⅴ片无码观看 | 国产超碰人人爽人人做人人添 | 亚洲国产精品美女久久久久 | 日韩精品乱码av一区二区 | 日韩少妇内射免费播放 | 76少妇精品导航 | 免费视频欧美无人区码 | 日韩 欧美 动漫 国产 制服 | 亚洲成熟女人毛毛耸耸多 | 给我免费的视频在线观看 | 精品日本一区二区三区在线观看 | 人妻无码αv中文字幕久久琪琪布 | 亚洲精品国产第一综合99久久 | 国产av久久久久精东av | 又大又紧又粉嫩18p少妇 | 国产精品.xx视频.xxtv | 性生交大片免费看女人按摩摩 | 亚洲无人区一区二区三区 | 亚洲国精产品一二二线 | 性欧美牲交在线视频 | 欧美成人午夜精品久久久 | 在线亚洲高清揄拍自拍一品区 | 色一情一乱一伦一区二区三欧美 | 四虎国产精品一区二区 | 欧美丰满熟妇xxxx性ppx人交 | 1000部啪啪未满十八勿入下载 | 国产在线aaa片一区二区99 | 国产亚av手机在线观看 | 性生交片免费无码看人 | 极品尤物被啪到呻吟喷水 | 欧美猛少妇色xxxxx | 少妇无码一区二区二三区 | 欧美喷潮久久久xxxxx | 久久久无码中文字幕久... | 国产精品嫩草久久久久 | 久9re热视频这里只有精品 | 亚洲s色大片在线观看 | 国产亚av手机在线观看 | 麻豆国产丝袜白领秘书在线观看 | 亚洲男人av香蕉爽爽爽爽 | 大胆欧美熟妇xx | 亚洲精品中文字幕乱码 | 久久精品人妻少妇一区二区三区 | 亚洲欧洲日本无在线码 | 中文亚洲成a人片在线观看 | 日本免费一区二区三区最新 | 欧美人与牲动交xxxx | 精品国产aⅴ无码一区二区 | 一个人看的www免费视频在线观看 | 99久久精品日本一区二区免费 | 漂亮人妻洗澡被公强 日日躁 | 色婷婷久久一区二区三区麻豆 | 亚洲成av人影院在线观看 | 日本饥渴人妻欲求不满 | 午夜无码区在线观看 | 国产成人无码av片在线观看不卡 | 国产成人亚洲综合无码 | 无码中文字幕色专区 | 老子影院午夜伦不卡 | 99久久亚洲精品无码毛片 | 未满成年国产在线观看 | 亚洲精品一区二区三区在线 | 国产另类ts人妖一区二区 | 麻豆果冻传媒2021精品传媒一区下载 | 九九在线中文字幕无码 | 中文无码伦av中文字幕 | 樱花草在线播放免费中文 | a在线观看免费网站大全 | 色婷婷欧美在线播放内射 | 人人爽人人爽人人片av亚洲 | 熟妇女人妻丰满少妇中文字幕 | 一区二区三区乱码在线 | 欧洲 | 曰韩无码二三区中文字幕 | 亚洲综合伊人久久大杳蕉 | 无码精品人妻一区二区三区av | 亚洲国产一区二区三区在线观看 | 波多野结衣一区二区三区av免费 | 丝袜 中出 制服 人妻 美腿 | 99久久精品无码一区二区毛片 | 麻豆精品国产精华精华液好用吗 | 精品久久久久久亚洲精品 | 十八禁真人啪啪免费网站 | 亚洲区小说区激情区图片区 | 欧美日韩久久久精品a片 | 日韩精品无码一本二本三本色 | 亚洲自偷自拍另类第1页 | 亚洲 a v无 码免 费 成 人 a v | 日本大乳高潮视频在线观看 | 77777熟女视频在线观看 а天堂中文在线官网 | 成年美女黄网站色大免费全看 | 亚洲精品中文字幕久久久久 | 奇米影视7777久久精品人人爽 | 亚无码乱人伦一区二区 | 一区二区三区乱码在线 | 欧洲 | 精品一区二区不卡无码av | 中文字幕人妻无码一夲道 | 在线精品亚洲一区二区 | 午夜精品久久久久久久 | 亚洲国产精华液网站w | 成人影院yy111111在线观看 | 97久久超碰中文字幕 | 亚洲爆乳精品无码一区二区三区 | 久久亚洲中文字幕精品一区 | 撕开奶罩揉吮奶头视频 | 全黄性性激高免费视频 | 国产无遮挡又黄又爽免费视频 | 日韩精品无码免费一区二区三区 | 欧美性色19p | 国产精品久久国产三级国 | 成人欧美一区二区三区 | 曰韩少妇内射免费播放 | 国产一精品一av一免费 | 亚洲大尺度无码无码专区 | 久久精品女人天堂av免费观看 | 国产一区二区三区四区五区加勒比 | 亚洲国产精品成人久久蜜臀 | 日韩av激情在线观看 | 国产熟妇高潮叫床视频播放 | 四虎影视成人永久免费观看视频 | 最新国产麻豆aⅴ精品无码 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 一本色道久久综合狠狠躁 | 国产精品无码永久免费888 | 丰满少妇熟乱xxxxx视频 | 亚洲国产精品久久久天堂 | 亚洲人成网站在线播放942 | 国内揄拍国内精品少妇国语 | 亚洲小说春色综合另类 | 精品国偷自产在线 | 亚洲综合色区中文字幕 | 精品亚洲韩国一区二区三区 | 国产精品a成v人在线播放 | 97久久国产亚洲精品超碰热 | 免费国产成人高清在线观看网站 | 亚洲性无码av中文字幕 | 精品亚洲韩国一区二区三区 | 久久aⅴ免费观看 | 荫蒂被男人添的好舒服爽免费视频 | 国产精品视频免费播放 | 一本无码人妻在中文字幕免费 | 樱花草在线社区www | 在线天堂新版最新版在线8 | 亚洲中文字幕在线观看 | 成人精品视频一区二区三区尤物 | 18精品久久久无码午夜福利 | √天堂中文官网8在线 | 最近免费中文字幕中文高清百度 | 日日摸日日碰夜夜爽av | 免费观看黄网站 | 人人妻人人澡人人爽人人精品 | 亚洲 欧美 激情 小说 另类 | 欧洲精品码一区二区三区免费看 | 日韩av无码一区二区三区不卡 | 亚洲日韩乱码中文无码蜜桃臀网站 | 一本精品99久久精品77 | 成熟女人特级毛片www免费 | 精品国产精品久久一区免费式 | 久久久精品人妻久久影视 | 日日夜夜撸啊撸 | 在线播放亚洲第一字幕 | 免费乱码人妻系列无码专区 | 成人欧美一区二区三区黑人 | 在线成人www免费观看视频 | 欧美 日韩 亚洲 在线 | av小次郎收藏 | 久久久亚洲欧洲日产国码αv | 久久综合久久自在自线精品自 | 国产精品对白交换视频 | 牲欲强的熟妇农村老妇女 | 一个人看的www免费视频在线观看 | 久久综合狠狠综合久久综合88 | 国产精品美女久久久 | 四虎国产精品一区二区 | 亚洲熟女一区二区三区 | 免费无码一区二区三区蜜桃大 | 国产熟妇另类久久久久 | 久久久中文字幕日本无吗 | 精品无码国产自产拍在线观看蜜 | 国产无套内射久久久国产 | 一本精品99久久精品77 | 亚洲色无码一区二区三区 | 曰韩无码二三区中文字幕 | 国产无遮挡吃胸膜奶免费看 | 亚洲 a v无 码免 费 成 人 a v | 国产黄在线观看免费观看不卡 | 国产精品永久免费视频 | 少妇性荡欲午夜性开放视频剧场 | 日本护士毛茸茸高潮 | 欧美日韩一区二区免费视频 | 婷婷丁香五月天综合东京热 | 色婷婷av一区二区三区之红樱桃 | 无码av中文字幕免费放 | 婷婷综合久久中文字幕蜜桃三电影 | 国产精品va在线观看无码 | 亚洲 日韩 欧美 成人 在线观看 | 国产av久久久久精东av | 一个人免费观看的www视频 | 亚洲 日韩 欧美 成人 在线观看 | 成人欧美一区二区三区 | 国产舌乚八伦偷品w中 | 中文字幕无码免费久久99 | 成人aaa片一区国产精品 | 久久无码中文字幕免费影院蜜桃 | 亚洲a无码综合a国产av中文 | 欧美高清在线精品一区 | 欧美丰满少妇xxxx性 | 国产人妻精品一区二区三区不卡 | 精品欧美一区二区三区久久久 | 日本大香伊一区二区三区 | 4hu四虎永久在线观看 | 2020最新国产自产精品 | 青青久在线视频免费观看 | 夜精品a片一区二区三区无码白浆 | 久久这里只有精品视频9 | 少妇被粗大的猛进出69影院 | 国产亚洲美女精品久久久2020 | 少妇激情av一区二区 | 久久精品99久久香蕉国产色戒 | 国产免费久久久久久无码 | 男人的天堂av网站 | 人妻少妇精品无码专区动漫 | 亚洲人成无码网www | 国产片av国语在线观看 | 亚洲成a人片在线观看日本 | 夜先锋av资源网站 | 天天躁日日躁狠狠躁免费麻豆 | 又粗又大又硬毛片免费看 | 日韩亚洲欧美中文高清在线 | 中文字幕乱码亚洲无线三区 | 亚洲精品久久久久中文第一幕 |