国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

【機器學(xué)習(xí)】異常值檢測實踐 - Python 代碼與可視化

共 16431字,需瀏覽 33分鐘

 ·

2021-04-23 22:56

1介紹

.什么是異常值檢測?

異常值檢測也稱為離群值檢測、噪聲檢測、偏差檢測或異常挖掘。一般來說并沒有普遍接受的定義。(Grubbs,1969)給出的一個早期定義是: 異常值或離群值是似乎與其所在的樣本內(nèi)其他成員明顯偏離的觀測值。(Barnett 和 Lewis,1994)的最新定義是: 與該組數(shù)據(jù)的其余部分不一致的觀測值。

.成因

導(dǎo)致異常值的最常見原因有,

  • 數(shù)據(jù)輸入錯誤(人為錯誤)
  • 測量誤差(儀器誤差)
  • 實驗錯誤(數(shù)據(jù)提取或?qū)嶒炗媱?執(zhí)行錯誤)
  • 故意的(虛假的異常值用于測試異常值檢測方法)
  • 數(shù)據(jù)處理錯誤(數(shù)據(jù)處理或數(shù)據(jù)集意外突變)
  • 抽樣錯誤(從錯誤或各種不同來源提取或混合數(shù)據(jù))
  • 自然引入(并不是錯誤,而是數(shù)據(jù)多樣性導(dǎo)致的數(shù)據(jù)新穎性)

.應(yīng)用

異常值/離群值檢測的應(yīng)用比較廣泛,例如

  • 欺詐檢測,即檢測信用卡或電話卡的欺詐性事件。
  • 貸款申請?zhí)幚?,檢測欺詐性申請或潛在問題客戶。
  • 入侵檢測,檢測計算機網(wǎng)絡(luò)中未經(jīng)授權(quán)的訪問。
  • 活動監(jiān)視,通過監(jiān)視電話活動或股票市場中的可疑交易來檢測手機欺詐。
  • 網(wǎng)絡(luò)性能,監(jiān)視計算機網(wǎng)絡(luò)的性能,例如檢測網(wǎng)絡(luò)瓶頸。
  • 故障診斷,檢測例如航天飛機上的電動機、發(fā)電機、管道或太空儀器中的故障。
  • 結(jié)構(gòu)缺陷檢測,檢測生產(chǎn)線中的缺陷瑕疵。
  • 衛(wèi)星圖像分析,識別新穎特征或分類錯誤的特征。
  • 檢測圖像中的新穎性,用于機器人整形或監(jiān)視系統(tǒng)。
  • 運動分割,檢測獨立于背景移動的圖像特征。
  • 時間序列監(jiān)視,監(jiān)視安全關(guān)鍵應(yīng)用,例如鉆孔或高速銑削。
  • 醫(yī)療狀況監(jiān)控,例如心率監(jiān)控器。
  • 藥物研究,確定新的分子結(jié)構(gòu)。
  • 檢測文本中的新穎性,檢測新聞事件的出現(xiàn),進(jìn)行主題檢測和跟蹤,或讓交易者查明股票、商品、外匯交易事件,表現(xiàn)出色或表現(xiàn)不佳的商品。
  • 檢測數(shù)據(jù)庫中的意外記錄,用于數(shù)據(jù)挖掘以檢測錯誤、欺詐或有效但異常的記錄。
  • 在訓(xùn)練數(shù)據(jù)集中檢測標(biāo)簽錯誤的數(shù)據(jù)。

.方法

有三類離群值檢測方法:

  • 在沒有數(shù)據(jù)先驗知識的情況下確定異常值。這類似于無監(jiān)督聚類。
  • 對正常和異常進(jìn)行建模。這類似于監(jiān)督分類,需要標(biāo)記好數(shù)據(jù)。
  • 僅建模正常數(shù)據(jù)。這稱為新穎性檢測,類似于半監(jiān)督識別。這種方法需要屬于正常類的標(biāo)記數(shù)據(jù)。

我將處理第一種方法,這也是最常見的情況。大多數(shù)數(shù)據(jù)集并沒有關(guān)于異常值的標(biāo)記數(shù)據(jù)。

.方法分類

  • 離群值檢測方法可以分為: 單變量方法和多變量方法。

  • 也可以分為: 參數(shù)(統(tǒng)計)方法,該類方法假定觀測值的潛在分布已知;以及非參數(shù)方法,如基于距離的方法和聚類方法。

.離群值檢測算法

本篇采用的算法有:

  • 孤立森林
  • 擴(kuò)展孤立森林
  • 局部離群因子
  • DBSCAN
  • 單分類 SVM
  • 以上方法的集成

2實踐

.數(shù)據(jù)集

這里將使用 Pokemon[1] 數(shù)據(jù)集并在 ['HP', 'Speed'] 這兩列上執(zhí)行異常值檢測。這個數(shù)據(jù)集具有很少的觀測值,計算將很快。出于可視化目的而只選擇了其中兩列(二維),但該方法適用于多維度處理。

.上代碼

import numpy as np
import pandas as pd
from scipy import stats
import eif as iso
from sklearn import svm
from sklearn.cluster import DBSCAN
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

