在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對(duì)Python特征選擇最全面的解答

數(shù)據(jù)分析與開(kāi)發(fā) ? 來(lái)源:開(kāi)源博客 ? 作者:算法進(jìn)階 ? 2021-03-19 16:26 ? 次閱讀

1 特征選擇的目的

機(jī)器學(xué)習(xí)中特征選擇是一個(gè)重要步驟,以篩選出顯著特征、摒棄非顯著特征。這樣做的作用是:

減少特征(避免維度災(zāi)難),提高訓(xùn)練速度,降低運(yùn)算開(kāi)銷;

減少干擾噪聲,降低過(guò)擬合風(fēng)險(xiǎn),提升模型效果;

更少的特征,模型可解釋性更好。

2 特征選擇方法

特征選擇方法一般分為三類:

2.1 過(guò)濾法--特征選擇

通過(guò)計(jì)算特征的缺失率、發(fā)散性、相關(guān)性、信息量、穩(wěn)定性等指標(biāo)對(duì)各個(gè)特征進(jìn)行評(píng)估選擇,常用如缺失情況、單值率、方差驗(yàn)證、pearson相關(guān)系數(shù)、chi2卡方檢驗(yàn)、IV值、信息增益及PSI等方法。

2.1.1 缺失率

通過(guò)分析各特征缺失率,并設(shè)定閾值對(duì)特征進(jìn)行篩選。閾值可以憑經(jīng)驗(yàn)值(如缺失率《0.9)或可觀察樣本各特征整體分布,確定特征分布的異常值作為閾值。

特征缺失率

miss_rate_df = df.isnull().sum().sort_values(ascending=False) / df.shape[0]

2.1.2 發(fā)散性

特征無(wú)發(fā)散性意味著該特征值基本一樣,無(wú)區(qū)分能力。通過(guò)分析特征單個(gè)值的最大占比及方差以評(píng)估特征發(fā)散性情況,并設(shè)定閾值對(duì)特征進(jìn)行篩選。閾值可以憑經(jīng)驗(yàn)值(如單值率《0.9, 方差》0.001)或可觀察樣本各特征整體分布,以特征分布的異常值作為閾值。

分析方差

var_features = df.var().sort_values()

特征單值率

sigle_rate = {}

for var in df.columns:

sigle_rate[var]=(df[var].value_counts().max()/df.shape[0])

2.1.2 相關(guān)性

特征間相關(guān)性高會(huì)浪費(fèi)計(jì)算資源,影響模型的解釋性。特別對(duì)線性模型來(lái)說(shuō),會(huì)導(dǎo)致擬合模型參數(shù)的不穩(wěn)定。常用的分析特征相關(guān)性方法如:

方差膨脹因子VIF:

方差膨脹因子也稱為方差膨脹系數(shù)(Variance Inflation),用于計(jì)算數(shù)值特征間的共線性,一般當(dāng)VIF大于10表示有較高共線性。

from statsmodels.stats.outliers_influence import variance_inflation_factor

截距項(xiàng)

df[‘c’] = 1

name = df.columns

x = np.matrix(df)

VIF_list = [variance_inflation_factor(x,i) for i in range(x.shape[1])]

VIF = pd.DataFrame({‘feature’:name,“VIF”:VIF_list})

person相關(guān)系數(shù):

用于計(jì)算數(shù)值特征兩兩間的相關(guān)性,數(shù)值范圍[-1,1]。

import seaborn as sns

corr_df=df.corr()

熱力圖

sns.heatmap(corr_df)

剔除相關(guān)性系數(shù)高于threshold的corr_drop

threshold = 0.9

upper = corr_df.where(np.triu(np.ones(corr_df.shape), k=1).astype(np.bool))

corr_drop = [column for column in upper.columns if any(upper[column].abs() 》 threshold)]

Chi2檢驗(yàn)

395f0718-888c-11eb-8b86-12bb97331649.png

