精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品一区在线播放| 国产精品一区二区小说| 国产免费裸体视频| 亚洲综合久久网| 亚洲一区电影| 久久精品国产精品青草| 亚洲精品福利在线| 亚洲五码在线观看视频| 中文字幕a级片| 天堂在线精品| 亚洲大片精品永久免费| 国产一区欧美二区三区| 美女洗澡无遮挡| 老司机深夜福利在线观看| 激情六月婷婷综合| 日韩在线播放一区| 亚洲欧美自偷自拍另类| 日本在线观看高清完整版| 精品日韩免费| 色综合久久99| 久久狠狠久久综合桃花| 久草视频中文在线| 日韩高清二区| 亚洲理论在线观看| 国产在线播放91| 日本一级片免费看| 亚洲都市激情| 日本乱码高清不卡字幕| 欧美亚洲精品日韩| 4438国产精品一区二区| 亚洲精品网址| 精品国产免费人成电影在线观看四季 | 久久av红桃一区二区禁漫| 影视一区二区三区| 久久精品男人天堂av| 97在线看福利| 精品无码在线视频| 欧美一区久久久| 国产精品免费观看视频| 国产美女久久精品香蕉69| 一区二区伦理片| 成人国产精品一区二区免费麻豆| 中文成人av在线| 91老司机在线| 久久久久亚洲av成人片| 欧美变态网站| 欧美在线观看一区二区| 中文字幕日韩精品一区二区| 国产男女裸体做爰爽爽| 亚洲视频高清| 亚洲精品久久久久久久久久久久| 韩国三级hd中文字幕有哪些| 99爱在线视频| 亚洲国产成人午夜在线一区| 免费一区二区三区| 91精品国产乱码久久久| 欧美性久久久| 国产亚洲精品美女久久久久| 九九热精品国产| 日本а中文在线天堂| www中文在线| 粉嫩一区二区三区四区公司1| 欧美性黄网官网| 中文字幕一区二区三区最新| 91大神xh98hx在线播放| 国产成人亚洲综合a∨婷婷图片| 日本伊人午夜精品| 99久久久免费精品国产一区二区 | 大黄网站在线观看| 久久理论电影网| 成人美女免费网站视频| 亚州国产精品视频| aa亚洲婷婷| 精品国产一区二区在线| 三上悠亚 电影| 91蜜桃臀久久一区二区| 一本色道久久综合精品竹菊| 熟妇人妻va精品中文字幕 | 电影一区二区在线观看| 亚洲成人av片在线观看| 伊人影院综合在线| 高清不卡一区| 色噜噜狠狠色综合欧洲selulu| 日韩中文字幕组| 9999精品视频| 在线观看日韩精品| 国产黄页在线观看| h视频在线免费观看| 久久久99免费| 韩国成人av| 欧美午夜性生活| 久久成人激情视频| 神马影视一区二区| 日韩高清中文字幕| 爱情岛论坛亚洲自拍| 草莓视频一区二区三区| 亚洲人成电影网| 538国产视频| av一级亚洲| 亚洲欧美日韩爽爽影院| 性欧美丰满熟妇xxxx性久久久| 久操精品在线| 欧美精品一区二区免费| 超碰人人人人人人人| 欧美成人中文| 超薄丝袜一区二区| 黄色av片三级三级三级免费看| 91精品电影| 日本一区二区三区在线播放 | 亚洲成人自拍偷拍| 亚洲欧美久久久久| 日韩中文av| 成年无码av片在线| 午夜视频网站在线观看| 欧美中文日韩| 57pao精品| 久久国产视频精品| 鲁大师影院一区二区三区| 69174成人网| 朝桐光av在线一区二区三区| 国产精品一区二区久激情瑜伽| 91色视频在线导航| 国内av一区二区三区| 久久一二三国产| 少妇久久久久久被弄到高潮| 日本高清在线观看| 亚洲自拍偷拍欧美| 97超碰国产精品| 日韩伦理一区二区| 欧美天堂一区| 久久婷婷久久一区二区三区| 久久久一二三四| 伊人在我在线看导航| 亚洲综合成人网| 中文字幕av不卡在线| 在线观看欧美理论a影院| 欧美激情区在线播放| 亚洲精品午夜国产va久久成人| 久久不射中文字幕| 国产伦精品一区二区三区四区视频 | 亚洲欧美日韩不卡| 黄色欧美视频| 亚洲视频欧美视频| 一级做a爰片久久毛片| 97精品视频在线观看自产线路二| 久久99久久99精品蜜柚传媒| 欧美videosex性欧美黑吊| 91精品国产全国免费观看| 最新中文字幕日本| 欧美日韩看看2015永久免费| 欧美黑人狂野猛交老妇| 亚洲国产综合网| 91片在线免费观看| 亚洲精品一区二区三区樱花| 性爱视频在线播放| 日韩欧美一级片| av女人的天堂| 日韩成人一区二区| 国产成人亚洲欧美| 香蕉视频免费在线播放| 亚洲国产精品久久久男人的天堂| 深爱五月综合网| 亚洲亚洲免费| 国产精品电影网| 狠狠躁日日躁夜夜躁av| 国产精品丝袜一区| 在线观看免费污视频| 国产精品国产三级国产在线观看| 97激碰免费视频| 青青色在线视频| av电影在线网| 国产欧美一区二区三区在线看蜜臀 | 日韩免费在线看| 午夜视频在线看| 日韩午夜三级在线| jizz中文字幕| 激情综合亚洲| 亚洲一区二区免费在线| 国模吧精品人体gogo| 欧美三级乱人伦电影| 人妻av一区二区| 91精品精品| 国产伦精品一区二区三区在线| 在线观看福利电影| 精品国产一区二区三区久久久蜜月 | 亚洲综合自拍偷拍| 在线免费观看成年人视频| 午夜国产欧美理论在线播放| 韩日午夜在线资源一区二区 | 成人在线影视| 精品国产网站在线观看| 欧美性受xxx黑人xyx性爽| 亚洲欧美日韩在线| 岛国毛片在线播放| 欧美婷婷在线| 午夜视频久久久| 一根才成人网| 亚洲在线日韩| 丝袜亚洲欧美日韩综合| 日本亚洲色大成网站www久久| 国精产品一区一区三区mba桃花| 国产精品日韩三级| 欧美日韩中文一区二区| ts人妖另类在线| av网站大全在线| 亚洲男人天堂网站| 国产999久久久| 亚洲欧美日韩中文播放| 中文字幕天堂网| 激情亚洲综合在线| 日本熟妇人妻xxxxx| 欧美日本一区| 一区二区在线不卡| 亚州精品视频| 亚洲一区二区三区四区视频 | 91一区在线| 国产精品国产福利国产秒拍| 丝袜在线观看| 日韩有码在线视频| 酒色婷婷桃色成人免费av网| 欧美性生交xxxxxdddd| 四虎永久免费在线| 国产美女一区二区三区| 免费成人深夜夜行网站视频| 欧美一级网址| 日本亚洲欧洲色| av资源新版天堂在线| 久久亚洲精品国产亚洲老地址| 欧美日本韩国一区二区| 亚洲国产精品字幕| 亚洲欧美激情另类| 日韩一区国产二区欧美三区| 国产三级理论片| 色哟哟精品一区| 五月天婷婷久久| 精品久久久久久久久久久久久久| 日本黄色特级片| 成人一区二区视频| 欧美精品色婷婷五月综合| 狠狠综合久久av一区二区蜜桃| 国产精品久久久久91| 三级在线观看视频| 88国产精品欧美一区二区三区| 九色视频在线观看免费播放| 亚洲激情视频在线观看| 日韩在线观看视频一区二区三区 | a级黄色小视频| 天堂av一区二区三区在线播放| 999视频在线观看| 精品一区二区三区中文字幕在线| 久久久免费精品视频| 免费一级在线观看播放网址| 精品亚洲一区二区三区在线观看 | 亚洲精品美女视频| 天天舔天天干天天操| 欧美艳星brazzers| 国产污视频网站| 一区二区三区四区在线| 久久精品国产亚洲av久| 久久久精品免费观看| 中国女人特级毛片| 欧美国产亚洲另类动漫| 成年人视频软件| 亚洲av永久纯肉无码精品动漫| 色欧美88888久久久久久影院| 少妇久久久久久久| 欧美日韩一区二区三区高清| 一级片免费观看视频| 这里只有精品免费| 国产精品一区二区三区四| 午夜私人影院久久久久| 91香蕉一区二区三区在线观看| 中文字幕五月欧美| 老司机福利av| 国产日韩欧美电影| 永久免费看片直接| 午夜精品久久久久久久| 免费观看日批视频| 欧美精品在线观看播放| 99久在线精品99re8热| 色诱视频网站一区| 国产精品爽爽久久久久久| 色婷婷av一区二区三区大白胸| 精品国产www| 欧美一区二区三区在线电影| 日本精品一区二区在线观看| 亚洲视频自拍偷拍| 91精选在线| 欧美性做爰毛片| 福利一区三区| 你懂的视频在线一区二区| 婷婷亚洲综合| 欧美在线观看www| 国产在线播放一区二区三区| 日韩Av无码精品| 亚洲欧美一区二区在线观看| 国产在线成人精品午夜| 亚洲精品你懂的| 久草免费在线视频观看| 欧美视频免费在线观看| 国产三级漂亮女教师| 日韩精品999| 亚洲丝袜一区| 国产精品亚洲网站| 欧美美女啪啪| 影音先锋男人的网站| 亚洲免费一区二区| 一级全黄裸体片| 国产精品国产三级国产aⅴ入口| 久久中文字幕精品| 亚洲国产成人91porn| 一级黄色片在线| 亚洲嫩模很污视频| av伦理在线| 91在线观看免费观看| 欧美影院三区| 一级全黄肉体裸体全过程| 久久高清一区| 99久久久无码国产精品性波多 | 亚洲在线观看免费| 中文字幕在线播放日韩| 日韩精品亚洲元码| 丁香花在线影院| 51国偷自产一区二区三区| 日韩精品看片| 亚洲欧洲精品一区二区| 亚洲免费播放| 稀缺呦国内精品呦| 亚洲欧美色图小说| 一级特黄aaaaaa大片| 亚洲网在线观看| 中文日产幕无线码一区二区| 亚洲尤物视频网| 五月天久久777| 182午夜在线观看| 中文字幕av不卡| 最好看的日本字幕mv视频大全 | 国产人成网在线播放va免费| 久久夜色精品亚洲噜噜国产mv| 日韩av免费| 日韩一本精品| 一区二区三区四区在线观看国产日韩| 日韩视频一二三| 精品一区二区在线观看| 91精品人妻一区二区三区蜜桃2 | 国产精一区二区三区| 激情无码人妻又粗又大| 欧美日韩在线直播| 137大胆人体在线观看| 国产精品美女无圣光视频| 日韩高清一区| 色婷婷777777仙踪林| 国产精品18久久久久久久久久久久 | 久久久人成影片一区二区三区| 亚洲一二av| 国产免费黄色av| 久久成人免费网站| 成年人二级毛片| 欧美三级xxx| 毛片免费在线| 国产精品无码专区在线观看| 欧美顶级大胆免费视频| 精品国产乱码久久久久久1区二区| 亚洲女人****多毛耸耸8| www日本高清视频| 91精品国产91久久久久久吃药 | 亚洲美女在线视频| 偷拍视频一区二区三区| 午夜精品视频在线观看一区二区| 韩国三级在线一区| 国产在线综合网| 亚洲深夜福利视频| 99tv成人影院| 超碰成人免费在线| 精品亚洲国产成人av制服丝袜| 91精品少妇一区二区三区蜜桃臀| 日韩欧美123| sis001欧美| 男同互操gay射视频在线看| 成人福利视频在线看| 四虎永久免费地址| 欧美不卡一区二区| 国产在线激情| 国产精品香蕉视屏| 丝袜美腿成人在线| 精品中文字幕在线播放| 亚洲精品高潮| 人妻av无码专区| 久久久99免费| 精品久久国产视频| 日本sm极度另类视频| 成人av激情人伦小说| 男人天堂网视频| 亚洲欧美区自拍先锋| 日夜干在线视频| 成人免费看片视频| 久久久久久一区二区| 欧美激情国产精品免费| 一本一道久久a久久精品逆3p| 中文字幕成在线观看|