import matplotlib.dates as md
from scipy.stats import norm
%matplotlib inline 
import seaborn as sns 
sns.set_style("whitegrid"#possible choices: white, dark, whitegrid, darkgrid, ticks


import matplotlib.pyplot as plt
plt.style.use('ggplot')
import plotly.express as px
import plotly.graph_objs as go
import plotly.figure_factory as ff
from plotly import tools
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
pd.set_option('float_format''{:f}'.format)
pd.set_option('max_columns',250)
pd.set_option('max_rows',150)
data = pd.read_csv('Pokemon.csv')
data.head().T

x1='HP'; x2='Speed'
X = data[[x1,x2]]
X.shape
(800, 2)

.孤立森林

  • 孤立森林,就像任何集成樹方法一樣,都是基于決策樹構(gòu)建的。在這些樹中,首先通過隨機選擇一個特征,然后在所選特征的最小值和最大值之間選擇一個隨機分割值來創(chuàng)建分區(qū)。

  • 為了在樹中創(chuàng)建分支,首先,選擇一個隨機特征。然后,為該特征選擇一個隨機的分割值(介于最小值和最大值之間)。如果給定的觀測值具有較低的此特征值,則選擇的觀測值將歸左分支,否則歸右分支。繼續(xù)此過程,直到分割單個點或達(dá)到指定的最大深度為止。

  • 原則上,離群值不如正常觀察值那么普遍,并且在值方面與它們不同(它們離特征空間中的正常觀察值更遠(yuǎn))。使用這種隨機劃分,離群值往往出現(xiàn)在更接近樹的根的地方,只需相對更少的劃分(較短的平均路徑長度,即從樹的根到葉子節(jié)點的邊數(shù))

我將使用 sklearn 庫中的 IsolationForest。定義算法時,有一個重要的參數(shù)稱為污染。它是算法期望的離群值觀察值的百分比。我們將 X(具有 HP 和 Speed 2 個特征)擬合到算法中,并在 X 上使用 fit_predict 來對其進(jìn)行處理。這將產(chǎn)生普通的異常值(-1 為異常值,1 為異常值)。我們還可以使用函數(shù) decision_function 來獲得 Isolation Forest 給每個樣本的分?jǐn)?shù)。

clf = IsolationForest(max_samples='auto', random_state = 1, contamination= 0.02)

preds = clf.fit_predict(X)

data['isoletionForest_outliers'] = preds
data['isoletionForest_outliers'] = data['isoletionForest_outliers'].astype(str)
data['isoletionForest_scores'] = clf.decision_function(X)

print(data['isoletionForest_outliers'].value_counts())
data[152:156]
1     785
-1 15
Name: isoletionForest_outliers, dtype: int64

將結(jié)果繪制出來看看。

fig = px.scatter(data, x=x1, y=x2, color='isoletionForest_outliers', hover_name='Name')
fig.update_layout(title='Isolation Forest Outlier Detection', title_x=0.5, yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

fig = px.scatter(data, x=x1, y=x2, color="isoletionForest_scores")
fig.update_layout(title='Isolation Forest Outlier Detection (scores)', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

從視覺上看,這 15 個點不在主要數(shù)據(jù)點范圍內(nèi),判為離群值似乎合乎常理。

除了異常值和異常值顯示孤立森林的決策邊界外,我們還可以進(jìn)行更高級的可視化。

data['isoletionForest_outliers']=='1'
0      True
1 True
2 True
3 True
4 True
...
795 True
796 True
797 True
798 True
799 True
Name: isoletionForest_outliers, Length: 800, dtype: bool
X_inliers = data.loc[data['isoletionForest_outliers']=='1'][[x1,x2]]
X_outliers = data.loc[data['isoletionForest_outliers']=='-1'][[x1,x2]]

xx, yy = np.meshgrid(np.linspace(X.iloc[:, 0].min(), X.iloc[:, 0].max(), 50), np.linspace(X.iloc[:, 1].min(), X.iloc[:, 1].max(), 50))
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)

fig, ax = plt.subplots(figsize=(157))
plt.title("Isolation Forest Outlier Detection with Outlier Areas", fontsize = 15, loc='center')
plt.contourf(xx, yy, Z, cmap=plt.cm.Blues_r)

inl = plt.scatter(X_inliers.iloc[:, 0], X_inliers.iloc[:, 1], c='white', s=20, edgecolor='k')
outl = plt.scatter(X_outliers.iloc[:, 0], X_outliers.iloc[:, 1], c='red',s=20, edgecolor='k')

plt.axis('tight')
plt.xlim((X.iloc[:, 0].min(), X.iloc[:, 0].max()))
plt.ylim((X.iloc[:, 1].min(), X.iloc[:, 1].max()))
plt.legend([inl, outl],["normal observations""abnormal observations"],loc="upper left");
# plt.show()

顏色越深,該區(qū)域就越離群。下面代碼可以查看分?jǐn)?shù)分布。

fig, ax = plt.subplots(figsize=(207))
ax.set_title('Distribution of Isolation Forest Scores', fontsize = 15, loc='center')
sns.distplot(data['isoletionForest_scores'],color='#3366ff',label='if',hist_kws = {"alpha"0.35});

分布很重要,可以幫助我們更好地確定案例的正確污染值。如果我們更改污染值,isoletionForest_scores 將會更改,但是分布將保持不變。該算法將調(diào)整分布圖中離群值的截止值。

.擴(kuò)展孤立森林

孤立森林有一個缺點: 它的決策邊界是垂直或水平的。由于線只能平行于軸,因此某些區(qū)域包含許多分支切口,并且只有少量或單個觀測值,這會導(dǎo)致某些觀測值的異常分不正確。

安裝 pip install git+https://github.com/sahandha/eif.git

擴(kuò)展孤立森林選擇如下操作,

1)分支剪切的隨機斜率,以及
2)從訓(xùn)練數(shù)據(jù)的可用值范圍中選擇的隨機截距。這些項實際上是線性回歸線。

X_data = X.values.astype('double')
F1  = iso.iForest(X_data, ntrees=100, sample_size=256, ExtensionLevel=X.shape[1]-1# X needs to by numpy array
# calculate anomaly scores
anomaly_scores = F1.compute_paths(X_in = X_data)
data['extendedIsoletionForest_scores'] = -anomaly_scores
# determine lowest 2% as outliers
data['extendedIsoletionForest_outliers'] =  data['extendedIsoletionForest_scores'].apply(lambda x: '-1' if x<=data['extendedIsoletionForest_scores'].quantile(0.02else '1')
print(data['extendedIsoletionForest_outliers'].value_counts())
1     784
-1 16
Name: extendedIsoletionForest_outliers, dtype: int64
fig = px.scatter(data, x=x1, y=x2, color='extendedIsoletionForest_outliers', hover_name='Name')
fig.update_layout(title='Extended Isolation Forest Outlier Detection', title_x=0.5, yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

fig = px.scatter(data, x=x1, y=x2, color="extendedIsoletionForest_scores")
fig.update_layout(title='Extended Isolation Forest Outlier Detection (scores)', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

擴(kuò)展孤立森林并不提供普通的異常值和正常值(如 -1 和 1)。我們只是通過將得分最低的 2% 作為離群值來創(chuàng)建它們。該算法的分?jǐn)?shù)與基本孤立森林不同,所有分?jǐn)?shù)均為負(fù)。