經(jīng)典的卡方檢驗(yàn)是檢驗(yàn)類別型變量對(duì)類別型變量的相關(guān)性。Sklearn的實(shí)現(xiàn)是通過(guò)矩陣相乘快速得出所有特征的觀測(cè)值和期望值,在計(jì)算出各特征的 χ2 值后排序進(jìn)行選擇。在擴(kuò)大了 chi2 的在連續(xù)型變量適用范圍的同時(shí),也方便了特征選擇。

from sklearn.datasets import load_iris

from sklearn.feature_selection import SelectKBest

from sklearn.feature_selection import chi2

x, y = load_iris(return_X_y=True)

x_new = SelectKBest(chi2, k=2).fit_transform(x, y)

2.1.3 信息量

分類任務(wù)中,可以通過(guò)計(jì)算某個(gè)特征對(duì)于分類這樣的事件到底有多大信息量貢獻(xiàn),然后特征選擇信息量貢獻(xiàn)大的特征。常用的方法有計(jì)算IV值、信息增益。

信息增益

如目標(biāo)變量D的信息熵為 H(D),而D在特征A條件下的條件熵為 H(D|A),那么信息增益 G(D , A) 為:

398ea68a-888c-11eb-8b86-12bb97331649.png

信息增益(互信息)的大小即代表特征A的信息貢獻(xiàn)程度。

from sklearn.feature_selection import mutual_info_classif

from sklearn.datasets import load_iris

x, y = load_iris(return_X_y=True)

mutual_info_classif(x,y)

IV

IV值(Information Value),在風(fēng)控領(lǐng)域是一個(gè)重要的信息量指標(biāo),衡量了某個(gè)特征(連續(xù)型變量需要先離散化)對(duì)目標(biāo)變量的影響程度。其基本思想是根據(jù)該特征所命中黑白樣本的比率與總黑白樣本的比率,來(lái)對(duì)比和計(jì)算其關(guān)聯(lián)程度?!綠ithub代碼鏈接】

2.1.4 穩(wěn)定性

對(duì)大部分?jǐn)?shù)據(jù)挖掘場(chǎng)景,特別是風(fēng)控領(lǐng)域,很關(guān)注特征分布的穩(wěn)定性,其直接影響到模型使用周期的穩(wěn)定性。常用的是PSI(Population Stability Index,群體穩(wěn)定性指標(biāo))。

PSI

PSI表示的是實(shí)際與預(yù)期分布的差異,SUM( (實(shí)際占比 - 預(yù)期占比)* ln(實(shí)際占比 / 預(yù)期占比) )。

3a17fa34-888c-11eb-8b86-12bb97331649.png

在建模時(shí)通常以訓(xùn)練樣本(In the Sample, INS)作為預(yù)期分布,而驗(yàn)證樣本作為實(shí)際分布。驗(yàn)證樣本一般包括樣本外(Out of Sample,OOS)和跨時(shí)間樣本(Out of Time,OOT)【Github代碼鏈接】

2.2 嵌入法--特征選擇

嵌入法是直接使用模型訓(xùn)練得到特征重要性,在模型訓(xùn)練同時(shí)進(jìn)行特征選擇。通過(guò)模型得到各個(gè)特征的權(quán)值系數(shù),根據(jù)權(quán)值系數(shù)從大到小來(lái)選擇特征。常用如基于L1正則項(xiàng)的邏輯回歸、Lighgbm特征重要性選擇特征。

基于L1正則項(xiàng)的邏輯回歸

L1正則方法具有稀疏解的特性,直觀從二維解空間來(lái)看L1-ball 為正方形,在頂點(diǎn)處時(shí)(如W2=C, W1=0的稀疏解),更容易達(dá)到最優(yōu)解??梢?jiàn)基于L1正則方法的會(huì)趨向于產(chǎn)生少量的特征,而其他的特征都為0。

from sklearn.feature_selection import SelectFromModel

