精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

機器學習項目中的數據預處理與數據整理之比較

人工智能 機器學習 大數據
本文比較了用于數據準備的幾種方法,它們分別是提取-變換-加載(extract-transform-load,ETL)批處理、流式獲取(streaming ingestion)和數據整理(data wrangling)。同時借助于先進的分析技術和開源框架(如 R 、 Apache Spark 、 KNIME 、 RapidMiner ),討論了各種不同的選擇及其折中。本文還討論了數據準備如何與可視化分析相關聯,以及不同用戶角色(如數據科學家或業務分析人員)應如何共同構建分析模型的最佳實踐。

要點

  • 在常見的機器學習/深度學習項目里,數據準備占去整個分析管道的60%到80%。
  • 市場上有各種用于數據清洗和特征工程的編程語言、框架和工具。它們之間的功能有重疊,也各有權衡。
  • 數據整理是數據預處理的重要擴展。它最適合在可視化分析工具中使用,這能夠避免分析流程被打斷。
  • 可視化分析工具與開源數據科學組件之間,如R、Python、KNIME、RapidMiner互為補充。
  • 避免過多地使用組件能夠加速數據科學項目。因此,在數據準備步驟中利用流式獲取框架或流式分析產品會是一個不錯的選擇。

機器學習和深度學習項目在大多數企業中變得越來越重要。一個完整的項目流程包括數據準備(data preparation)、構建分析模型以及部署至生產環境。該流程是一個洞察-行動-循環(insights-action-loop),此循環能不斷地改進分析模型。Forrester把這個完整的流程和其背后的平臺稱為 洞察平臺 (Insights Platform)。

當你打算使用機器學習或深度學習技術來構建分析模型時,一個重要的任務是集成并通過各種數據源來準備數據集,這些數據源包括比如文件、數據庫、大數據存儲、傳感器或社交網絡等等。此步驟可占整個分析項目的80%。

本文比較了用于數據準備的幾種方法,它們分別是提取-變換-加載(extract-transform-load,ETL)批處理、流式獲取(streaming ingestion)和數據整理(data wrangling)。同時借助于先進的分析技術和開源框架(如 R 、 Apache Spark 、 KNIME 、 RapidMiner ),討論了各種不同的選擇及其折中。本文還討論了數據準備如何與可視化分析相關聯,以及不同用戶角色(如數據科學家或業務分析人員)應如何共同構建分析模型的最佳實踐。

數據準備=數據清洗(Data Cleansing)+特征工程(Feature Engineering)

數據準備是數據科學的核心。它包括數據清洗和特征工程。另外領域知識(domain knowledge)也非常重要,它有助于獲得好的結果。數據準備不能完全自動化,至少在初始階段不能。通常,數據準備占去整個分析管道(流程)的60%到80%。但是,為了使機器學習算法在數據集上獲得最優的精確性,數據準備必不可少。

數據清洗可使數據獲得用于分析的正確形狀(shape)和質量(quality)。它包括了許多 不同的功能 ,例如:

  • 基本功能(選擇、過濾、去重、…)
  • 采樣(平衡(balanced)、分層(stratified)、…)
  • 數據分配(創建訓練+驗證+測試數據集、…)
  • 變換(歸一化、標準化、縮放、pivoting、…)
  • 分箱(Binning)(基于計數、將缺失值作為其自己的組處理、…)
  • 數據替換(剪切(cutting)、分割(splitting)、合并、…))
  • 加權與選擇(屬性加權、自動優化、…)
  • 屬性生成(ID生成、…)
  • 數據填補(imputation)(使用統計算法替換缺失的觀察值)

特征工程會為分析選取正確的屬性。我們需要借助數據的領域知識來選取或創建屬性,這些屬性能使機器學習算法正確地工作。特征工程過程包括:

  • 頭腦風暴或特征測試
  • 特征選擇
  • 驗證這些特征如何與模型配合使用
  • 如果需要,改進特征
  • 回到頭腦風暴/創建更多的特征,直到工作完成

請注意,特征工程已是建模(構建分析模型)步驟里的一部分,但它也利用數據準備這一功能(例如提取字符串的某些部分)。

數據清洗和特征工程是數據準備的一部分,也是機器學習和深度學習應用的基礎。這二者并不是那么容易,都需要花費功夫。

數據準備會出現在分析項目的不同階段:

  • 數據預處理:從數據源獲取數據之后直接處理數據。通常由開發人員或數據科學家實現,它包括初始轉換、聚合(aggregation)和數據清洗。此步驟在數據的交互式分析開始之前完成。它只執行一次。
  • 數據整理:在交互式數據分析和建模期間準備數據。通常由數據科學家或業務分析師完成,以便更改數據集和特征工程的視圖。此步驟會迭代更改數據集的形狀,直到它能很好地查找洞察或構建良好的分析模型。