X_inliers = data.loc[data['extendedIsoletionForest_outliers']=='1'][[x1,x2]]
X_outliers = data.loc[data['extendedIsoletionForest_outliers']=='-1'][[x1,x2]]

xx, yy = np.meshgrid(np.linspace(X.iloc[:, 0].min(), X.iloc[:, 0].max(), 50), np.linspace(X.iloc[:, 1].min()-30, X.iloc[:, 1].max()+3050))

S1 = F1.compute_paths(X_in=np.c_[xx.ravel(), yy.ravel()])
S1 = S1.reshape(xx.shape)

fig, ax = plt.subplots(figsize=(157))
plt.title("Extended Isolation Forest Outlier Detection with Outlier Areas", fontsize = 15, loc='center')
levels = np.linspace(np.min(S1),np.max(S1),50)
CS = ax.contourf(xx, yy, S1, levels, cmap=plt.cm.Blues)

inl = plt.scatter(X_inliers.iloc[:, 0], X_inliers.iloc[:, 1], c='white', s=20, edgecolor='k')
outl = plt.scatter(X_outliers.iloc[:, 0], X_outliers.iloc[:, 1], c='red',s=20, edgecolor='k')

plt.axis('tight')
plt.xlim((X.iloc[:, 0].min(), X.iloc[:, 0].max()))
plt.ylim((X.iloc[:, 1].min()-30, X.iloc[:, 1].max()+30))
plt.legend([inl, outl],["normal observations""abnormal observations"],loc="upper left")
# plt.show()


fig, ax = plt.subplots(figsize=(207))
ax.set_title('Distribution of Extended Isolation Scores', fontsize = 15, loc='center')
sns.distplot(data['extendedIsoletionForest_scores'],color='red',label='eif',hist_kws = {"alpha"0.5});


3局部離群因子 LOF

  • 該方法觀察某個點的鄰近點,找出它的密度,然后將其與其他點的密度進(jìn)行比較。

  • 點的 LOF 表示這個點的密度與其相鄰點的密度之比。如果一個點的密度遠(yuǎn)小于其鄰近點的密度(LOF ? 1),則該點遠(yuǎn)離密集區(qū)域,判為離群值。

clf = LocalOutlierFactor(n_neighbors=11)
y_pred = clf.fit_predict(X)

data['localOutlierFactor_outliers'] = y_pred.astype(str)
print(data['localOutlierFactor_outliers'].value_counts())
data['localOutlierFactor_scores'] = clf.negative_outlier_factor_
1     779
-1 21
Name: localOutlierFactor_outliers, dtype: int64

最重要的參數(shù)是 n_neighbors。默認(rèn)值為 20,這給出了 45 個離群值。我將其更改為 11 以得到更少的離群值,接近 2%。