from sklearn.linear_model import LogisticRegression

x_new = SelectFromModel(LogisticRegression(penalty=“l(fā)1”, C=0.1)).fit_transform(x, y)

基于樹(shù)模型的特征排序

基于決策樹(shù)的樹(shù)模型(隨機(jī)森林,Lightgbm,Xgboost等),樹(shù)生長(zhǎng)過(guò)程中也是啟發(fā)式搜索特征子集的過(guò)程,可以直接用訓(xùn)練后模型來(lái)輸出特征重要性。

import matplotlib.pyplot as plt

from lightgbm import plot_importance

from lightgbm import LGBMClassifier

model = LGBMClassifier()

model.fit(x, y)

plot_importance(model, max_num_features=20, figsize=(10,5),importance_type=‘split’)

plt.show()

feature_importance = pd.DataFrame({

‘feature’: model.booster_.feature_name(),

‘gain’: model.booster_.feature_importance(‘gain’),

‘split’: model.booster_.feature_importance(‘split’)

}).sort_values(‘gain’,ascending=False)

當(dāng)特征數(shù)量多時(shí),對(duì)于輸出的特征重要性,通常可以按照重要性的拐點(diǎn)劃定下閾值選擇特征。

2.3 包裝法--特征選擇

包裝法是通過(guò)每次選擇部分特征迭代訓(xùn)練模型,根據(jù)模型預(yù)測(cè)效果評(píng)分選擇特征的去留。一般包括產(chǎn)生過(guò)程,評(píng)價(jià)函數(shù),停止準(zhǔn)則,驗(yàn)證過(guò)程,這4個(gè)部分。

(1) 產(chǎn)生過(guò)程( Generation Procedure )是搜索特征子集的過(guò)程,首先從特征全集中產(chǎn)生出一個(gè)特征子集。搜索方式有完全搜索(如廣度優(yōu)先搜索、定向搜索)、啟發(fā)式搜索(如雙向搜索、后向選擇)、隨機(jī)搜索(如隨機(jī)子集選擇、模擬退火、遺傳算法)。(2) 評(píng)價(jià)函數(shù)( Evaluation Function ) 是評(píng)價(jià)一個(gè)特征子集好壞程度的一個(gè)準(zhǔn)則。(3) 停止準(zhǔn)則( Stopping Criterion )停止準(zhǔn)則是與評(píng)價(jià)函數(shù)相關(guān)的,一般是一個(gè)閾值,當(dāng)評(píng)價(jià)函數(shù)值達(dá)到這個(gè)閾值后就可停止搜索。(4) 驗(yàn)證過(guò)程( Validation Procedure )是在驗(yàn)證數(shù)據(jù)集上驗(yàn)證選出來(lái)的特征子集的實(shí)際效果。

首先從特征全集中產(chǎn)生出一個(gè)特征子集,然后用評(píng)價(jià)函數(shù)對(duì)該特征子集進(jìn)行評(píng)價(jià),評(píng)價(jià)的結(jié)果與停止準(zhǔn)則進(jìn)行比較,若評(píng)價(jià)結(jié)果比停止準(zhǔn)則好就停止,否則就繼續(xù)產(chǎn)生下一組特征子集,繼續(xù)進(jìn)行特征選擇。最后選出來(lái)的特征子集一般還要驗(yàn)證其實(shí)際效果。

RFE

RFE遞歸特征消除是常見(jiàn)的特征選擇方法。原理是遞歸地在剩余的特征上構(gòu)建模型,使用模型判斷各特征的貢獻(xiàn)并排序后做特征選擇。

from sklearn.feature_selection import RFE

rfe = RFE(estimator,n_features_to_select,step)

rfe = rfe.fit(x, y)

print(rfe.support_)

print(rfe.ranking_)

雙向搜索特征選擇