不可或缺的數據預處理和數據整理

讓我們看一看典型的用于模型構建的分析流程:

  1. 數據訪問
  2. 數據預處理
  3. 探索性數據分析(Exploratory Data Analysis)(EDA)
  4. 模型構建
  5. 模型驗證
  6. 模型執行
  7. 部署

步驟2的重點是在構建分析模型之前進行的數據預處理,而數據整理則用于步驟3和步驟4(在分析數據和構建模型時,數據整理允許交互式調整數據集)。注意,這三個步驟(2、3、4)都可以包括數據清洗和特征工程。

以下截圖是“數據準備”、“數據預處理”和“數據整理”這幾個術語的Google搜索趨勢??梢钥闯?,數據整理受到了越來越多的關注:

 

機器學習項目中的數據預處理與數據整理之比較

圖1:“數據準備”、“數據預處理”和“數據整理”的Google搜索趨勢

 

“inline數據整理”(inline data wrangling)是“數據整理”的一種特殊形式。在inline數據整理里,你可以利用可視化分析工具。這些工具不僅能用于可視化和模型構建,而且還能用于直接交互式整理。inline數據整理有巨大的優勢,如下圖所示:

 

機器學習項目中的數據預處理與數據整理之比較

圖2:解耦數據預處理(decoupled data preprocessing)與inline數據整理的比較

 

分析管道中的數據預處理和數據整理步驟通常由不同類型的用戶完成。以下是參與分析項目的各種用戶角色:

  • 業務分析師:具有特定領域知識的商業/行業專家
  • 數據科學家:數學、統計與編程(數據科學/腳本編寫)專家;能夠編寫底層代碼或使用更上層的工具
  • 平民數據科學家(Citizen Data Scientist):類似于數據科學家,但處于更上層;需要使用更上層的工具而非編寫代碼;取決于工具的易用性,相關工作甚至可以由業務分析師來完成
  • 開發者:軟件開發專家(企業應用程序)

這些用戶必須密切合作,以便在數據科學項目中取得成功(另見“ 如何避免分析中的反模式:機器學習的三個要點 ”,這篇文章能幫你更好地了解這些用戶角色)。

雖然本文重點是介紹數據準備,但 一圖勝千言 ,并且人類只能解釋直觀可見的東西而非那些復雜的非結構化數據集,因此了解數據準備與可視化分析的關系也非常重要。有關更多細節,請參閱文章 為什么應該使用可視化分析來做出更好的決策 。目前主要的可視化分析工具有 Qlik 、 Tableau 和 TIBCO Spotfire 。

那么可視化分析是如何與數據整理相關聯的呢? RITO研究公司的首席分析師 說,“讓分析師停下他們手里正在進行的工作,而去切換到另一個工具是令人發狂的。這破壞了他們的工作流程。 他們不得不返回重拾思路,重新開始。這嚴重影響了他們的生產力和創造力”。

Kaggle的Titanic數據集

以下章節給出了數據準備的幾種備選方案。我們將用非常著名的 Titanic數據集 (來自于Kaggle)來演示一些實用的例子。Titanic數據集被分為訓練集和測試集,它將用于構建分析模型,這些模型用來預測哪個乘客可能會存活或死亡:

 

機器學習項目中的數據預處理與數據整理之比較

圖3:Kaggle Titanic數據集的元數據

 

 

機器學習項目中的數據預處理與數據整理之比較

圖4:Kaggle Titanic數據集的數據行示例

 

原始數據集不能直接用于構建分析模型。它含有重復、缺失值以及包含各種不同信息的單元格。因此,在應用機器學習算法時,需要先將原始數據集處理好,以便獲得最佳結果。以下是一些數據清洗和特征工程的例子:

  • 通過特征提取(feature extraction)創建新列:獲取每位乘客的姓名前綴,從而推斷出其性別,例如,先生、夫人、小姐、大師
  • 通過聚合創建新列,以查看每位乘客的旅行團中有多少人:“家庭大小= 1 + SibSp + Parch”
  • 通過提取第一個字符來創建新列,以便排序和分析艙室:提取“艙室”列的第一個字符
  • 刪除數據集中的重復項,例如,乘客既在訓練集中又在測試集中
  • 通過填補將數據添加到空單元格,以便能夠處理數據缺失的行,例如,年齡:將“不可用”替換為所有乘客的平均年齡或將其離散到對應的箱(bin)中;艙室:用“U”(未知)替換空值;或應用高級填補方法,例如, 通過鏈式方程的多重填補 (multiple imputation by chained equations)(MICE)
  • 利用數據科學功能,例如,縮放、歸一化、 主成分分析 (PCA)或 Box-Cox ,使所有數據處于“相似形狀”,以便能夠進行合理的分析