fig = px.scatter(data, x=x1, y=x2, color='localOutlierFactor_outliers', hover_name='Name')
fig.update_layout(title='Local Outlier Factor Outlier Detection', title_x=0.5, yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

fig = px.scatter(data, x=x1, y=x2, color="localOutlierFactor_scores", hover_name='Name')
fig.update_layout(title='Local Outlier Factor Outlier Detection', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

我們可以創(chuàng)建另一個有趣的圖,其中局部離群值越大,其周圍的圓圈越大。

fig, ax = plt.subplots(figsize=(157.5))
ax.set_title('Local Outlier Factor Scores Outlier Detection', fontsize = 15, loc='center')

plt.scatter(X.iloc[:, 0], X.iloc[:, 1], color='k', s=3., label='Data points')
radius = (data['localOutlierFactor_scores'].max() - data['localOutlierFactor_scores']) / (data['localOutlierFactor_scores'].max() - data['localOutlierFactor_scores'].min())
plt.scatter(X.iloc[:, 0], X.iloc[:, 1], s=2000 * radius, edgecolors='r', facecolors='none', label='Outlier scores')
plt.axis('tight')
legend = plt.legend(loc='upper left')
legend.legendHandles[0]._sizes = [10]
legend.legendHandles[1]._sizes = [20]
plt.show();
fig, ax = plt.subplots(figsize=(207))
ax.set_title('Distribution of Local Outlier Factor Scores', fontsize = 15, loc='center')
sns.distplot(data['localOutlierFactor_scores'],color='red',label='eif',hist_kws = {"alpha"0.5});

該算法與以前的算法有很大不同,它以不同的方式找到離群值。

.DBSCAN

一種經(jīng)典的聚類算法,其工作方式如下:

  • 隨機選擇一個尚未分配給簇或指定為離群值的點。通過查看 epsilon 距離內(nèi)是否至少有 min_samples 個點來確定其是否為核心點。

  • 將核心點及其在 epsilon 距離內(nèi)的所有直接可達(dá)點構(gòu)成一簇。

  • 查找簇中每個點的 epsilon 距離內(nèi)的所有點,并將它們添加到該簇中。查找所有新添加的點在 epsilon 距離內(nèi)的所有點,并將它們添加到簇中。重復(fù)上述步驟。

from sklearn.cluster import DBSCAN
outlier_detection = DBSCAN(eps = 20, metric='euclidean', min_samples = 5,n_jobs = -1)
clusters = outlier_detection.fit_predict(X)

data['dbscan_outliers'] = clusters
data['dbscan_outliers'] = data['dbscan_outliers'].apply(lambda x: str(1if x>-1 else str(-1))
print(data['dbscan_outliers'].value_counts())
1     787
-1 13
Name: dbscan_outliers, dtype: int64

要調(diào)整的最重要參數(shù)是 eps。

fig = px.scatter(data, x=x1, y=x2, color="dbscan_outliers", hover_name='Name')
fig.update_layout(title='DBSCAN Outlier Detection', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

.單分類 SVM

  • 單類分類器在僅包含正常點的數(shù)據(jù)集上訓(xùn)練,但可用于所有數(shù)據(jù)。一旦訓(xùn)練好,該模型將用于將新示例分類為正常值或異常值。

  • 與標(biāo)準(zhǔn) SVM 的主要區(qū)別在于,它以無監(jiān)督的方式擬合,并不提供超參數(shù) C 來調(diào)節(jié)間隔。相反,它提供了控制支持向量靈敏度的超參數(shù) nu,并且應(yīng)該調(diào)整為數(shù)據(jù)中離群值的近似比率。

有關(guān)單分類 SVM 的更多信息可參考,

  • Outlier Detection with One-Class SVMs[2]
  • One-Class Classification Algorithms for Imbalanced Datasets[3]
clf = svm.OneClassSVM(nu=0.08, kernel='rbf', gamma='auto')
outliers = clf.fit_predict(X)
data['ocsvm_outliers'] = outliers
data['ocsvm_outliers'] = data['ocsvm_outliers'].apply(lambda x: str(-1if x==-1 else str(1))
data['ocsvm_scores'] = clf.score_samples(X)
print(data['ocsvm_outliers'].value_counts())
-1    481
1 319
Name: ocsvm_outliers, dtype: int64
fig = px.scatter(data, x=x1, y=x2, color="ocsvm_outliers", hover_name='Name')
fig.update_layout(title='One Class SVM Outlier Detection', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

在此數(shù)據(jù)中找不到更好的 nu,參數(shù)在這個例子上似乎不起作用。對于其他 nu 值,離群值更是大于正常值。

.集成

最后,讓我們結(jié)合這 5 種算法來構(gòu)成一種健壯的算法。我將簡單添加離群值列,其中 -1 代表離群值,1 代表正常值。

由于此例中效果不好,因此不使用 One Class SVM。

data['outliers_sum'] = data['isoletionForest_outliers'].astype(int)+data['extendedIsoletionForest_outliers'].astype(int)+data['localOutlierFactor_outliers'].astype(int)+data['dbscan_outliers'].astype(int)
data['outliers_sum'].value_counts()
 3    774
1 11
-3 8
-1 7
Name: outliers_sum, dtype: int64
fig = px.scatter(data, x=x1, y=x2, color="outliers_sum", hover_name='Name')
fig.update_layout(title='Ensemble Outlier Detection', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

觀察值 outliers_sum=4 的意思是,所有 4 種算法均同意這是一個正常值,而對于離群值的完全一致是其和為 -4。

首先,讓我們看看所有算法中哪些被認(rèn)為是離群值,然后將 sum = 4 的觀察值設(shè)為正常值,其余則作為離群值。

data.loc[data['outliers_sum']==-4]['Name']
121              Chansey
155 Snorlax
217 Wobbuffet
261 Blissey
313 Slaking
316 Shedinja
431 DeoxysSpeed Forme
495 Munchlax
Name: Name, dtype: object
data['outliers_sum'] = data['outliers_sum'].apply(lambda x: str(1if x==4 else str(-1))
fig = px.scatter(data, x=x1, y=x2, color="outliers_sum", hover_name='Name')
fig.update_layout(title='Ensemble Outlier Detection', title_x=0.5,yaxis=dict(gridcolor = '#DFEAF4'), xaxis=dict(gridcolor = '#DFEAF4'), plot_bgcolor='white')
# fig.show()

?參考資料?

[1]

Pokemon: https://www.kaggle.com/abcsds/pokemon

[2]

Outlier Detection with One-Class SVMs: https://towardsdatascience.com/outlier-detection-with-one-class-svms-5403a1a1878c

[3]

One-Class Classification Algorithms for Imbalanced Datasets: https://machinelearningmastery.com/one-class-classification-algorithms/

[4]

原文鏈接: https://towardsdatascience.com/outlier-detection-theory-visualizations-and-code-a4fd39de540c




推薦閱讀

(點擊標(biāo)題可跳轉(zhuǎn)閱讀)

論機器學(xué)習(xí)領(lǐng)域的內(nèi)卷

機器學(xué)習(xí)博士自救指南

機器學(xué)習(xí)必知必會的 6 種神經(jīng)網(wǎng)絡(luò)類型

你見過的最全面的Python重點知識匯總

100天搞定機器學(xué)習(xí):寫YAML配置文件

100天搞定機器學(xué)習(xí):模型訓(xùn)練好了,然后呢?

老鐵,三連支持一下,好嗎?↓↓↓

瀏覽 82
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 jizzjizz欧美| 黄片免费网站| 色94色.欧美.setu| 在线成人视频网站大香蕉在线网站| 巨乳一区二区三区| 中文字幕一级A片高清免| 亚州v| 玖玖爱免费视频| 91国产视频在线观看| 国产AV一区二区三区精品| 亚洲无码性爱| 人人操人人看人人摸| 国产福利合集| 怡春院视频| 国产小视频在线播放| 超碰人人摸| 亚洲黄色无码| 久久中文字幕电影| 成年无码| 青青在线免费视频| 久久夜色精品国产噜噜亚洲AV| 久久久婷| 欧美日本成人网站入口| 成人影片在线观看18| 99在线精品观看| 奇米影视77777| 亚洲午夜无码| 无码一区二区三| 国产毛片久久久久久国产毛片| 西西人体BBBBBB| 日韩日韩日韩| 无码视频一区二区三区| 天堂中文字幕在线| 91日综合欧美| 自慰在线观看网站| 人妻无码久久精品| 无码免费视频在线观看| 久久久久久久人妻丝袜| h在线网站| 欧美亚洲小说| 国产精品秘ThePorn| 麻豆三级片在线观看| 午夜在线视频| 伊人春色AV| 91国内产香蕉| 福利色播| 狠狠躁日日躁夜夜躁A片无码视频 强伦轩一区二区三区四区播放方式 | 三级片免费网址| 国产综合AV| 欧美高清在线综合| 欧美v在线观看| 偷拍欧美日韩| 日韩精品成人| 无码精品一区二区免费| av青草| 久久久精品午夜人成欧洲亚洲韩国 | 无码天天| 中文字幕精品在线视频| 狠狠撸狠狠干| 婷婷好色五月天| 欧美av| 99久久精品国产一区色| 国产精品探花熟女AV| 丁香网五月天| 大香蕉伊人在线观看| 欧美日韩中文在线视频| 久久足交| 俺也操| 男女午夜| 国内自拍av| 国产精品一区二区三区四区| 亚洲毛片亚洲毛片亚洲毛片| x88AV吊钟奶熟女| 成人在线观看AV| 中文字幕无码影院| 岛国AV免费看| 色婷操逼| 97人妻人人澡人| 国产精品色哟哟| AV777777| 亚洲日本视频| 色欲天天网| 国产做爱视频| 一级黄片免费看| 国产精品久久7777777精品无码| 91污| 手机看片久草| 欧美自拍视频在线| 中文字幕av久久波多野结| 可以看的黄色视频| 操逼视频在线播放| 人妖和人妖互交性XXXX视频| 综合色网站| 亚洲视频一区| 国产又爽又黄免费| 先锋AV资源| 黄片网址大全| 唐山熟女工棚嗷嗷叫| 狠狠91| 国产高清一区二区三区| 人人澡人人妻人人爽| 色老板视频在线观看| 人人妻人人澡人人爽久久con| 一级午夜福利| 国产中文| 日韩免费中文字幕A片| 亚洲AV无码乱码| 国产精品久久毛片| 九九热在线视频| 久久久黄色电影| 亚洲黄片免费观看| 日本黄色高清视频| 黄色片在线看| 亚洲成人电影一区| 欧美成人综合| 内射| 青娱乐精品| 中文字幕在线一区二区a| 亚洲视频区| 大香蕉网伊人在线| 老妇性BBWBBWBBWBBW| 亚洲小穴| 高清操逼| 欧美成人三级在线| 91麻豆天美传媒在线| 精品成人A片久久久久久不卡三区| 激情乱伦网| 爆草美女| 中文字幕北条麻妃| www.51av| 人人操人人模| 国产操逼视频| 色情一级AA片免费观看| 黄色带亚州| 国产夫妻精品| 日韩无码乱码| 超碰成人福利| 国产又爽又黄免费网站在| 日本久久久久久久久视频在线观看 | 中文字幕++中文字幕明步| 乱子伦日B视频| 四虎在线观看视频| 欧美亚洲激情| 99精品自拍| 韩国高清无码| 男人天堂视频在线观看| 亚洲香蕉国产| 五月婷婷av| www.199麻豆在线观看网站| 国产熟女乱伦| 亚洲欧洲综合| 尻屄视频网站| 日本不卡三区| 日本A片免费观看| 日本性爱网址| 欧美成人精品AAA| 国产欧美日韩视频| 天天躁狠狠躁av| 夜夜嗨AV一区二区三区| 91aV视频| 一级操逼黄色视频| 婷婷久月| 91豆花成人社区| 成人社区视频| 午夜成人视频| 国产精品日韩高清北条麻衣| 午夜成人福利视频在线观看| 国产婷婷色一区二区在线观看| 第一福利导航大全| 吴梦梦《女教师时间暂停》| 水蜜桃在线观看视频| 亚洲三级在线免费观看| 中文字幕在线观看完整av| 日韩激情AV| 九色无码| 性色aV中文字幕| 国产成人三级片| 久草视频福利在线| 毛片网站大全| xxx综合网| 一区成人| 精品AAA| 日韩码线观看视频| 麻豆免费成人视频| 蜜臀av在线播放| 91色五月| 黄片www| 日韩性爱视频网站| 色情网站在线| 国产av电影网| 国产无码专区| 操婊网| 大香蕉国产在线视频| 亚洲国产精| 黄色一区二区三区| 黄a网站| 久久色播| wwwxx国产| 四虎激情影院| 亚洲中文字幕AV| 免费成人大片| 日韩激情在线观看| 人人操人人网站| 一级操逼黄色视频| 五月伊人网| 无码窝在线观看| 成人黄A片免费| 黄色电影一级| 日皮视频在线观看| 天天干女人| 日本三级韩三级99久久| 国产精彩无码视频| 黄色小说在线看| 青青啪啪啪| 欧美亚洲天堂| 逼网站| 亚洲www在线| 在线免费中文字幕| 无码中文综合成熟精品AV电影 | 激情青青草| 丰满人妻一区二区三区视频在线不卡 | 亚洲videos| 天堂成人在线视频| 日日干天天干| 懂色av,蜜臀AV粉嫩av| AV大全在线观看| 国产中文字幕波多| 欧美AAAAAAAAAA特级| 宅男看片| 女人A片一级黄色| 国内精品久久久久久久久久| 国产中文人人国际| 国产午夜福利电影| 久久亚洲成人| 日本久久网站| 91成人无码看片在线观看网址| 国产视频123区| 91一区二区在线观看| 北条麻妃一区二区三区-免费免费高清观看| 免费看无码一级A片在线播放| 日韩A∨视频| 丰满人妻一区二区三区免费| 337P粉嫩大胆噜噜噜55569| 999精品| 蜜桃传媒AV| 三级AV在线免费观看| 婷婷操逼| 蜜臀色欲AV无码人妻| 色片视频| 67194熟女| 美女黄色免费网站| 爱爱视频天天干| 欧美高潮视频| 久久熟妇| 高清无码视频免费| 激情五月天激情网| 国产黄色一级电影| 国产精品色色色| 亚洲日韩网站在线观看| 北条麻妃久久网站| 亚洲AV无码成人精品区天堂小说| 无码天堂| 男人天堂网站| www.操逼| 色老板免费视频| 加勒比无码在线| 人人草人人草| 无码AV在线播放| 中文字幕在线观看免费高清完整版在线观看| 亚洲精品成人7777777| 一级a一级a爱片免费免免高潮| 无套内射学生妹去看片| 成人三级毛片| 成人精品视频在线| 成人高清无码在线观看| 激情视频免费在线观看| 俺来也俺去也www色官网| 国产一区二区电影| 综合久久亚洲| 97精品人妻一区二区三区在线| 国产高潮在线| 911精品人妻一区二区三区A片| 激情伊人| 婷婷色AV| 热热AV| 免费视频一二三区| 一区二区视频在线观看| 天美精东蜜桃91| 黄a网站| 69AV在线视频| 麻豆乱码国产一区二区三区 | 狠狠干五月天| Chinese搡老女人| 99精品视频免费| 农村少妇久久久久久久| 国产VA| 99热欧美| 97超碰人人| 木下凛凛子AV888AV在线观看| 色吧综合网| 日韩无码久| 91麻豆精品91久久久久同性| 西西西444www无码视频| 91精品91久久久中77777| 永久中文字幕| jlzzzjlzzz国产免费观看 | 色视频网| japanese在线观看| www.簧片| 精品一区二区久久久久久久网站 | 免费在线观看A| 色吧久久| 天天色影院| www.亚洲精品| 黄色毛片视频| 97视频| 操美女嫩逼| 国产成人三级在线播放| 在桌下含她的花蒂和舌头H视频| 人妻无码人妻| 欧亚AV| 国产无码播放| 狠狠撸在线视频| 国产无码专区| 国产乱码精品一区二区三区的特点 | 野花Av| 一级特黄色片| 午夜蜜桃人妻一区二区| 国产成人免费观看| 国产成人午夜| 2014亚洲天堂| 五月丁香激情四射| 操B电影| 亚洲三级片在线| 一起操在线| 免费av网站| 亚洲精品一区二区三区四区高清| 国产欧美日韩一区| 无码不卡av| 无码囯无精品毛片大码| 91av在线看| 18SAV| 三级视频国产| AV小说在线观看| 色色视频网站| 国产高清做爱免费在线视频| 欧美一级性爱在线观看| 国产又大又粗又黄| 久草手机视频| 中文字幕在线视频观看| 青娱乐国产精品| 国产口爆视频| 亚洲一级黄色视频| 成人精品鲁一鲁一区二区| 大香蕉伊人成人| 亚洲天天在线| 真实野外打野视频| 91国产爽黄在线相亲| 操逼91视频| 国产AⅤ无码一区二区| 日韩特级毛片| 黄片视频在线观看| 国产一精品一aⅴ一免费| 日韩三级久久| 另类激情| 操你啦青青草| 日韩在线观看网址| 人人天天夜夜| 最新AV在线播放| 国产欧美日韩一区| 高清无码中文字幕在线观看| 操逼在线视频| 一级无码在线| wwwsesese| 人人艹人人摸| 蜜桃在线一区| 无码专区在线观看| 亚洲性爱在线观看| 亚洲二区无码| 国产区欧美去区在线| 日韩国产高清无码| 中文字幕五月久久婷婷| 97人人澡| 日韩欧美成人电影| 亚洲俺去了| 久99久视频| 亚洲秘无码一区二区三区av| 亚州精品成人片| 成人高清无码在线观看| JUY-579被丈夫的上司侵犯后的第7天,我 | 超碰国产在线| 成年人视频在线观看免费| 91狠狠色丁香婷婷综合久久精品| 成人日韩| 蜜臀久久99精品久久久久久宅男| 青娱乐av在线| 免费视频一区二区| 91九色蝌蚪91POR成人| 欧美久久网| 这里视频很精彩免费观看电视剧最新 | 日韩a片在线观看| 九九九精品| jt33免费观看高清| 国产精品性爱视频| 级婬片AAAAAAA免费| 日本在线黄色视频| 国产成人亚洲日韩| 亚洲成人a| 51毛片| 亚洲av色图| 风流少妇一区二区三区91| 无码一区精品久久久成人| AV大片在线观看| 亚洲一区在线视频| 一区免费在线观看| 亚洲无码av在线播放| 亚洲无码一区二区在线| 任我操在线视频| 国产激情艹逼| 日本一区不卡| 欧美福利视频| 91综合久久| 高清无码网站| 日韩欧美精品在线| 熟女中文字幕| 在线视频福利导航| 精品无码一区二区三| 噜噜色小说| 亚洲永久免费| 丰满人妻一区二区三区46| 制服丝袜强奸乱伦| 大香蕉网站视频| 激情小说激情视频| 玖玖国产精品| 欧美日批| 视频一区中文字幕| 97超碰在线免费观看| 你懂的在线免费观看| av电影在线观看| 天天射天天日天天干| 亚洲v视频| 国精品无码人妻一区二区三区| 国产成人99久久亚洲综合精品 | 日P免费视频| 再深点灬好爽灬轻点久久国产| 黑人AV在线播放| 中出在线| 一区高清| 蜜桃视频网站| 亚洲精品久久久久毛片A级绿茶| 爽好紧别夹喷水无码| 夜夜骚av.一区二区三区四区 | 日韩欧美国产成人| 天天添天天操| 日韩国产免费| 午夜小电影| 国产做受91电影| 木牛AV| 天天干中文字幕| 亚洲av资源在线观看| 成人免费a片| 另类TS人妖一区二区三区| 激情婷婷五月| 日韩一区在线播放| 中文字幕码精品视频网站| 免费乱伦视频| 欧美成人综合色| 日日撸夜夜撸| 蜜臀久久久| 亚洲视频1区| 欧美日韩免费在线观看| 在线视频久| 日韩午夜欧美精品一二三区| 任我操在线视频| 熟女人妻人妻の视频| 日韩精品人妻一区二区| 亚洲无码图| 日韩av在线不卡| www.51av| 久久艹久久| 日韩AV免费网站| 大鸡吧在线观看| 欧美成人在线免费视频| 麻豆性交| 欧美老妇性猛交| 国产精品第一| 亚洲精品国产成人| 欧美77777| 欧美性爱天天操| 韩日成人| 玩弄小怮女在线观看| 神马影院午夜福利| A色片| 婷婷五月天激情俺来也| 亚洲无码999| 久久看片| 337P大胆粉嫩噜噜噜| 久视频在线| 91伊人| 9l人人澡人人妻人人精品| 亚洲天堂中文字幕| 无码人妻精品一区二区三区99仓 | 一区无码免费| 成人网站免费在线| av免费网址| 男人手机天堂| 久久99精品国产.久久久久| 亚洲性爱av| 一二三区免费视频| 手机看片1024你懂的| 91大长腿美女花外围在线观看 | 中文无码在线观看中文字幕av中文 | 日韩成人无码专区| 天天看天天爽| 天天操天天操天天操天天| 国产成人aV| 国产在线视频一区| 丁香五月婷婷中文字幕| 男女AV在线免费观看| 天天干天天摸| 一级黄色a片| 亚洲熟妇在线| 成人影视在线免费观看| 中文在线最新版天堂8| 国产黄色免费看| 国产九九九九| 超碰一区| 亲子伦一区二区三区观看方式| 大香焦草久| 亚洲午夜剧场| 日本一级黄色电影| 国产精品VA| 91丨国产丨白浆| 大香蕉亚洲网| 午夜av免费在线| 日本a片| 国产又爽又黄免费视频免费 | 人人操人人摸人人| 美日韩免费视频| 欧美成人视频网| 婷婷网五月天| 亚洲中文字幕第一| 久久黄色毛片| 欧美日韩在线播放| 性久久久久久| 亚洲无码成人网| 蝌蚪窝免费视频| 天天舔天天射| 欧一美一婬一伦一区二区三区自慰国 | 日韩无码第四页| 亚洲欧美熟妇久久久久久久久| wwwav| 久久久久无码精品亚洲日韩| 亚洲人成免费| 色老板最新地址| 91x色| 少妇人妻在线| 国产av影音| 亚洲影音先锋资源| 一区二区操逼| 爱福利视频| 三级片自拍| 18禁日韩| 色伊人| 欧美一级黃色A片免费看小优视频| 东北老女人操逼视频| 日韩性生活网| 亚洲A∨无码无在线观看| 蜜臀精品色无码蜜臀AV| 中文字幕无码综合| 思思热在线视频播放| 国产女主播在线播放| 99极品视频| 国产香蕉视屏| 国产午夜男女性爱| 色色97| 一道本在线| 日韩综合在线| 国产成人无码A片V99| 伊人网成人| 国产在线秘麻豆精品观看| 国产欧美日本| 伊人久色| 99热偷拍| 狠狠干免费视频| 淫揉BBB揉揉揉BBBBB| 欧美日韩性| 亚洲免费在线播放| 另类罕见稀奇videos| 残忍另类BBWBBWBBW| 久久e热| 欧美精品一二三区| 日韩黄色一级视频| 日逼天堂| www.青青草| 亚洲黄片免费观看| 亚洲欧美视频在线观看| 婷婷五月花| 桃色av| 欧美黄色大香蕉| 成人av网站在线播放| 免费黄色大片网站| 99热思思| 亚洲综合免费观看高清完整版在线观| 伊人免费视频在线观看| 特级西西444www大胆高清图片| 俺去也AV| 日韩少妇无码| 日韩欧美中文字幕公布| 久久精品秘一区二区三免费| 亚洲成人二区| 成人午夜在线| 久草香蕉视频| 国产一二三| 嫩BBB槡BBBB槡BBB| 亚洲欧美日韩黑料吃瓜在线观看| 亚洲日本三级片| 人人插人人澡| 蜜臀网在线观看| 99er在线观看| 亚洲中文字幕人妻| 亚洲精品人妻在线| 操人妻| 国产无码片| 天a堂8在线www| 北条麻妃在线观看香蕉| 蝌蚪窝免费在线视频| 亚洲婷婷在线观看| 伊人天天日| 国产精品揄拍500视频| 国精产品秘成人一区二| 国产欧美一区二区三区在线看蜜臀 | 亚洲午夜福利视频| 综合激情五月婷婷| 天天操人人射| 青娱乐免费视频| 久久av片| 专区无日本视频高清8| 日韩人妻中文字幕| 久久精彩| 69成人精品| 国内自拍偷拍视频| 先锋影音麻豆| 青娱乐成人| 看一级黄色毛片| 三级片男人天堂| 欧洲AV在线| 婷婷色色网| 91站街农村熟女露脸| 欧美日韩视频一区二区三区| 国产在线色视频| 久久国产免费视频| 亚洲av免费在线| 五月天无码视频| 另类老妇性BBBWBBW| 久久久久久亚洲AV黄床| 人人人人人人人人操| 一级全黄120分钟免费| 亚洲人成在线观看| A级黄色网| 欧美性生交18XXXXX无码| 最近中文字幕免费mv第一季歌词大全 | 日韩天天干| 国产精选在线| 九九色热| 久久免费视频播放| 国产欧美日韩在线| 正在播放无码| 人妻斩り43歳| 欧美性爱一区二区三区| 啪啪啪网站| 尹人大香蕉网| 男人的天堂手机在线| 黑人丰满大荫蒂| 色偷偷综合| 国产小视频在线免费观看| 日韩免费看| 国产高清视频在线| 97av在线| 久草视频免费看| 欧美人妻视频| 色色色成人视频| www亚洲视频| 黄色福利在线观看| а√天堂中文最新版8| 中文无码一区二区三区四区| 91小视频| 青操av| 人人看人人澡| 大鸡吧在线视频| 黄色片免费视频网站| 成人精品一区日本无码网站suv| 免费看一级A片| 美女网站黄a| 三级毛片在线| 亚洲天堂精品在线观看| 三上悠亚一区二区| jlzzzjlzzz国产免费观看| 国产精品黄色电影| 韩国三级AV| 国产亲子乱XXXXimim/| 丰满欧美熟妇免费视频| 亚洲日本一区二区三区| 日韩AV无码专区亚洲AV| 日本一级婬片A片AAA毛多多| 亚洲日本中文字幕在线观看| 岛国av免费看| 伊人青草视频9| 一本加勒比HEZYO东京热无码| 在线观看黄色av| 精品无码一区二区三区四区五区| 91精品国产乱码香蕉黄瓜草莓| 国产黄色网| 香蕉中文在线| 一区二区三区四区免费观看 | 精品成人电影| 中文无码毛片| 日韩欧美视频一区| 无码伦理电影| 自拍偷拍一区二区| 国产熟妇码视频黑料| www,色婷婷| 蜜桃久久99精品久久久酒店| 美女福利导航| 五十路AV| 五月丁香在线播放| 三级片日韩| 北条麻妃99精彩视频| 日本韩国无码视频| 一区不卡| 国产精品国产三级囯产普通话2 | 亚洲黄色在线免费观看| 欧美一级网| 久久婷婷无码视频| 欧美精产国品一区二区区别| 人妻无码一区二区三区免费| 亚洲一级视频在线观看| 国产精品视频在线观看| 91国内精品视频| 免费一级A片| 日韩中文字幕网| 日韩视频一区| 超碰人妻97| 国产熟妇码视频户外直播| 久久午夜无码鲁丝片主演是谁| 在线视频中文字幕| AV偷拍| 丁香五月综合| 91麻豆精品无码人妻| 无码一二区| 久久偷看各类wc女厕嘘嘘偷窃| 九九成人| 国产乱子伦一区二区三区在线观看| 日韩成人电影| 欧洲第一无人区观看| 被男友内S~高H文| AV无码在线免费观看| 国产一区亚洲| 久久久人妻| 国产成人精品国内自产拍免费看| 亚洲有码在线| 精品一区二区免费视频| 国产a片| 免费AV影片| 国产在线观看免费成人视频| 久久久久久久久久国产| 天天色区| 在线免费观看黄色小视频| 亚洲精品无码中文| 97久久精品国产熟妇高清网| 国产精品久久毛片| 欧美色性乐汇操日本娘们| 中文无码日本一级A片人| 色五月婷婷丁香五月| 91人妻论坛| 97人妻精品一区二区三区软件| 九九热只有精品| 亚洲片在线观看| AV1区二区| 久草免费在线视频| 成人美女视频| 91成人免费电影片| 精品九九九九| 中文字幕VA| 成人网站视频在线免费观看| 自拍av在线| 黄色无码在线观看| 日韩顶级毛片| 蜜桃视频网站18| 中文无码一区二区三区四区| 国产三级黄色AV| 亚洲天堂男人| 粉嫩av一区二区白浆| 九九草在线视频| 黄色片A片| 91久久精品无码一区| 亚洲国产av电影| 韩日一级片| 国产精品乱子伦视频一区二区| 自慰一区二区| 巨い巨乳の少妇あジed2k| 精品乱子伦一区二区三区免费播放 | 狠狠狠狠狠狠狠狠狠狠| 日本一级按摩片免费观看| 成人h在线观看| 丰满人妻| 91麻豆精品91久久久久同性| 欧美一级特黄A片免费看视频小说 东北嫖老熟女一区二区视频网站 国产丨熟女丨国产熟女视频 | 亚洲无码精品一区| 色五月婷婷小说| 日韩欧美综合| 在线91| 青青草日逼视频| 围内精品久久久久久久久白丝制服 | 99re欧美激情| 天天撸在线视频| 久久久久久久成人| 99精品国产热久久91色欲| 亚洲一区中文字幕成人在线| 午夜成人在线观看| 成人午夜在线视频| 曰曰干| 国内成人自拍| 一夲道无码专区av无码A片| jizz在线观看| 九九九欧美| 永久免费叼嘿| 欧美操女人| 在线观看黄色视频网站| 午夜成人网站| 男人天堂新地址| 动漫人物插画动漫人物的视频软件| 风情万种AV| 色老板在线观看永久免费视频| 五月在线视频| 亚洲情热| 国内自拍欧美| 四季AV一区二区凹凸懂色桃花| 男女操逼网站| 国产精品精品| 亚洲色久悠悠| 九九韩剧网最新电视剧免费观看| 日日爱网| 精品无码久久| 人妻人人操| 久久一道本| 靠逼免费视频| 一级黄色电影免费观看| 2024AV在线| 日韩黄色片在线观看| 欧美激情婷婷| 国产激情欧洲在线观看一区二区三区| 成人性爱在线观看| 婷婷午夜精品久久久久久性色AV| 国产日韩一区二区| 五月停亭六月,六月停亭的英语| 国产精品视频在线播放| 操逼网视频| 中文字幕视频一区日日骚| 综合激情网| 97人妻精品一区二区三区| 香蕉91视频| 欧美人妻激情| 91国语又粗又大对白| 日韩中文字幕在线人成网站| 波多野结衣无码一区| 午夜视频免费在线观看| 中文字幕码精品视频网站| 亚洲任你操超碰在线| 成人亚洲| 国产高清视频在线观看| 日日摸日日碰| 四川少扫搡BBBBB搡B| 黄片天堂| 探花视频在线观看| 激情视频免费在线观看| 欧美性爱导航| 国产亲子乱XXXXimim/| 欧美色色视频| 亚洲三级无码在线| 欧美色图俺去了| 69乱伦视频| 91精品国产乱码久久| 友田真希一级婬片A片| 蜜桃传媒在线| 一区二区三区四区日韩| 中国少妇xxx| 手机AV免费| 黄网| 成人性生活影视av| 西西人体大胆ww4444图片| 日韩无码精品AV| 国产69av| 精品人妻一区二区乱码一区二区 | 国产老女人农村HD| AV黑人| 日韩少妇无码| 国产人妻一区二区精选| 日日99| 日本电影一区二区三区|