鑒于RFE僅是后向迭代的方法,容易陷入局部最優(yōu),而且不支持Lightgbm等模型自動(dòng)處理缺失值/類別型特征,便基于啟發(fā)式雙向搜索及模擬退火算法思想,簡(jiǎn)單碼了一個(gè)特征選擇的方法【Github代碼鏈接】,如下代碼:

“”“

Author: 公眾號(hào)-算法進(jìn)階

基于啟發(fā)式雙向搜索及模擬退火的特征選擇方法。

”“”

import pandas as pd

import random

from sklearn.metrics import precision_score, recall_score, f1_score, accuracy_score, roc_curve, auc

def model_metrics(model, x, y, pos_label=1):

“”“

評(píng)價(jià)函數(shù)

”“”

yhat = model.predict(x)

yprob = model.predict_proba(x)[:,1]

fpr, tpr, _ = roc_curve(y, yprob, pos_label=pos_label)

result = {‘a(chǎn)ccuracy_score’:accuracy_score(y, yhat),

‘f1_score_macro’: f1_score(y, yhat, average = “macro”),

‘precision’:precision_score(y, yhat,average=“macro”),

‘recall’:recall_score(y, yhat,average=“macro”),

‘a(chǎn)uc’:auc(fpr,tpr),

‘ks’: max(abs(tpr-fpr))

}

return result

def bidirectional_selection(model, x_train, y_train, x_test, y_test, annealing=True, anneal_rate=0.1, iters=10,best_metrics=0,

metrics=‘a(chǎn)uc’,threshold_in=0.0001, threshold_out=0.0001,early_stop=True,

verbose=True):

“”“

model 選擇的模型

annealing 模擬退火算法

threshold_in 特征入模的》閾值

threshold_out 特征剔除的《閾值

”“”

included = []

best_metrics = best_metrics

for i in range(iters):

# forward step

print(“iters”, i)

changed = False

excluded = list(set(x_train.columns) - set(included))

random.shuffle(excluded)

for new_column in excluded:

model.fit(x_train[included+[new_column]], y_train)

latest_metrics = model_metrics(model, x_test[included+[new_column]], y_test)[metrics]

if latest_metrics - best_metrics 》 threshold_in:

included.append(new_column)

change = True

if verbose:

print (‘Add {} with metrics gain {:.6}’.format(new_column,latest_metrics-best_metrics))

best_metrics = latest_metrics

elif annealing:

if random.randint(0, iters) 《= iters * anneal_rate:

included.append(new_column)

if verbose:

print (‘Annealing Add {} with metrics gain {:.6}’.format(new_column,latest_metrics-best_metrics))

# backward step

random.shuffle(included)

for new_column in included:

included.remove(new_column)

model.fit(x_train[included], y_train)

latest_metrics = model_metrics(model, x_test[included], y_test)[metrics]

if latest_metrics - best_metrics 《 threshold_out:

included.append(new_column)

else:

changed = True

best_metrics= latest_metrics

if verbose:

print(‘Drop{} with metrics gain {:.6}’.format(new_column,latest_metrics-best_metrics))

if not changed and early_stop:

break

return included

#示例

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y)

model = LGBMClassifier()

included = bidirectional_selection(model, x_train, y_train, x_test, y_test, annealing=True, iters=50,best_metrics=0.5,

metrics=‘a(chǎn)uc’,threshold_in=0.0001, threshold_out=0,

early_stop=False,verbose=True)

- EOF -
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8492

    瀏覽量

    134122
  • 特征選擇
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7263