以下章節闡述了各種編程語言、框架和數據準備工具。請注意,沒有哪種方案適用于所有問題。此外,這些方案之間也有很多重疊(overlapping)。因此,根據用戶角色和用例,許多問題可以使用不同的方案來解決。

數據科學的數據預處理

一些編程語言是專為數據科學項目而設計,或者是對它有非常好的支持,特別是 R 和 Python。它們包含了機器學習算法的各種實現,諸如過濾或提取的預處理功能,以及諸如縮放、歸一化或混洗(shuffle)的數據科學功能。數據科學家需要編寫相對底層的代碼來進行探索性數據分析與準備。與使用Java或C#的傳統編程相反,使用R或Python進行數據預處理時,你不需要編寫太多的代碼;它更多地是讓你了解統計概念以及算法的數據和經驗,這些數據和經驗可用于數據預處理和模型構建。

這些編程語言是為數據科學家準備數據和構建分析模型而建立,它們并不適用于企業部署(將分析模型部署到具有高規模和高可靠性的新數據中)。因此,市場上提供了商業的enterprise runtime幫助你實現企業部署。通常,它們支持相同的源代碼,因此你不需要為企業部署重寫任何東西。對于R,你可以使用開源的 Microsoft R Open (之前的 Revolution R ),或 TIBCO Enterprise Runtime for R 。后者具有不受GPL開源許可證限制的優勢,因此你可以使用在任何嵌入式或外部環境里。

下面的代碼 摘錄于一個不錯的R教程 ,它演示了如何使用基本的R語言來預處理和分析Titanic數據集:

 

  1. ### 使用基本的R語言進行數據預處理:  
  2. # 存活是“是/否” 
  3. # =>類型轉換:沒有numeric值和對應的數據處理/分析 
  4. data.combined$Survived <- as.factor(data.combined$Survived)  
  5. # 從全稱里解析出姓和頭銜 
  6. data.combined[1:25, "Name"
  7. name.splits <- str_split(data.combined$Name","
  8. name.splits[1] 
  9. last.names <- sapply(name.splits, "[", 1) 
  10. last.names[1:10]  
  11. # 特征工程:創建家庭大小特征 
  12. #(兄弟姐妹/配偶+父母/孩子+1) 
  13. temp.SibSp <- c(train$SibSp, test$SibSp) 
  14. temp.Parch <- c(train$Parch, test$Parch) 
  15. data.combined$FamilySize <- as.factor(temp.SibSp + temp.Parch + 1) 

除了對預處理的基本支持外,這些編程語言還提供了許多額外的數據科學軟件包。例如,許多數據科學家利用 R中 非常強大的 caret包 來簡化數據準備和減少代碼量。該軟件包簡化了復雜回歸和分類問題的模型準備與訓練過程。它為數百個現有的R模型實現(在底層使用了各種各樣的API)提供了一個通用接口。以下代碼段使用了caret的通用API對Titanic數據集進行預處理:

 

  1. ### 使用R caret包進行數據預處理:  
  2. # 利用caret的preProcess函數對數據做歸一化 
  3. preproc.data.combined <- data.combined[, c("ticket.party.size""avg.fare")] 
  4. preProc <- preProcess(preproc.data.combined, method = c("center""scale"))  
  5. # ->你看到的是相對值而非絕對值(即彼此之間的關系): 
  6. postproc.data.combined <- predict(preProc, preproc.data.combined) 

另一個用于數據預處理的R包是 dplyr 包。它不像caret包那樣強大,并且只專注于操作、清洗和匯總(summarize)非結構化數據。 Dplyr旨在為數據操作的 每個基本動作都提供一個函數 :

  • filter()(和slice())
  • arrange()
  • select()(和rename())
  • distinct()
  • mutate()(和transmute())
  • summarise()
  • sample_n (和sample_frac())

因此,學習和理解許多數據操作任務變得容易。對于 data.table 包也是這樣。正如你所見的,在R語言里你有許多方法來預處理數據集。

數據科學家或開發者的大數據集預處理

諸如R或Python這樣的編程語言可用于處理小數據集。但是,它們并不是為處理真正的大數據集而創建;與此同時,我們經常需要分析幾個GB、TB甚至PB級別的數據。類似于 Apache Hadoop 或 Apache Spark 的大數據框架則是為處于邊緣的(即數據所在位置)彈性擴展(elastic scalability)和數據預處理而創建。

這些大數據框架側重于“底層”編碼,并且配置起來比R或Python環境要復雜得多。商業軟件,如 Hortonworks 、 Cloudera 、 MapR 或 Databricks 可以幫助解決此問題。通常,數據科學家與開發人員相互合作來完成大數據項目。后者負責集群配置、部署和監控,而數據科學家則利用R或Python API編寫用于數據預處理和構建分析模型的代碼。

源代碼通??雌饋砼c僅使用R或Python的代碼非常相似,但數據預處理是在整個集群上并行完成的。下面的示例演示了如何使用Spark的Scala API 對Titanic數據集進行預處理和特征工程 :

 

  1. ### 使用Scala和Apache Spark API進行數據預處理:  
  2. # 特征工程:創建家庭大小特征 
  3. # (兄弟姐妹/配偶+父母/孩子+1)  
  4. val familySize: ((IntInt) => Int) = (sibSp: Int, parCh: Int) => sibSp + parCh + 1 
  5. val familySizeUDF = udf(familySize) 
  6. val dfWithFamilySize = df.withColumn("FamilySize", familySizeUDF(col("SibSp"), col("Parch")))  
  7. // 為年齡列填充空值 
  8. val avgAge = trainDF.select("Age").union(testDF.select("Age")) 
  9.     .agg(avg("Age")) 
  10.         .collect() match { 
  11.     case Array(Row(avgDouble)) => avg 
  12.     case _ => 0 

當然,你可以使用Spark的Java或Python API做同樣的事情。

平民數據科學家的數據預處理

通常,你想要敏捷并且快速得到結果。這常常需要在準備和分析數據集時大量地試錯。你可以利用現存的各種快捷易用的數據科學工具。這些工具提供了:

  • 開發環境和運行/執行服務器
  • 使用拖放與代碼生成的可視化“編碼”
  • 集成各種數據科學框架,如R、Python或更強大的(諸如Apache Hadoop、Apache Spark或底層的 H2O.ai )大數據框架

數據科學家可以使用這些工具來加速數據預處理和模型建立。此外,該類工具還幫助解決了數據預處理和機器學習算法的實現,因此沒有太多項目經驗的平民數據科學家也可以使用它們。一些工具甚至能夠提出建議,這些建議有助于用戶預處理、顯示和分析數據集。這些工具在底層人工智能的驅動下變得越來越智能。

下面的例子展示了如何使用兩個開源數據科學工具KNIME和 RapidMiner 來預處理Titanic數據集:

 

機器學習項目中的數據預處理與數據整理之比較

使用KNIME來預處理Titanic數據集

 

 

機器學習項目中的數據預處理與數據整理之比較

使用RapidMiner來預處理Titanic數據集

 

你可以使用可視化IDE來配置預處理,而非如前所述的用R或Scala編寫源代碼。對大多數用戶來說,這使得數據準備和分析變得更容易,并且數據的維護和移交也變得更容易。

業務分析師或平民數據科學家的數據整理

數據整理(有時也稱為data munging)是一種使用圖形工具的數據準備方法,該方法簡單直觀。這些工具側重于易用性和敏捷的數據準備。因此,它不一定由開發人員或數據科學家完成,而是所有的用戶都可以(包括業務分析師或平民數據科學家)。 DataWrangler 和 Trifacta Wrangler 是數據整理的兩個示例。

 

機器學習項目中的數據預處理與數據整理之比較

用于數據整理的Trifacta

 

請注意,這些工具沒有數據預處理框架那么強大,因此它們經常用于數據準備的最后一公里。它們不會替換其它的集成選項,如ETL(提取-變換-加載)工具,或使用R、Python、KNIME、RapidMiner等進行的數據預處理。

如引言中所討論,因為數據整理與實際數據分析相互解耦,所以數據整理自身的工具可能會存在一些不足之處。可視化分析工具中的數據整理允許在數據的探索性分析期間進行inline數據整理。單個的用戶使用單一的工具就能夠完成它。例如,請參閱TIBCO Spotfire示例,它 結合了可視化分析與inline數據整理 (以及其它的數據科學功能來構建分析模型):

 

機器學習項目中的數據預處理與數據整理之比較

可視化分析工具TIBCO Spotfire中的inline數據整理

 

數據整理工具和帶有inline數據整理的可視化分析工具可以被每種用戶角色使用:業務分析師、(平民)數據科學家或開發人員,這些工具能夠加速數據準備和數據分析。

本文重點介紹了用于建立機器學習模型的數據準備。你可以使用編程語言(如R或Python)、數據科學工具(如KNIME或RapidMiner)、數據整理(使用DataWrangler或Trificata)或inline數據整理(通過TIBCO Spotfire)。通常,在開始這一切之前,你需要能夠訪問你擁有的所有數據,這些數據存儲于各種或多或少整理過的數據源中(如關系數據庫、數據倉庫、大數據集群)。因此,在以下兩部分,我們將簡要介紹用于數據獲取(data ingestion)的ETL和流式分析工具,通常數據獲取還包括數據準備的某些部分,特別是數據聚合和數據清洗。

開發者的ETL(提取-變換-加載)和DQ(數據質量,Data Quality)

ETL工具是為開發者集成各種數據源而設計的,它包括了許多遺留和專有(proprietary)接口(如Mainframe或 EDIFACT接口 ),這些接口具有十分復雜的數據結構。它還包括了數據清洗(在上下文中通常被稱為“數據質量”工具),并將重點放在易用性和使用可視化編碼的企業部署上(類似于如KNIME或RapidMiner的數據科學工具,但是專注于ETL和數據質量)。它們還支持大數據框架,如Apache Hadoop和Apache Spark。此外,它們還為質量改進提供了開箱即用(out-of-the-box )的支持,例如,地址驗證。ETL和DQ通常在長時間運行的批處理進程中實現,因此如果你需要使用實時數據構建模型,那么這有時可能會產生負面影響。

ETL和DQ工具的例子是一些開源工具,如 Pentaho 或 Talend ,或專有供應商 Informatica 。市場正在向更簡單易用的Web用戶界面轉移,這些簡單易用的界面能夠讓其他用戶角色也執行一些基本的任務。

開發者的數據獲取與流式分析

數據獲取與流式分析工具可用于在流(stream)中添加和預處理數據。這些框架允許批量地或實時地預處理數據。下圖展示了一個典型的流式分析流程,它包括數據獲取、預處理、分析、處理和輸出:

機器學習項目中的數據預處理與數據整理之比較
流式分析流程的步驟

 

目前市場上有各種各樣的框架和工具。它們都以這種或那種方式支持類似Hadoop或Spark的大數據框架。舉幾個例子:

  • 數據獲取開源框架(僅關注數據獲取和預處理步驟): Apache NiFi 、 StreamSets 、 Cask Hydrator
  • 流式處理開源框架(完整的流式分析流程): Apache Storm 、 Apache Flink 、 Apache Apex
  • 流式處理商業軟件(完整的流式分析流程): Software AG Apama 、 IBM Streams 、 TIBCO StreamBase

有關更多信息,請參閱 流式分析框架、產品和云服務的比較 。

使用這些工具(包括ETL)的巨大優勢是,你可以使用同一套工具或框架(對歷史數據)進行數據預處理,以及(對新數據)進行實時處理(以便在變化的數據里使用分析模型)。這將會是一個不錯的選擇,用戶不僅可以保持小而精的工具集,而且還能通過一套工具同時獲得ETL/獲取和實時處理。下圖是一個使用TIBCO StreamBase對Titanic數據集進行預處理的例子:

機器學習項目中的數據預處理與數據整理之比較
Titanic數據集的流式預處理

 

對于數據獲取和ETL工具,流式分析的市場正在轉向更簡單的Web用戶界面,這些簡單的用戶界面讓其他用戶角色也能執行一些基本的任務。但這不會取代現有的工具在更高級別用例里的使用,而是為分析師或數據科學家提供了新的選擇。在沒有開發人員的幫助下,他們能夠更容易和更直接地部署一些規則、關聯或分析模型。

數據準備是機器學習項目成功的關鍵

使用機器學習或深度學習技術構建分析模型并不容易。數據準備占去整個分析管道的60%到80%。市場上有各種用于數據清洗和特征工程的編程語言、框架和工具。它們之間的功能有重疊,也各有權衡。

數據整理是數據預處理的重要擴展(add-on)。它最適合在可視化分析工具中使用,這能夠避免分析流程被打斷。可視化分析工具與開源數據科學組件(component)之間,如R、Python、KNIME、RapidMiner互為補充。

避免過多地使用組件能夠加速數據科學項目。因此,在數據準備步驟中利用流式獲取框架或流式分析產品會是一個不錯的選擇。我們只需要編寫一次預處理的步驟,然后將其用于歷史數據的批處理中,從而進行分析模型的構建,同時,還可以將其用于實時處理,這樣就能將我們構建的分析模型用到新的事件中。

這些 幻燈片 和 視頻 提供了更多關于數據準備的信息,通過這些資料你能更詳細地了解本文的內容。

責任編輯:未麗燕 來源: 36大數據
相關推薦

2017-05-02 08:40:36

機器學習預處理整理

2016-08-21 14:19:05

數據工具DataXSqoop

2019-11-14 21:21:50

數據挖掘數據處理數據分析

2021-10-18 06:54:47

數據源數據預處理

2020-04-29 16:49:33

機器學習人工智能計算機

2021-12-23 14:09:43

數據結構算法字符串

2018-04-04 10:19:32

深度學習

2022-05-13 09:34:00

Slik-wrang機器學習人工智能

2009-08-12 17:33:25

繼承與擴展方法

2025-03-07 08:00:00

數據數據集集神經網絡數據預處理

2021-03-28 08:57:57

Python 文本數據

2021-05-10 16:41:19

機器學習人工智能IT

2023-12-18 10:36:46

數據處理PandasPython

2017-04-13 13:30:56

SparkSpark MLlib機器學習

2016-11-15 14:08:02

機器學習數據挖掘

2009-02-11 13:38:00

軟件工程師程序員職業

2016-11-15 15:02:00

機器學習算法

2011-11-08 16:32:24

LinuxFreeBSDTCP

2020-06-24 07:53:03

機器學習技術人工智能

2024-02-22 15:45:56

點贊
收藏

51CTO技術棧公眾號

精品久久久一区| 国产麻豆精品久久一二三| 亚洲欧美变态国产另类| 我要看一级黄色大片| 久久黄色美女电影| 成人av在线影院| 国产精品草莓在线免费观看| 女性裸体视频网站| 国产精品2023| 欧美在线视频不卡| 超碰人人爱人人| 你懂的视频在线免费| 精品一区二区免费在线观看| 国a精品视频大全| 日韩不卡av在线| 成人18夜夜网深夜福利网| 欧美日韩亚洲国产一区| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 精品人妻一区二区三区含羞草| 性色一区二区三区| 欧美另类交人妖| 人妻少妇无码精品视频区| 亚洲精品一区国产| 精品污污网站免费看| 精品无码国模私拍视频| 免费大片黄在线观看视频网站| av电影在线观看完整版一区二区| 国产男人精品视频| 色屁屁影院www国产高清麻豆| 久久精品国内一区二区三区水蜜桃| 日韩精品中文字幕视频在线| 日韩av福利在线观看| 97成人超碰| 欧美性xxxxxxxxx| 黄网站色视频免费观看| 秋霞午夜在线观看| 国产午夜精品一区二区三区嫩草| 国产一区二区不卡视频| 国产欧美久久久精品免费| 日韩综合小视频| 91精品国产91久久久久久不卡 | 国产精品视频一区二区三区综合| 色偷偷久久人人79超碰人人澡| 成人在线播放网址| 91麻豆免费在线视频| 国产精品免费丝袜| 色播亚洲婷婷| 韩国三级av在线免费观看| av中文字幕在线不卡| 国产精品久久久久久免费观看| 国产又粗又长又大视频| 麻豆一区二区99久久久久| 日韩免费中文字幕| 免费的毛片视频| 久久精品二区三区| 日韩美女免费线视频| 男人午夜免费视频| 国产亚洲精品v| 4p变态网欧美系列| 色网站在线播放| 99精品国产福利在线观看免费| 欧美第一页在线| 久久99久久98精品免观看软件| 一个色综合网| 欧美精品做受xxx性少妇| 超碰手机在线观看| 国内精品久久久久久久97牛牛 | 久久久久久久久免费看无码 | 亚洲码无人客一区二区三区| 亚洲制服一区| 国产一区二区三区在线视频| av黄色免费网站| 欧美最新另类人妖| 日韩中文字幕视频在线观看| 激情五月激情综合| 欧美一区高清| 97视频在线观看成人| 性无码专区无码| 日日嗨av一区二区三区四区| 国产有码在线一区二区视频| 国产伦理一区二区| 国产成人av一区| 精品欧美日韩在线| 成人在线观看网站| 亚洲摸摸操操av| 欧美乱大交xxxxx潮喷l头像| 九色porny自拍视频在线播放| 色噜噜偷拍精品综合在线| 在线免费观看视频黄| 国产精品日本一区二区三区在线| 精品国产乱码久久久久久免费| av网页在线观看| 欧美色女视频| 久久艳片www.17c.com| 国产在线成人精品午夜| 麻豆精品91| 黄色免费看视频| 日韩理论视频| 欧美日韩成人综合在线一区二区| 色姑娘综合天天| 欧美亚洲大陆| 精品国模在线视频| 日韩精品一区二区三| 欧美a一区二区| 成人欧美一区二区三区视频xxx| 亚洲av成人精品日韩在线播放| 国产欧美精品一区| 欧美久久在线观看| 精品美女一区| 日韩av在线网站| 精品无码一区二区三区蜜臀 | 这里只有精品丝袜| 久久久久久久久精| 免费成人av在线播放| 国产欧美精品一区二区三区| 在线观看免费黄视频| 亚洲成av人片www| 日韩一区二区三区久久| 天堂成人娱乐在线视频免费播放网站 | 国产精品久久久久久69| 91麻豆高清视频| 欧美 亚洲 视频| 懂色aⅴ精品一区二区三区| 亚洲国产精品va在线看黑人动漫| 日本裸体美女视频| 麻豆91精品| 国产偷国产偷亚洲高清97cao| 黄视频网站在线看| 欧洲一区在线观看| 一本色道综合久久欧美日韩精品| 欧美精品麻豆| 91美女片黄在线观| a黄色在线观看| 色婷婷综合久久久中文字幕| 中文字幕在线视频播放| 欧美激情 亚洲a∨综合| 国产一区二区视频在线观看| 国产一区二区三区福利| 一本大道久久精品懂色aⅴ| 无码av免费精品一区二区三区| 五月婷婷六月综合| 国产日韩欧美日韩| 一区二区高清不卡| 欧美亚洲国产一区二区三区va | 国产精品区一区二区三区| 无码aⅴ精品一区二区三区浪潮| 999国产精品一区| 欧美国产乱视频| 国产夫绿帽单男3p精品视频| 亚洲丝袜精品丝袜在线| 国产精品久久久久久久av福利| 日韩精品一区二区久久| 国产日韩av在线播放| 毛片激情在线观看| 51精品国自产在线| 国产色无码精品视频国产| 国产一区二区导航在线播放| 在线观看亚洲视频啊啊啊啊| 亚洲精品777| 久久久国产精品视频| 国产精品欧美激情在线| 亚洲欧美日韩电影| 天天爽夜夜爽视频| 亚洲性色视频| 精品欧美日韩| 精品国产免费人成网站| 国产一区二区av| 在线观看色网站| 亚洲天堂中文字幕| 欧洲成人午夜精品无码区久久| 欧美涩涩视频| 国产欧美日韩伦理| 午夜日韩成人影院| 色悠悠国产精品| 精品国产一级片| 午夜a成v人精品| 性欧美精品男男| 激情丁香综合五月| 欧美乱大交xxxxx潮喷l头像| 一区二区三区日本久久久| 国产精品入口免费视| 91黄色在线| 精品无人国产偷自产在线| 久久久久久无码午夜精品直播| 国产精品乱子久久久久| 欧美午夜精品一区二区| 国产精品亚洲综合色区韩国| 色综合久久av| 视频在线观看免费影院欧美meiju| 韩国三级日本三级少妇99| 韩国福利在线| 日韩一区二区三区四区| 青青草免费观看视频| 国产精品短视频| 国产a级黄色片| 日本91福利区| 男女激情无遮挡| 色欧美自拍视频| 精品无人区一区二区三区| 欧美一区二区三区婷婷| 午夜精品福利视频| 91大神xh98hx在线播放| 亚洲国模精品私拍| 一级特黄色大片| 午夜不卡av在线| www欧美com| 久久久久久久久久久电影| www.久久com| 日韩电影在线观看电影| www.射射射| 91精品啪在线观看国产81旧版| 久久久久久草| 一区二区精彩视频| 国产欧美日韩精品丝袜高跟鞋| 91九色在线播放| 久久综合久中文字幕青草| 黄色在线播放| 亚洲精品美女免费| 精品国精品国产自在久不卡| 欧美日韩专区在线| 91视频在线视频| 午夜精品久久久久久久蜜桃app| 国产精品夜夜夜爽阿娇| 国产亚洲人成网站| 在线观看日韩精品视频| 成人午夜免费电影| 日韩高清在线一区二区| 蜜桃精品视频在线| 日日摸天天爽天天爽视频| 激情欧美日韩| www.国产亚洲| 91精品亚洲| 亚洲资源视频| 久久精品国产99久久| 日韩福利二区| 国产99久久久国产精品成人免费 | 国产精品午夜福利| 欧美日韩黄色影视| 欧美男人天堂网| 色综合久久久久综合99| 日韩欧美三级视频| 亚洲不卡在线观看| 国产精品111| 亚洲国产一区在线观看| 麻豆影视在线播放| 亚洲最新在线观看| 日本中文字幕免费在线观看| 自拍偷拍亚洲欧美日韩| 麻豆一区在线观看| 中文字幕在线观看一区二区| 国产精品酒店视频| 国产精品麻豆一区二区| 99久久精品久久亚洲精品| 中文字幕欧美激情| youjizz亚洲女人| 国产精品国产自产拍高清av | 国产精品网站一区| jizz日本在线播放| 1024成人网色www| 国产suv一区二区三区| 亚洲欧洲日产国产综合网| 国产67194| 亚洲制服欧美中文字幕中文字幕| 欧美日韩综合色| 国产精品久久欧美久久一区| 91麻豆精品91久久久久久清纯 | 136福利第一导航国产在线| 久久久久成人精品| 亚洲优女在线| 国产精品视频网| 精品国产伦一区二区三区观看说明| 95av在线视频| 欧美美女黄色| 热re99久久精品国产99热| 成人免费av| 天天做天天躁天天躁| 亚洲美女啪啪| 少妇性l交大片| 国内精品国产成人| 国产原创剧情av| 国产午夜亚洲精品羞羞网站| 久久国产高清视频| 亚洲福利国产精品| 日韩不卡高清视频| 欧美一区二区三区免费| 四季av日韩精品一区| 亚洲欧洲偷拍精品| 国产黄a三级三级三级av在线看| 久久久久国产视频| 日韩色淫视频| 亚洲在线成人| 成人手机在线播放| 在线欧美福利| 天天干天天干天天干天天干天天干| 久久成人免费网站| 日本黄色录像片| 国产精品久久久久久久久久免费看| 麻豆chinese极品少妇| 91九色02白丝porn| 精品毛片在线观看| 国产亚洲精品美女久久久| 黄色大片在线播放| 91高清视频免费观看| 91精品国产一区二区在线观看| 精品乱码一区二区三区| 久久久久午夜电影| 99蜜桃臀久久久欧美精品网站| 卡一卡二国产精品| 给我看免费高清在线观看| 综合色中文字幕| 69亚洲精品久久久蜜桃小说| 日韩一卡二卡三卡四卡| 二区在线视频| 91黄色8090| 日韩一二三区在线观看| 亚洲欧美久久久久一区二区三区| 日韩午夜av在线| 佐山爱在线视频| 国产精品人妖ts系列视频| 亚洲日本视频在线观看| 日韩欧美一级二级三级久久久| 国产女人在线视频| 4p变态网欧美系列| 国产精品qvod| 97在线免费视频观看| 韩国一区二区视频| 欧日韩不卡视频| 色播五月激情综合网| 天堂在线视频免费| 欧美黄色成人网| 国产麻豆一区二区三区| 亚洲三级一区| 人妖欧美一区二区| 国产美女免费无遮挡| 精品久久香蕉国产线看观看亚洲| 亚洲国产欧美另类| 欧美精品亚州精品| 成人97精品毛片免费看| 亚洲精品免费在线看| 日韩 欧美一区二区三区| 日韩中文字幕电影| 色综合天天综合在线视频| 特黄aaaaaaaaa真人毛片| 欧美黑人狂野猛交老妇| 婷婷综合国产| 久久这里只有精品8| 国产成人一级电影| 九九视频在线观看| 欧美成人一区二区| 久久久123| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 一本一本久久a久久精品牛牛影视| 亚洲天堂资源| 欧美日韩亚洲一区二区三区在线观看| 亚洲资源av| 永久免费看mv网站入口78| 欧美色xxxx| 国产人成在线视频| 国产精品中文久久久久久久| 欧美3p视频| 国产精品探花在线播放| 亚洲一区二区四区蜜桃| 男人天堂手机在线观看| 韩国美女主播一区| 亚洲瘦老头同性70tv| 国产嫩草在线观看| 国产精品久久久久永久免费观看| 在线观看国产小视频| 欧美成人四级hd版| 国产福利一区二区精品秒拍| 欧美网站免费观看| 国产日韩欧美制服另类| 在线免费看av的网站| 不卡伊人av在线播放| 白白在线精品| 日韩精品xxxx| 欧美国产乱子伦| av一区二区三| 2019av中文字幕| 成人影院在线| 手机看片国产精品| 欧美日韩在线影院| 午夜视频在线观看网站| 99视频免费观看| 欧美亚洲网站| 男人的午夜天堂| 亚洲精品mp4| 久久久久黄色| xxxx18hd亚洲hd捆绑| 国产日韩欧美激情| 国产又色又爽又黄又免费| 久久久爽爽爽美女图片| 精品午夜久久| 国产乱国产乱老熟300部视频| 色综合色综合色综合 | 国产69精品久久久久9| 国内精品久久久久久99蜜桃| 亚洲av毛片在线观看| 日韩欧美福利视频| 粗大黑人巨茎大战欧美成人|