原文標(biāo)題:Python特征選擇(全)

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電流檢測(cè)放大器的全面指南:常見(jiàn)問(wèn)題與解答

    電流檢測(cè)放大器(CurrentSenseOPA)常用于電子電路上,盡管看似簡(jiǎn)單,但其設(shè)計(jì)和應(yīng)用中涉及許多需要注意的參數(shù)。本文將針對(duì)工程師在使用電流檢測(cè)放大器時(shí)的常見(jiàn)問(wèn)題進(jìn)行解答,幫助您更好地選擇
    的頭像 發(fā)表于 03-28 08:31 ?459次閱讀
    電流檢測(cè)放大器的<b class='flag-5'>全面</b>指南:常見(jiàn)問(wèn)題與<b class='flag-5'>解答</b>

    最全面的EMC設(shè)計(jì)經(jīng)驗(yàn),強(qiáng)烈推薦大家看看.

    文件過(guò)大,需要完整版資料可下載附件查看哦!
    發(fā)表于 03-22 15:01

    TomTom交通指數(shù)2025發(fā)布

    TomTom發(fā)布了迄今為止最全面的交通指數(shù),提供了涵蓋62個(gè)國(guó)家500個(gè)城市的洞察。
    的頭像 發(fā)表于 02-06 09:05 ?790次閱讀

    Python Connector for InterBase連接解決方案

    ,以對(duì)存儲(chǔ)的數(shù)據(jù)執(zhí)行創(chuàng)建、讀取、更新和刪除操作。該解決方案完全符合 Python DB API 2.0 規(guī)范,并作為 Windows、macOS 和 Linux 的 wheel 包分發(fā)。 特征 高性能
    的頭像 發(fā)表于 01-22 14:34 ?366次閱讀

    請(qǐng)問(wèn)使用AFE4400SPO2EVM測(cè)試完之后,GUI里面的數(shù)據(jù)如何作為原始數(shù)據(jù)導(dǎo)入到python操作界面里呢?

    請(qǐng)問(wèn)使用AFE4400SPO2EVM測(cè)試完之后,GUI里面的數(shù)據(jù)如何作為原始數(shù)據(jù)導(dǎo)入到python操作界面里呢?
    發(fā)表于 01-03 07:38

    TFPxxx常見(jiàn)問(wèn)題解答

    電子發(fā)燒友網(wǎng)站提供《TFPxxx常見(jiàn)問(wèn)題解答.pdf》資料免費(fèi)下載
    發(fā)表于 09-29 09:56 ?0次下載
    TFPxxx常見(jiàn)問(wèn)題<b class='flag-5'>解答</b>

    鐵威馬九款NAS新品震撼上市,全面升級(jí)數(shù)據(jù)存儲(chǔ)體驗(yàn)

    鐵威馬此次新品發(fā)布不僅體現(xiàn)了鐵威馬在技術(shù)創(chuàng)新方面的實(shí)力,也展示了其對(duì)用戶需求的深刻理解。從硬件到軟件,從性能到安全,鐵威馬都致力于為用戶提供最全面、最可靠的數(shù)據(jù)存儲(chǔ)解決方案。相信隨著這九款新品的上市,鐵威馬將在數(shù)據(jù)存儲(chǔ)領(lǐng)域繼續(xù)引領(lǐng)潮流,為用戶帶來(lái)更加便捷、高效的數(shù)據(jù)存儲(chǔ)體
    的頭像 發(fā)表于 09-07 14:38 ?535次閱讀
    鐵威馬九款NAS新品震撼上市,<b class='flag-5'>全面</b>升級(jí)數(shù)據(jù)存儲(chǔ)體驗(yàn)

    如何幫助孩子高效學(xué)習(xí)Python:開(kāi)源硬件實(shí)踐是最優(yōu)選擇

    家長(zhǎng)們常常擔(dān)心孩子在學(xué)習(xí)Python時(shí)所面臨的挑戰(zhàn),如復(fù)雜性、興趣保持、學(xué)習(xí)進(jìn)度和可用資源。對(duì)于希望有效教授孩子Python的家長(zhǎng)而言,了解硬件的作用至關(guān)重要,因?yàn)榻Y(jié)合硬件項(xiàng)目的Python學(xué)習(xí)能夠
    的頭像 發(fā)表于 09-06 09:49 ?598次閱讀

    【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】時(shí)間序列的信息提取

    的穩(wěn)健縮放、時(shí)間序列的標(biāo)準(zhǔn)化。 時(shí)間序列的特征工程、時(shí)間序列的統(tǒng)計(jì)特征、時(shí)間序列的熵特征、時(shí)間序列的降維特征這些小節(jié),涉及到比較多的數(shù)學(xué)公式,包含有概率論與樹(shù)林里統(tǒng)計(jì)、高等數(shù)學(xué)等方
    發(fā)表于 08-17 21:12

    【《時(shí)間序列與機(jī)器學(xué)習(xí)》閱讀體驗(yàn)】+ 時(shí)間序列的信息提取

    、特征的范數(shù)歸一化。每個(gè)定義和命題都給出了證明過(guò)程和示例,示例還提供了Python代碼,方便學(xué)習(xí)。 以下是特征的最小最大縮放的示例數(shù)據(jù)和代碼: 由于我的本子有Python運(yùn)行環(huán)境,
    發(fā)表于 08-14 18:00

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語(yǔ)言之一。Python的易學(xué)易用、豐富的庫(kù)和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語(yǔ)言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?3094次閱讀

    最全開(kāi)關(guān)電源傳導(dǎo)與輻射超標(biāo)整改方案

    電子發(fā)燒友網(wǎng)站提供《最全開(kāi)關(guān)電源傳導(dǎo)與輻射超標(biāo)整改方案.pdf》資料免費(fèi)下載
    發(fā)表于 07-23 12:31 ?22次下載

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?1939次閱讀

    用pycharm進(jìn)行python爬蟲(chóng)的步驟

    提供了許多有用的功能,如代碼自動(dòng)完成、調(diào)試和版本控制等。您可以從JetBrains的官方網(wǎng)站下載PyCharm,并根據(jù)您的需求選擇免費(fèi)社區(qū)版或付費(fèi)專業(yè)版。 創(chuàng)建一個(gè)新的Python項(xiàng)目 打開(kāi)
    的頭像 發(fā)表于 07-11 10:11 ?1342次閱讀

    esp32啟用ble后用自己的iOS app能夠發(fā)現(xiàn)service,但沒(méi)有發(fā)現(xiàn)service里面的特征,為什么?

    esp32,啟用ble后用自己的iOS app能夠發(fā)現(xiàn)service,但沒(méi)有發(fā)現(xiàn)service里面的特征,在創(chuàng)建服務(wù)或特征的時(shí)候需要進(jìn)行什么特別的設(shè)置嗎?
    發(fā)表于 06-13 06:24
    主站蜘蛛池模板: 又粗又长又爽又长黄免费视频 | 国产高清小视频 | 天堂ww| 韩国理论三级在线观看视频 | 国产成人综合一区人人 | 欧美视频一区二区三区在线观看 | 中文一区二区在线观看 | 欧美色88 | 91大神在线观看精品一区 | 成人黄色一级片 | 高清一级 | 久久婷婷五综合一区二区 | 综合色久七七综合七七蜜芽 | 亚洲乱码一区二区三区在线观看 | 中国一级特黄aa毛片大片 | 香蕉久久久久久狠狠色 | 一及黄色| 又粗又大撑满了好爽 | 国产婷婷综合在线精品尤物 | 免费一区二区视频 | 在线黄视频 | 俺也来俺也去俺也射 | 色视频在线观看网站 | 亚洲人成电影在线小说网色 | 免费观看高清视频 | 欧美精品高清在线xxxx | 操美女在线看 | 亚洲精品色一区色二区色三区 | 日本一区二区三区欧美在线观看 | 欧美日韩乱国产 | 2021最新国产成人精品视频 | 日韩在线三级视频 | 999影院成 人在线影院 | 国产小视频在线免费 | 欧美精品 在线播放 | 天天摸日日碰天天看免费 | 插插操操 | 国产91丝袜在线播放九色 | 欧美性三级 | 最近在线观看免费完整视频 | 2017天天操 |