亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

NBA比賽結(jié)果預(yù)測:從數(shù)據(jù)獲取到模型調(diào)參的完整Python機器學(xué)習(xí)實戰(zhàn)指南

NBA比賽結(jié)果預(yù)測:從數(shù)據(jù)獲取到模型調(diào)參的完整Python機器學(xué)習(xí)實戰(zhàn)指南 簡介面向Python課程設(shè)計與機器學(xué)習(xí)實踐場景這份資源以美職籃NBA比賽數(shù)據(jù)為切入點實現(xiàn)了從爬蟲采集、數(shù)據(jù)清洗到智能預(yù)測的比賽結(jié)果分析流程。項目取材真實賽季數(shù)據(jù)涵蓋球隊場均統(tǒng)計、對手數(shù)據(jù)、賽程安排與歷史交鋒結(jié)果等多維信息適合高校學(xué)生用于學(xué)期答辯、大作業(yè)或課程設(shè)計展示也適合希望快速上手數(shù)據(jù)采集與建模的初學(xué)者參考。壓縮包共有十一個文件以六個數(shù)據(jù)文件、四個腳本文件和一個說明文檔為主整體大小約三百一十一KB。其中數(shù)據(jù)文件分別存放球隊常規(guī)賽統(tǒng)計、對手常規(guī)賽統(tǒng)計、歷史賽程與比賽結(jié)果腳本文件覆蓋爬蟲抓取與機器學(xué)習(xí)模型訓(xùn)練及預(yù)測說明文檔則整理了項目背景、設(shè)計思路、模塊劃分和運行步驟。該方案曾獲學(xué)期優(yōu)秀項目評選代碼結(jié)構(gòu)清晰、數(shù)據(jù)資料齊備可直接運行復(fù)現(xiàn)預(yù)測結(jié)果也便于后續(xù)擴展算法或更換數(shù)據(jù)源。目前已有一千四百六十二人學(xué)習(xí)是完成課程設(shè)計或入門賽事數(shù)據(jù)分析的實用資源。1. 把NBA比賽結(jié)果預(yù)測當(dāng)課程設(shè)計為什么說這是新手最友好的機器學(xué)習(xí)項目NBA比賽結(jié)果預(yù)測是Python課程設(shè)計里少有的數(shù)據(jù)、算法、業(yè)務(wù)三頭都占的實戰(zhàn)選題。它不需要深度學(xué)習(xí)傳統(tǒng)機器學(xué)習(xí)模型就能把準確率做到60%以上但數(shù)據(jù)獲取、特征構(gòu)造、評估方式到處是坑足夠你學(xué)到東西。在機器學(xué)習(xí)實戰(zhàn)項目案例里這個題目的好處是入門順滑、天花板也夠高。很多同學(xué)做完后發(fā)現(xiàn)真正決定成績的不是模型多高級而是數(shù)據(jù)預(yù)處理和特征工程做沒做干凈。這個題目恰好能把Python爬蟲、pandas數(shù)據(jù)處理、scikit-learn建模和可視化完整串一遍非常適合剛?cè)腴T機器學(xué)習(xí)、想補機器學(xué)習(xí)基礎(chǔ)、又想做真實項目的初學(xué)者。NBA比賽數(shù)據(jù)完全公開免費接口無需注冊比申請權(quán)限的數(shù)據(jù)集友好得多。下文方案基于nba_api加pandas加scikit-learn的經(jīng)典組合全程本地跑通不需要GPU每段代碼都附參數(shù)說明和踩坑記錄。2. 獲取NBA比賽數(shù)據(jù)nba_api 拉取與本地落地的完整方案2.1 選型理由為什么第一選擇是 nba_api 而不是現(xiàn)成CSV先說結(jié)論課程設(shè)計階段直接用 nba_api 這個第三方庫拉數(shù)據(jù)比去 Kaggle 下載現(xiàn)成 CSV 更值得做。原因有三個。第一現(xiàn)成 CSV 的截止日期是固定的你拿到手的可能是上個賽季的數(shù)據(jù)沒法覆蓋最新比賽。課程設(shè)計答辯時老師大概率會問你這套流程能不能預(yù)測明天的比賽如果你用的是一份去年的靜態(tài)數(shù)據(jù)這個問題會非常尷尬。用接口拉數(shù)據(jù)代碼一跑就是最新賽程。第二拉數(shù)據(jù)的過程本身就是評分點。Python課程設(shè)計的評分標準里通常有工作量這一項能展示一個從網(wǎng)絡(luò)獲取數(shù)據(jù)的完整環(huán)節(jié)比單純讀CSV文件的工作量要扎實得多。你可以順帶在文檔里寫清楚請求流程、解析邏輯和異常處理體現(xiàn)的是從爬取到存儲的完整閉環(huán)。第三nba_api 封裝的是 NBA 官網(wǎng) stats.nba.com 的公開接口免費、無需注冊、無需API key對校園網(wǎng)絡(luò)環(huán)境也比較友好。相比去爬第三方統(tǒng)計網(wǎng)站官方接口的可靠性要高不少也不會遇到網(wǎng)站改版導(dǎo)致解析規(guī)則失效的問題。當(dāng)然nba_api 有個前提你得先把Python環(huán)境裝好。給新手的建議是直接用 Anaconda 裝 Python 3.x然后把 conda 和 pip 的默認源都切成國內(nèi)鏡像裝包速度會快很多。裝完在終端里跑 python --version 確認版本再 pip install nba_api pandas scikit-learn xgboost matplotlib機器學(xué)習(xí)常用包就這么齊了。如果你用 vscode 寫代碼記得在右下角把解釋器切成 conda 環(huán)境不然容易遇到終端里能 import、vscode 里 import 報錯的經(jīng)典問題。2.2 最小可用代碼拉取近五個賽季的常規(guī)賽日程與比分nba_api 的核心用法是先構(gòu)造一個端點對象再調(diào)它的 get_data_frames() 方法拿回 DataFrame。最常見的入口是 leaguegamefinder它返回每一支球隊在指定范圍內(nèi)的所有歷史比賽記錄每條記錄是一行包含球隊、對手、比分、主客場、賽季、比賽日期等幾十個字段。下面這段代碼拉取近五個賽季所有常規(guī)賽的比賽日程和最終比分import pandas as pd from nba_api.stats.endpoints import leaguegamefinder def fetch_games(season_start2020, season_end2024): frames [] for season in range(season_start, season_end 1): # 每個賽季單獨拉取避免單次請求數(shù)據(jù)量過大被接口限流 season_str f{season}-{str(season 1)[-2:]} finder leaguegamefinder.LeagueGameFinder( season_nullableseason_str, season_type_nullableRegular Season ) df finder.get_data_frames()[0] frames.append(df) print(f賽季 {season_str} 拉取完成{df.shape[0]} 行) result pd.concat(frames, ignore_indexTrue) return result games fetch_games() games.to_csv(nba_games_raw.csv, indexFalse) print(games.shape)這段代碼的邏輯很直接循環(huán)遍歷每一個賽季構(gòu)造 LeagueGameFinder 請求對象用 get_data_frames() 把響應(yīng)解析成 DataFrame最后合并保存為CSV。幾個參數(shù)要說明參數(shù)取值示例含義season_nullable2020-21賽季字符串格式必須是帶橫杠的2020-21season_type_nullableRegular Season賽事類型常規(guī)賽季后賽填 Playoffsleague_id_nullable00默認就是NBA一般不用動timeout30單個請求的最大等待秒數(shù)防卡死注意一個重要細節(jié)leaguegamefinder 返回的是球隊視角的數(shù)據(jù)也就是說一場比賽會出現(xiàn)兩行——主隊一行、客隊一行。字段里 matchup 列能看出是 ATL vs BOS 還是 BOS ATL 表示客場。做特征工程之前必須先按 GAME_ID 去重或配對這個后面特征章節(jié)會細說。接口返回的字段里GAME_ID 是比賽唯一標識GAME_DATE 是比賽日期字符串TEAM_ID 是球隊IDPTS 是這支球隊本場得分PLUS_MINUS 是凈勝分FG_PCT 是投籃命中率REB、AST、TOV 分別是籃板、助攻、失誤。一次拉五個賽季的數(shù)據(jù)量在一萬行上下完整跑完大約一到兩分鐘速度完全可以接受。2.3 數(shù)據(jù)落地CSV 與 SQLite 怎么選數(shù)據(jù)落地方式我一般分兩種情況。如果只是課程設(shè)計數(shù)據(jù)量在幾萬行以內(nèi)直接存CSV就夠了老師拷貝你的代碼和CSV文件就能復(fù)現(xiàn)。如果你打算長期維護、每周更新數(shù)據(jù)或者想在文檔里體現(xiàn)一點數(shù)據(jù)庫能力用 SQLite 更合適零配置、單文件、Python 內(nèi)置 sqlite3 即可讀寫不用額外裝 MySQL。存CSV時有一個坑nba_api 返回的某些列含有特殊字符直接用默認 to_csv 沒問題但用 Excel 打開中文列名可能出現(xiàn)亂碼。保存時我習(xí)慣把編碼指定為 utf-8-sig這樣 Excel 雙擊打開也不會亂碼讀取時如果遇到解析錯誤大概率是某行數(shù)據(jù)里有多余的逗號或引號用 on_bad_linesskip 就能兜底。如果你選 SQLite建表時不要照搬所有列挑實際會用到的字段建表就行。下面這段代碼把數(shù)據(jù)寫入 SQLite并給 game_id 和 team_id 建了聯(lián)合唯一索引import sqlite3 conn sqlite3.connect(nba_games.db) cur conn.cursor() # 建表只保留特征工程會用到的核心字段 cur.execute( CREATE TABLE IF NOT EXISTS games ( game_id TEXT, team_id INTEGER, team_abbreviation TEXT, matchup TEXT, game_date TEXT, pts INTEGER, plus_minus INTEGER, home_away TEXT, season TEXT, PRIMARY KEY (game_id, team_id) ) ) # 寫入前先重命名列為干凈的小寫格式 columns [GAME_ID, TEAM_ID, TEAM_ABBREVIATION, MATCHUP, GAME_DATE, PTS, PLUS_MINUS, HOME_AWAY, SEASON] games[columns].to_sql( games, conn, if_existsreplace, indexFalse) conn.commit() conn.close() print(SQLite 寫入完成)這里用 PRIMARY KEY (game_id, team_id) 做聯(lián)合主鍵能防止重復(fù)拉取時插入重復(fù)數(shù)據(jù)。后續(xù)做增量更新時可以先查詢當(dāng)前庫里最大的 game_date只拉那之后的比賽再把新數(shù)據(jù)以 if_existsappend 追加進去不用每次全量重跑。to_sql 是 pandas 自帶的數(shù)據(jù)庫寫入方法很適合新手需要注意 DataFrame 列名如果有空格或特殊符號建表時會很麻煩所以寫入前先重命名成干凈的小寫列名最省事。2.4 請求頻率與異常處理限速、超時和重試nba_api 雖然封裝得不錯但底層還是去請求 stats.nba.com 的 HTTP 接口。如果把它當(dāng)成隨便調(diào)的接口連續(xù)快速請求幾十次就會收到 429 狀態(tài)碼也就是請求過于頻繁被限流。這不是封IP但會讓循環(huán)中斷。我的經(jīng)驗是兩個約束同時加一是每次請求之間 sleep 至少 0.5 到 1 秒二是設(shè)置超時和重試機制遇到 429 或 5xx 錯誤就等幾秒再重試。下面是一段加了重試邏輯的拉取函數(shù)import time import requests from nba_api.stats.endpoints import leaguegamefinder def fetch_with_retry(season_str, max_retries4): for attempt in range(max_retries): try: finder leaguegamefinder.LeagueGameFinder( season_nullableseason_str, season_type_nullableRegular Season, timeout30 ) return finder.get_data_frames()[0] except requests.exceptions.HTTPError as e: # 429是限流5xx是接口臨時出錯都值得重試 wait 2 ** attempt 1 print(f請求失敗({e}){wait}秒后重試) time.sleep(wait) raise RuntimeError(f賽季 {season_str} 拉取失敗) for season in range(2020, 2025): season_str f{season}-{str(season 1)[-2:]} df fetch_with_retry(season_str) time.sleep(1.0)幾個細節(jié)說明。timeout30 表示單個請求最多等30秒防止網(wǎng)絡(luò)卡死導(dǎo)致程序掛在那里。重試的等待時間用 2^n 1 這種指數(shù)退避第一次失敗等3秒第二次等5秒第三次等9秒給服務(wù)端留出恢復(fù)的時間。還有一個容易被忽略的問題有的校園網(wǎng)出口會攔截帶特定 UAUser-Agent的請求。如果發(fā)現(xiàn) nba_api 一直在報連接錯誤或 SSL 錯誤先別急著懷疑代碼檢查一下系統(tǒng)網(wǎng)絡(luò)設(shè)置或者換個網(wǎng)絡(luò)環(huán)境再試一次。遇到存疑的報錯把完整異常棧貼到搜索引擎里按報錯關(guān)鍵詞搜通常比盲改代碼高效得多——這是這個項目里最典型的不確定是代碼問題還是網(wǎng)絡(luò)問題的場景。3. 特征工程決定準確率的不是模型而是這四步數(shù)據(jù)加工3.1 先定預(yù)測目標預(yù)測勝負還是預(yù)測分差動手寫模型之前第一件事是把預(yù)測目標定死。NBA比賽結(jié)果預(yù)測一般有兩種定義方式一是二分類預(yù)測主隊贏還是客隊贏二是回歸預(yù)測分差。課程設(shè)計我建議選二分類理由很實際二分類的評估指標準確率、AUC對新手來說好解釋答辯時一句模型對未知比賽預(yù)測準確率達到62%就夠直觀回歸任務(wù)要考慮分差預(yù)測誤差解釋起來繞而且分差分布離散模型很難學(xué)出有效規(guī)律。如果你非要做回歸也可以把回歸預(yù)測的分差轉(zhuǎn)成勝負標簽比如預(yù)測分差大于0就判主隊勝。這樣做的好處是多一個中間量壞處是誤差會疊加。建議主線做二分類把回歸當(dāng)作補充實驗寫進文檔對比兩種建模方式的結(jié)果這反而是加分項。目標變量生成時有一個新手常犯的錯誤直接把原始數(shù)據(jù)里的 WL勝負字段當(dāng)標簽。還記得前面說過 leaguegamefinder 返回的是球隊視角的數(shù)據(jù)嗎同一場比賽有兩行客隊那行的 WL 是客隊的勝負。如果不做配對直接喂給模型模型就學(xué)到看自己球隊的勝負去預(yù)測自己球隊的勝負這種作弊邏輯。正確的做法是按 GAME_ID 把一場比賽的兩行合并成一行主隊一列、客隊一列標簽是主隊是否獲勝。3.2 滾動均值特征近五場和近十場統(tǒng)計怎么算才不算錯特征工程里最有價值的特征組是兩支球隊各自最近N場比賽的表現(xiàn)統(tǒng)計業(yè)界叫滾動均值rolling average。它背后的假設(shè)很樸素一支球隊近期的進攻效率和防守效率最能反映它下一場可能的發(fā)揮。計算滾動均值最核心的一點只能用比賽日之前的數(shù)據(jù)絕不能用之后的數(shù)據(jù)。舉個例子預(yù)測1月15日的比賽只能用截至1月14日的比賽統(tǒng)計如果1月15日當(dāng)天或之后的比賽混進滾動窗口就造成數(shù)據(jù)泄漏訓(xùn)練準確率虛高好幾個點實戰(zhàn)預(yù)測卻崩盤。實現(xiàn)時先按 TEAM_ID 和 GAME_DATE 排序再對每支球隊單獨算最近5場和最近10場的滾動均值。下面這段代碼是完整實現(xiàn)# 先按球隊和日期排序保證滾動窗口的順序正確 games pd.read_csv(nba_games_raw.csv) games[GAME_DATE] pd.to_datetime(games[GAME_DATE]) games games.sort_values([TEAM_ID, GAME_DATE]).reset_index(dropTrue) # 要計算滾動均值的統(tǒng)計列 stat_cols [PTS, PLUS_MINUS, FG_PCT, REB, AST, TOV] for col in stat_cols: for window in [5, 10]: # 先按球隊分組計算滾動均值 roll ( games.groupby(TEAM_ID)[col] .rolling(window, min_periods1) .mean() .reset_index(level0, dropTrue) ) # shift(1) 把均值整體下移一行 # 讓第k行不再包含第k場自己的數(shù)據(jù)這是防泄漏的關(guān)鍵 games[f{col}_roll{window}] roll.groupby(games[TEAM_ID]).shift(1) print(games[[TEAM_ID, GAME_DATE, PTS, PTS_roll5, PTS_roll10]].head(20))注意沒有 shift(1) 的滾動均值等于把本場比賽的數(shù)據(jù)喂給了本場比賽這是整個項目最隱蔽的數(shù)據(jù)泄漏點務(wù)必檢查。這段代碼有兩個關(guān)鍵點。第一groupby(TEAM_ID).rolling(window).mean() 在分組內(nèi)部計算滾動均值窗口是5場或10場互不干擾。第二shift(1) 是防止數(shù)據(jù)泄漏的心臟它把計算結(jié)果整體下移一行這樣第k行存的是第k-1場及之前窗口內(nèi)的均值當(dāng)前場比賽本身不參與自己的特征計算。為什么 min_periods1 而不是默認的 window因為賽季初的前幾場比賽不夠湊滿窗口。設(shè)成 window 的話賽季前4場的特征全是空值要么刪樣本要么手工填充設(shè)成1表示至少有一場比賽就開始算均值缺點是賽季初期特征偏小、波動大但至少模型有特征可用。認真一點的做法是用上一賽季的均值回填賽季前幾場課程設(shè)計階段不必做這么細。3.3 賽程特征休息天數(shù)、背靠背和主場優(yōu)勢怎么編碼滾動均值之外還有三類特征在NBA預(yù)測里被反復(fù)驗證有效休息天數(shù)、背靠背標記、主場優(yōu)勢。休息天數(shù)指距離上一場比賽隔了多少天。NBA常規(guī)賽幾乎每天都有比賽強隊一個賽季要打多次背靠背連續(xù)兩天比賽球員體能差異會直接影響比賽結(jié)果。計算方式是把同一支球隊的比賽按日期排序然后算相鄰兩場比賽的日期差。背靠背是個0/1標記表示該隊這場比賽的前一天是否也有比賽。注意背靠背還要區(qū)分主客場如果是客場打完再趕去下一個客場影響更大如果是連續(xù)兩個主場影響相對小。課程設(shè)計階段做一版簡化的0/1標記就夠了想認真雕琢可以拆成背靠背且客場和背靠背且主場兩個特征。主場優(yōu)勢是從 matchup 字段里解析出來的包含 表示客場否則是主場。這個特征在模型里通常系數(shù)顯著為正說明主場優(yōu)勢對NBA比賽結(jié)果有真實影響。下面這段代碼把這三類賽程特征一次性生成# 從 matchup 解析主客場包含 表示客場 games[is_home] games[MATCHUP].apply(lambda x: not in x) # 每支球隊的上一場比賽日期用于推算休息天數(shù)和背靠背 games games.sort_values([TEAM_ID, GAME_DATE]) games[prev_game_date] games.groupby(TEAM_ID)[GAME_DATE].shift(1) games[rest_days] (games[GAME_DATE] - games[prev_game_date]).dt.days # 背靠背距離上一場正好1天 games[back_to_back] (games[rest_days] 1).astype(int) # 主隊表和客隊表按 GAME_ID 合并回到比賽視角 home games[games[is_home]].copy() away games[~games[is_home]].copy() merged home.merge( away, onGAME_ID, suffixes(_home, _away) ) print(merged.shape) merged.to_csv(nba_games_features.csv, indexFalse)整體思路是把球隊視角數(shù)據(jù)拆成主隊表和客隊表再按 GAME_ID 合回比賽視角。合并之后每一行就是一場比賽左邊是主隊近期統(tǒng)計右邊是客隊近期統(tǒng)計中間夾著賽程特征。至此特征工程的骨架就搭完了。合并后行數(shù)會變成原來的一半因為每場比賽從兩行合為一行這是正常的。合并完記得檢查有沒有 GAME_ID 重復(fù)——如果接口在某個賽季返回了全明星賽或其他非正式比賽可能出現(xiàn)一對多的匹配需要提前按賽事類型過濾只保留常規(guī)賽記錄。3.4 時間切分為什么隨機打亂訓(xùn)練集相當(dāng)于讓模型作弊這個問題幾乎每個做時序預(yù)測的人都會踩一次用 train_test_split 默認隨機切分訓(xùn)練集里混著后面的比賽測試集里混著前面的比賽。對NBA這種強時序依賴的數(shù)據(jù)隨機切分意味著模型的訓(xùn)練數(shù)據(jù)里包含了未來特征和標簽產(chǎn)生隱性的時間交叉準確率虛高。正確的做法是按時序切分比如用2020到2023賽季的數(shù)據(jù)訓(xùn)練用2024賽季的數(shù)據(jù)測試。train_test_split 不支持直接按時間切但把 shuffleFalse 配合已排序的數(shù)據(jù)即可實現(xiàn)或者干脆手動切片games pd.read_csv(nba_games_features.csv, parse_dates[GAME_DATE_home]) games games.sort_values(GAME_DATE_home).reset_index(dropTrue) split_date 2023-10-24 # 以2023-24賽季揭幕戰(zhàn)為界 train games[games[GAME_DATE_home] split_date] test games[games[GAME_DATE_home] split_date] print(f訓(xùn)練集 {train.shape[0]} 場 f{train[GAME_DATE_home].min().date()} ~ {train[GAME_DATE_home].max().date()}) print(f測試集 {test.shape[0]} 場 f{test[GAME_DATE_home].min().date()} ~ {test[GAME_DATE_home].max().date()})這么切完會發(fā)現(xiàn)測試集在時間上完全晚于訓(xùn)練集模型在測試集上的準確率通常比隨機切分低2到4個百分點這才是真實水平。答辯時主動提一句我沒有用隨機切分而是用了時間切分以避免數(shù)據(jù)泄漏這一句話就能讓評委知道你理解機器學(xué)習(xí)應(yīng)用流程里最關(guān)鍵的細節(jié)。4. 機器學(xué)習(xí)模型選型與調(diào)參從邏輯回歸到XGBoost的三個階梯4.1 基線模型先跑邏輯回歸立住能跑通的版本模型部分我強烈建議先跑邏輯回歸當(dāng)基線不要一上來就上XGBoost。原因有兩個一是邏輯回歸訓(xùn)練快幾秒出結(jié)果適合用來驗證特征管道有沒有問題二是邏輯回歸的系數(shù)可以解釋你能看到哪些特征對預(yù)測結(jié)果影響最大這對寫課程設(shè)計文檔非常有幫助。特征列的準備和標簽列的定義是這一步的關(guān)鍵。以 nba_games_features.csv 為例特征列包括主隊和客隊的滾動均值、休息天數(shù)、背靠背標記。標簽列定義為 home_win表示主隊是否獲勝。import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import StandardScaler from sklearn.metrics import accuracy_score, log_loss games pd.read_csv(nba_games_features.csv, parse_dates[GAME_DATE_home]) games games.sort_values(GAME_DATE_home).reset_index(dropTrue) # 標簽主隊得分大于客隊得分則主勝 games[home_win] (games[PTS_home] games[PTS_away]).astype(int) # 特征列滾動均值 賽程特征 feature_cols [ PTS_roll5_home, PLUS_MINUS_roll5_home, FG_PCT_roll5_home, PTS_roll5_away, PLUS_MINUS_roll5_away, FG_PCT_roll5_away, rest_days_home, rest_days_away, back_to_back_home, back_to_back_away, ] X games[feature_cols] y games[home_win] # 邏輯回歸對特征尺度敏感先標準化 scaler StandardScaler() X_scaled scaler.fit_transform(X) # 時間切分2023-24賽季之前訓(xùn)練之后測試 split_date pd.Timestamp(2023-10-24) train_idx games[GAME_DATE_home] split_date test_idx games[GAME_DATE_home] split_date model LogisticRegression(max_iter1000) model.fit(X_scaled[train_idx], y[train_idx]) y_prob model.predict_proba(X_scaled[test_idx])[:, 1] y_pred (y_prob 0.5).astype(int) print(f邏輯回歸準確率{accuracy_score(y[test_idx], y_pred):.4f}) print(f對數(shù)損失{log_loss(y[test_idx], y_prob):.4f}) # 打印系數(shù)看特征影響方向 coef_df pd.DataFrame({feature: feature_cols, coef: model.coef_[0]}) print(coef_df.sort_values(coef, ascendingFalse))這段代碼里max_iter1000 是因為標準化之后特征數(shù)量不算少默認100次迭代偶爾不收斂調(diào)大一點更穩(wěn)妥。predict_proba 返回二維數(shù)組取第二列就是主勝概率。log_loss 是概率預(yù)測的對數(shù)損失越小說明概率校準越好后面比較模型時比準確率更細膩。跑完你會看到PLUS_MINUS_roll5_home 這類凈勝分滾動均值的系數(shù)通常顯著高于其他特征說明近期凈勝分是預(yù)測比賽結(jié)果最強的單一信號。把基于系數(shù)分析特征重要性寫進課程設(shè)計報告就是一塊拿得出手的內(nèi)容。4.2 樹模型上場隨機森林和XGBoost的參數(shù)怎么設(shè)基線跑通之后下一步換更強的模型。比賽預(yù)測場景里隨機森林和XGBoost是主流選擇。兩者都是樹模型能自動處理特征之間的非線性關(guān)系不需要像邏輯回歸那樣做標準化。代價是模型本身像個黑匣子你很難直接說出每個特征的作用方向。隨機森林的優(yōu)勢是參數(shù)少、不容易過擬合、訓(xùn)練速度快適合作為第一個升級版模型。XGBoost 的準確率通常比隨機森林高零點幾到一兩個百分點但參數(shù)非常多調(diào)起來耗時對新手不友好。建議課程設(shè)計用隨機森林做主線XGBoost 作為進階對比實驗時間緊的話只做隨機森林也完全夠。下面這段代碼同時跑隨機森林和 XGBoostfrom sklearn.ensemble import RandomForestClassifier from xgboost import XGBClassifier # 樹模型不需要標準化直接用原始特征 X_train, X_test X.iloc[train_idx], X.iloc[test_idx] y_train, y_test y[train_idx], y[test_idx] rf RandomForestClassifier( n_estimators300, max_depth6, min_samples_leaf5, random_state42, n_jobs-1 ) rf.fit(X_train, y_train) rf_prob rf.predict_proba(X_test)[:, 1] print(f隨機森林準確率{accuracy_score(y_test, (rf_prob 0.5).astype(int)):.4f}) xgb XGBClassifier( n_estimators300, max_depth4, learning_rate0.05, subsample0.8, colsample_bytree0.8, random_state42, eval_metriclogloss ) xgb.fit(X_train, y_train) xgb_prob xgb.predict_proba(X_test)[:, 1] print(fXGBoost準確率{accuracy_score(y_test, (xgb_prob 0.5).astype(int)):.4f})關(guān)鍵參數(shù)說明如下表模型參數(shù)作用課程設(shè)計推薦值隨機森林n_estimators樹的數(shù)量200~500隨機森林max_depth樹的最大深度防過擬合6~8隨機森林min_samples_leaf葉子節(jié)點最少樣本數(shù)5~10XGBoostlearning_rate學(xué)習(xí)率越小步長越細0.03~0.1XGBoostn_estimators迭代輪數(shù)與學(xué)習(xí)率配合200~500XGBoostsubsample每輪抽樣比例0.7~0.9XGBoostcolsample_bytree每棵樹使用特征比例0.7~0.9隨機森林的 max_depth6 和 min_samples_leaf5 是防過擬合的核心參數(shù)如果訓(xùn)練集只有幾千場樹的深度超過8就很容易把訓(xùn)練集背下來。XGBoost 的 learning_rate0.05 配合 n_estimators300表示以較小步長迭代300輪subsample0.8 每輪抽80%樣本colsample_bytree0.8 每棵樹抽80%特征這兩個參數(shù)能明顯提升泛化能力。另外樹模型的超參數(shù)設(shè)置在一定程度上有玄學(xué)成分不用追求全局最優(yōu)關(guān)鍵是先設(shè)一組合理的默認值跑通再圍繞防過擬合調(diào)深度和樣本量。eval_metriclogloss 是告訴 XGBoost 用對數(shù)損失作為內(nèi)部評估標準。如果你裝的是很老的 XGBoost 版本可能遇到 deprecation 警告不影響運行新版直接不用管。4.3 評估指標怎么選準確率、對數(shù)損失與AUC的分工課程設(shè)計報告里只寫一個準確率數(shù)字很單薄。建議至少同時報告三個指標準確率、對數(shù)損失和AUC它們各自回答不同的問題。準確率最直觀預(yù)測錯誤的場次占比多少但缺點是無法反映概率的可信度。比如模型對某場比賽給出51%的勝率贏了算對、輸了算錯但51%和95%的置信度顯然不一樣。對數(shù)損失就能懲罰這種低置信度錯誤模型在錯誤方向上給出的概率越高懲罰越重。AUC 則是排序能力的度量回答模型給出的概率排序是否合理和具體閾值無關(guān)對樣本不平衡也不太敏感。三者的組合能幫你判斷改進方向。如果準確率還行但 log loss 偏高說明模型對某些比賽過度自信可以降低樹模型深度如果 AUC 明顯高于0.5說明特征和標簽的關(guān)聯(lián)真實存在問題出在閾值設(shè)置可以微調(diào)判定閾值。from sklearn.metrics import roc_auc_score, brier_score_loss for name, prob in [(邏輯回歸, y_prob), (隨機森林, rf_prob), (XGBoost, xgb_prob)]: auc roc_auc_score(y_test, prob) brier brier_score_loss(y_test, prob) acc accuracy_score(y_test, (prob 0.5).astype(int)) print(f{name}: 準確率{acc:.4f}, AUC{auc:.4f}, Brier{brier:.4f})Brier 分數(shù)是概率預(yù)測和真實結(jié)果之間的均方誤差越小越好。答辯時一張表格列出三個模型的準確率、AUC、log loss、Brier就構(gòu)成了一個完整的評估體系。如果想把 Python數(shù)據(jù)分析與可視化 也加進去用 matplotlib 畫一條 ROC 曲線放到報告里能直觀展示三個模型在不同閾值下的表現(xiàn)差異。4.4 分組交叉驗證防止同賽季的比賽同時出現(xiàn)在訓(xùn)練集和驗證集講完評估指標必須講交叉驗證的正確姿勢。很多同學(xué)用 GridSearchCV 調(diào)參時發(fā)現(xiàn)驗證集表現(xiàn)很好一到時間切分的測試集就掉點。原因在于默認的 KFold 是隨機切分的前面也說過隨機切分在時序數(shù)據(jù)上等于讓模型瞥見了未來。正確的做法是 TimeSeriesSplit 或 GroupKFold 按賽季分組。TimeSeriesSplit 每次都拿時間靠前的數(shù)據(jù)做訓(xùn)練、時間靠后的做驗證模擬真實預(yù)測場景。GroupKFold 則保證整個賽季的數(shù)據(jù)在同一折里面避免同賽季比賽被切到訓(xùn)練和驗證兩側(cè)。from sklearn.model_selection import TimeSeriesSplit, cross_val_score from sklearn.ensemble import RandomForestClassifier # 數(shù)據(jù)必須先按時間升序排序TimeSeriesSplit 才有效 games_sorted games.sort_values(GAME_DATE_home).reset_index(dropTrue) X_sorted games_sorted[feature_cols] y_sorted games_sorted[home_win] tscv TimeSeriesSplit(n_splits5) rf RandomForestClassifier(n_estimators200, max_depth6, random_state42, n_jobs-1) scores cross_val_score(rf, X_sorted, y_sorted, cvtscv, scoringaccuracy) print(fTimeSeriesSplit 交叉驗證準確率{scores.mean():.4f} ± {scores.std():.4f})關(guān)鍵點cross_val_score 用 TimeSeriesSplit 時不會自動打亂數(shù)據(jù)你必須確保傳入的 X_sorted 本身按時間升序排好否則切分失去意義。scoringaccuracy 可以換成 scoringroc_auc 評估排序能力。如果想用默認切分快速看一眼指標可以先用 KFold 跑一遍但報告里一定要寫明隨機切分在時序數(shù)據(jù)上的局限。把隨機切分和時間切分的對比寫進課程設(shè)計文檔本身就是很漂亮的實驗設(shè)計。5. 避坑指南NBA預(yù)測項目里最常翻車的五個地方這幾個坑是我自己反復(fù)踩、也幫同學(xué)改這個題目時見得最多的按出現(xiàn)頻率排序照著排查基本能解決大部分問題。5.1 現(xiàn)象拉取數(shù)據(jù)時頻繁報429或連接超時現(xiàn)象循環(huán)拉五個賽季的數(shù)據(jù)拉到第二個賽季就拋 requests.exceptions.HTTPError: 429 Too Many Requests或者程序直接卡住不動。原因nba_api 底層請求的是 NBA 官網(wǎng)接口官網(wǎng)對單IP的請求頻率有限制。課程設(shè)計階段大家常在機房或宿舍網(wǎng)絡(luò)下跑一個出口IP可能有多臺設(shè)備同時請求更容易觸發(fā)限流。另一個隱藏原因是某些版本的 nba_api 默認沒有設(shè)置 User-Agent被官網(wǎng)的防火墻識別成爬蟲直接拒絕。解決一是在每次請求之間加 time.sleep(1)把請求間隔控制在一秒以上二是給請求設(shè)置瀏覽器 UA 和完整的請求頭三是給單次請求設(shè)置 timeout 參數(shù)避免卡死。前面2.4節(jié)的重試代碼可以直接復(fù)用。如果學(xué)校網(wǎng)絡(luò)反復(fù)出問題換手機熱點試一次很多時候是網(wǎng)絡(luò)鏈路的問題而不是代碼的問題。5.2 現(xiàn)象訓(xùn)練準確率高達80%以上一上真實預(yù)測就崩現(xiàn)象訓(xùn)練集準確率能到85%時間切分的測試集也能到65%左右但拿模型去預(yù)測下一周的真實比賽準確率只有50%上下跟猜差不多。原因根子上幾乎全是數(shù)據(jù)泄漏。常見泄漏點有三個滾動均值沒有 shift(1)當(dāng)天的比賽數(shù)據(jù)參與了當(dāng)天特征計算切分沒有按時間隨機切分讓模型在訓(xùn)練時看到了未來第三個最隱蔽——標簽構(gòu)造錯誤或者把比賽結(jié)束后的全場累計統(tǒng)計比如球隊單場籃板、助攻總數(shù)當(dāng)成了特征數(shù)據(jù)和標簽同時來自同一個結(jié)果準確率自然虛高。解決逐一排查。滾動均值必須 shift(1)切分必須用時間切分標簽必須按 GAME_ID 配對后生成主隊勝負特征列里不能出現(xiàn)和比賽同一天生成的統(tǒng)計。排查方法很樸素隨機挑一場已知結(jié)果的比賽手工算它的滾動均值特征和代碼計算值對比看是否嚴格排除了當(dāng)天比賽。在報告里寫一句已人工校驗特征無泄漏很顯專業(yè)。5.3 現(xiàn)象做滾動均值或合并時報索引不對齊現(xiàn)象跑特征工程時報 ValueError: cannot reindex on an axis with duplicate labels或者合并出來的結(jié)果是全 NaN。原因通常是因為 GAME_ID 有重復(fù)或者 rolling 之后 reset_index 的方式不對。一個 GAME_ID 在主客兩行里如果格式不一致一個純數(shù)字一個字符串merge 時會變成笛卡爾積。另外groupby().rolling() 返回的是分組級索引沒有正確 reset 的話會把原始 DataFrame 索引打亂后續(xù)一切按索引對齊的操作都會錯位。解決拿到原始數(shù)據(jù)后先做三件事GAME_ID 統(tǒng)一轉(zhuǎn)成 str檢查并去除重復(fù)行確保 GAME_DATE 已轉(zhuǎn)成 datetime。rolling 計算完統(tǒng)一 reset_index(dropTrue)再做 merge。標準的預(yù)處理開頭長這樣games[GAME_ID] games[GAME_ID].astype(str) games games.drop_duplicates(subset[GAME_ID, TEAM_ID]) games games.sort_values([TEAM_ID, GAME_DATE]).reset_index(dropTrue) assert games.duplicated(subset[GAME_ID, TEAM_ID]).sum() 0 print(數(shù)據(jù)檢查通過無重復(fù)記錄索引已重置)5.4 現(xiàn)象同樣的代碼換臺電腦跑結(jié)果完全不一樣現(xiàn)象自己電腦上準確率62%換到舍友電腦或者答辯電腦上跑變成58%甚至更低或者直接報錯。原因最常見的原因是庫版本不一致。pandas 不同版本的 rolling 行為、sklearn 不同版本的隨機數(shù)、nba_api 不同版本的字段名都會導(dǎo)致差異。特別是 nba_api 更新頻繁字段名或構(gòu)造函數(shù)參數(shù)名可能變化老代碼在新版本下可能直接報錯。另一個原因是數(shù)據(jù)不同——兩次拉取時間不同數(shù)據(jù)里包含的場次數(shù)不一樣特征統(tǒng)計自然有差異。解決寫一個 requirements.txt 把核心依賴版本鎖死文檔里寫明測試環(huán)境。答辯前提前去答辯電腦上把環(huán)境和依賴裝好不要臨場拉數(shù)據(jù)。數(shù)據(jù)方面固定下載日期把原始CSV隨代碼一起提交任何環(huán)境跑的都是同一份數(shù)據(jù)。如果 nba_api 版本過新導(dǎo)致參數(shù)報錯快速定位的方式是打印 dir(leaguegamefinder) 看當(dāng)前支持的參數(shù)名別拿老教程硬套。5.5 現(xiàn)象預(yù)測概率總往0.5收縮看不出觀點現(xiàn)象模型輸出的概率絕大多數(shù)落在0.4到0.6之間很少出現(xiàn)70%以上的判斷看著不夠有觀點。原因這在NBA預(yù)測里是正常現(xiàn)象不是bug?;@球比賽本身隨機性很強主場優(yōu)勢、近期狀態(tài)這些信號只能解釋比賽結(jié)果的一部分方差模型天然學(xué)不到特別強的區(qū)分度。NBA單場兩隊合計得分動輒230分以上一個球員手感爆發(fā)就能改變走勢概率往0.5收縮是信息量的真實反映不是模型壞了。解決不要為了模型有觀點去強行調(diào)閾值或改損失函數(shù)。正確做法是接受這個現(xiàn)實從特征側(cè)找增量——加入球員輪休、傷病名單、球隊連勝連敗狀態(tài)都能小幅拉開概率。還可以建模分差而不是勝負因為連續(xù)量比分立標簽包含更多信息。說到底60%到63%的準確率對這個任務(wù)已經(jīng)是很不錯的水平對比隨機猜測的50%基準這個結(jié)論本身就立得住。6. 進階驗證用滾動回測與概率校準檢驗?zāi)P驼鎸嵥侥P陀?xùn)練完還差最后一環(huán)用一套能反復(fù)執(zhí)行的驗證流程證明模型不是碰運氣。課程設(shè)計里最常說的一句話是模型準確率62%但這個數(shù)字怎么來的、在不同時間段是否穩(wěn)定很多人說不清楚。這一章講兩個進階動作滾動回測和概率校準。滾動回測的思路是模擬真實的預(yù)測節(jié)奏。假設(shè)現(xiàn)在是某個比賽日你有截至前一天的所有數(shù)據(jù)要預(yù)測今天所有比賽的勝負等比賽結(jié)束把預(yù)測和結(jié)果對比記錄命中。把時間軸往前推每周做一次這樣的預(yù)測累積一整個賽季就得到一條真實的準確率曲線。實現(xiàn)上不需要復(fù)雜框架一個 for 循環(huán)就能完成。# 把測試期按周切塊逐周回測 test_games games[games[GAME_DATE_home] split_date].copy() test_games[week] test_games[GAME_DATE_home].dt.isocalendar().week results [] for week, group in test_games.groupby(week): # 截止到本周之前的全部數(shù)據(jù)作為訓(xùn)練集 train_data games[games[GAME_DATE_home] group[GAME_DATE_home].min()] if len(train_data) 200: continue X_tr train_data[feature_cols] y_tr train_data[home_win] # 每周重新訓(xùn)練一次模擬真實部署節(jié)奏 rf RandomForestClassifier(n_estimators200, max_depth6, random_state42) rf.fit(X_tr, y_tr) prob rf.predict_proba(group[feature_cols])[:, 1] acc ((prob 0.5).astype(int) group[home_win].values).mean() results.append({week: week, games: len(group), accuracy: acc}) result_df pd.DataFrame(results) print(result_df) print(f整體回測準確率{result_df[accuracy].mean():.4f})這段代碼的核心是每周重訓(xùn)一次而不是訓(xùn)一次模型測一整年。因為NBA賽季中有交易、傷病、陣容變化固定模型會隨時間推移慢慢失效?;販y結(jié)果里命中率的波動范圍值得關(guān)注——如果某幾周準確率突然跌到40%以下去查那幾周發(fā)生了什么往往能對應(yīng)上全明星周末、交易截止日這類特殊賽程事件。概率校準是第二個值得做的動作。模型輸出0.55的概率到底接近真實命中率還是虛標需要用校準曲線驗證。sklearn 的 calibration_curve 可以直接畫from sklearn.calibration import calibration_curve import matplotlib.pyplot as plt # 把測試集概率分桶對比每個桶內(nèi)的實際命中率 prob_true, prob_pred calibration_curve(y_test, xgb_prob, n_bins10) plt.figure(figsize(6, 6)) plt.plot(prob_pred, prob_true, markero, labelXGBoost) plt.plot([0, 1], [0, 1], linestyle--, label理想校準) plt.xlabel(預(yù)測概率) plt.ylabel(實際命中率) plt.legend() plt.savefig(calibration_curve.png, dpi150)如果校準曲線明顯偏離對角線說明概率系統(tǒng)性偏高或偏低這時可以用 CalibratedClassifierCV 做一次事后校準。對課程設(shè)計來說畫一張校準曲線并解釋它的含義比多調(diào)幾個百分點的準確率更能體現(xiàn)你對機器學(xué)習(xí)模型的理解深度。我自己做這個項目時養(yǎng)成的習(xí)慣是每個比賽日結(jié)束后把前一天的真實結(jié)果回填到數(shù)據(jù)表重算滾動均值重新訓(xùn)練模型再把當(dāng)日比賽的預(yù)測輸出到一個CSV。堅持一個月累積下來就能畫出一條真實的準確率曲線。看到曲線連續(xù)下滑就知道該更新特征或者查查是不是有核心球員傷停了——這種從數(shù)據(jù)里發(fā)現(xiàn)問題的感覺比調(diào)參更有成就感。這個項目做完你帶走的不只是代碼而是一套從需求到可驗證結(jié)果的完整套路先跑通最小流程再逐層加特征、換模型、補評估每一步都有可驗證的輸出。以后做別的數(shù)據(jù)類項目這條骨架都能直接復(fù)用。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月天婷婷在线看| 国产美女高潮视频| 久9re热视频这里只有精品| 不卡一区二区日本视频| 午夜天天碰综合视频| 欧洲性人爱视频| 影视综合无码少妇| 久久9久9久99久9久9| 欧美视频一区二区三区| 日韩中文9| 亚洲乱熟女一区二区三区大香蕉| 久久久久久久97| AAAA级日本片免费视频| 夜夜高潮夜夜爽高清视频一| 综合久久97| 91站街按摩店老熟女熟女| 熟妇视频一区二区三区在线观看| 中国少妇啪啪视频| 色色五月婷婷| henhen91| www.色五月| 欧美性少妇| blacked精品一区国产| 精品人妻1237| 强奸乱伦 亚洲一区| 91亚州日韩高清| 97操综合| 性做久久久久久免费观看软件| 好湿好紧好爽 视频| 午夜操一操| 国产欧美美女免费观看视频| 国产在线播放成人免费| 中文字幕在线观看第二页| 91丝袜在线播放| 久久久久人妻| 久久大| 国产精品一区二区三区在线密挑| 国产亚洲99久久精品熟| 少妇三P| 国产 日韩 欧美一区| 97久久久久久久精| www熟女乱伦com| 蜜臀在线免费观看在线免费观看| 8x福利精品第一福利视频导航| 青青欧美在线| 国产成人无码a| 亚洲欧洲激情| 丁香激情网| 亚洲黑人在线| 中文字幕日韩综合| 亚洲视频中文一区| 91劲爆| 小情侣高清国产在线视频| 亚洲精品 欧美97色色| 99婷婷| 超碰97久久| 超碰在线974| 一本色道无码DVD中文字幕| 秋霞一区二区三区四区五区六区七区| 99精品成人免费看| 色五月AV| 精品一区二区三区蜜桃臀www| 激情接吻视频久久久久久| 欧美伊人电影| 97一区二区三区视频| 日本操BAV| 亚洲欧美情色| 国产AV线| 日韩在线人妻网站| 人人贴人人摸| 日韩熟女精一区二区三区不卡| 涩爱AV在线| 俞拍久久国应视频| 成人乱码一区二区三少妇| 中文乱码99| 婷婷亚洲综合| 亚洲高清综合网| 老熟乱一区二区三区四区| 嫩草伊人久久精品| 欧美综合加勒比在线| 99色综合| 成人性爱视频在线看| 亚洲欧美伦综合| 性爱欧美五月| 日韩一区二区熟女| 妺妺跟我一起洗澡没忍住| 人妻铁牛TV| 亚洲黄a三级三级三级看三级| 日逼视频日本| 日韩精品中文字幕人妻| 天天综合色图| 99啪啪视频| 色综和网| 麻豆 欧美 日韩| 成人 日本A片无码8888| 日韩操啪| 国产成人在线观看网址| 亚洲欧洲自拍| 色欧美色交综合| 精国久久一区二区三区98| 久久99国产综合精品女同| 亚洲国产麻豆一区二区三区| 亚洲第一精品在线视频| 一级性爱aaaa| 91色情黑丝搞鸡在线观看一区二区三区三州 | www.久久99| 色色香蕉| 精品国产www久久| 无码外流操逼视频| 97超碰人人操人人操| 欧美日韩亚洲少妇寂寞影院正在播放| 任你干在线视频| 久久综合女优| 欧美日韩亚洲五月天婷婷| 日本三级小说中文字幕| 91国产丝袜足交精品视频| 九九亚洲| 中文字幕视频2区| 大香蕉伊人色偷偷在线| 色婷婷五月天| 奸色色 男人天堂 天天射| 欧洲色| 在线 制服丝袜中出 人妻| 26uuu国产免费观看| 中文色综合| www.久久制服糖| 免费一级性爱久久| 亚洲国产欧美中日韩成人综合视频| 91无码西班牙视频在线| 2025年A片视频精品| 五月天久久人妻| 91精品国产91熟女| 无码久久国产| 国产女同视频在线播放| 成人激情无码在线视频| 秋霞曰韩R级| 国模无码人体一区二区三| 老司机午夜精品视频| 欧美精品黑人猛交高潮| 日婷婷| 老熟妇一区二区三区…| 操逼日韩无码| 蜜桃视频一区二区三区在线观看| 操91| 91亚洲网站| 搡老熟女免费视频| 日本国产高清色www视频在线| 99精品欧美一区二区三区桃色| 69少妇一区二区| 色狠狠 - 百度| 黄色视频特级毛片| 亚洲日韩国产欧美综合v| 超碰精品在线| 国产视频一区二区在线| 日本丝袜美腿人妻九九| 亚洲日本大香蕉1| 果冻传媒A片麻豆熟妇人妻| 东北毛片| 色色无码| 狠狠躁日日躁夜夜躁A| 少妇色欲综合网2| 校园春色五月天| 丝袜人妻av一区二区| 日韩亚洲中文字幕在线| 五月婷婷五月天| 一道本东京热加勒比一区二区三区| 日本不卡高清免v欧美日韩在线观看| 欧美曰韩国产精品| 91少妇高潮| 精品久久久av无码免费| 国产懂色精品国产av| 久久久97| 五十路二区在线| 91精品久久久久| 岛国A V在线免费看| 天天干夜夜一操| 日韩乱码Av| 欧美激情色婷婷花野真衣一区二区 | 日韩内| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 国产综合网站在线播放| 欧美超碰96| 国产区在线| aa片毛片| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 人妻插插人妻人| 婷婷8月天青娱乐| 二男一女成人A片| 91亚州日韩高清| 亚洲永久永久永久永久一级一级一级精品 | 亚洲和欧美裸体美女双飞视频| 国产自产22区| 国产福利在线视频网站| 精爱久久| 亚洲色图欧美一区二区不卡| 欧州色图区| 久久人妻一区二区三区高清| 精品日韩中文在线| 97青娱乐超碰久久| 欧洲黄色网| 亚洲人成网www| 大香蕉92| 熟女被操视频网址| av2014 日韩在线中文字幕| 乱伦a片视频| 97这里都是精品| 东京热,男人的天堂| 青青操狠狠撩| 青青草AV色| 18禁美女裸体无遮挡啪啪| 六月丁操逼| 自拍偷拍草一草| 久久综合精品一区二区三区| 伊人天天久久动态图| 日韩欧美视频青青| 2024年最新色情网站在线观看 | 女同女同恋久久级三级| 久草在| 涩涩这里只有精品视频| 久久99精品九九久久久婷婷| 思思久热在线精品66| 99青草| 99婷婷一区二区| 久久久久国产亚洲一区欧美色图日韩 | 久视频在线观看| 色欧洲| 强奸少妇AV导航网| 久久双插| 天天草AV| 国产成人网址| 午夜操逼不卡| 午夜亚洲| 日韩女优中文字幕| 免费的黄片有限公司| 欧美在线55555| 国产成人无码高清| AV中亚| 人妻一区久久二区三区色播| 中文字幕乱在线伦视频中文字幕乱码在线| av 模特一区了| 九九热免费视频| 东京热双插| 玖玖爱综合| 一级aaaaa欧美中文字幕录像片| 肏逼视频日本| 九九九久久久久| 最新av中文字幕高清| 日韩精品第3页| 欧美成人性爱视频免费观看| 精品人妻丰满熟妇一区二区三| 操屄不卡视频| 五月天九九日国产精品一区二区三区| 人妻加勒比东京热| 亚川综合视频| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 欧美亚州手机在线| 欧美熟女操屄| 操国产逼| 欧美淫乱视频| 中文字幕中文字幕一区二区| 久久综合五月天| 亚州熟女乱伦| 亚洲色宗合| 免费人人搞97| 五月天婷婷成人网| 黄色免费网页无码| 秋霞午夜成人福利片片| 啊啊啊啊在线播放| 97精品视频免费| 综合色啪| 岛国视频免费在线观看| 国产极品粉嫩馒头一线天av| 黑人精品欧美一区二区蜜桃| 天天碰操中国年青熟妇| 狠狠综合网| 无码人妻一区二区三区色欲aⅴ| 日韩特一级久久| 大香蕉AV丝袜| 色情成人五月天| 99re国产精品视频| 91精品人| 久久少妇| 大香蕉狠狠爱| 亚洲欧洲日韩中文字幕一区| 日韩 女同 综合| 久插综合| 青青伊人久久| 亚洲熟女乱综合一区二区三区| 91狠| 国产树林里野战在线看| 日韩无码三级影院| 欧美不卡在线一区二区| 91亚州| 91丝袜视频在线观看| A一级色女| 青青草字幕AV| 熟妇激情| 人妻大香蕉| 天天摸天天舔天天操| 亚洲欧美综合色| 亚洲另类综合欧美| 午夜传煤十二区精品| 超碰欧美在线欧美| 人妻熟女一区二区在线视频| 偷拍亚洲高清图片| 鸥美插入视频| 国产成自自拍在线观看| 亚洲色图在线视频| 丝袜夫妻自拍| 亚洲少妇诱惑| 五月天伊人| 99999精品视频| 天美av在线观看| 久久五月综合| 久久婷婷电影网| 天天澡天天爽日日AV| 天天综合官网| 熟妇色99| 亚洲欧美精品国产一区二区| 欧美偷拍区| site:sinbotex.com| 干超碰碰熟女| 久久国产逼| 亚洲无码太久| 手机在线人成免费视频| 秋霞视频一区二区| 色色激情五月天| 91日本在线观看| 国产三级电影免费观看| 色五月亚洲| 日韩人体偷拍| 97在线观看免费视频l| 久久综合久色欧美综合狠狠| 国产尤物在线三区| 久久久久九九九| 亚洲精品免费中文字幕| 国产精品久久久三级无码| 国产精品色| 九一亚洲国产免费| 自拍亚洲综合| 久久香蕉国产线看观看亚洲女人| 日本性感人妻91| 熟女五十路一区二区三| 日本三级中国三级99人妇网站| 欧美乱色| 久操视频免费观看| 蜜臀在线视频| 久久露脸国产老熟女| 日韩成人色图| 视频在线中文字幕| 国产品精品自在在线午夜免费| 亚洲av无码成电影在线播放| 久久久精品无码亚免费| 色综合美国| 国产精品久久久九九九| 精品少妇999| 日韩人妻播放| 亚洲精品色| 91熟女.com| 欧美日韩资源| 色噜噜人妻丝袜a∨先锋影 | 91色鬼| 91无码中出人妻视频| 午夜呻吟欧美| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 午夜精品久久久99热蜜桃的功能特点| 欧美97网| 国产三级电影免费观看| 亚洲,欧美,综合网| 亚洲精品九九九九九九| 操逼视频国产无套| 激情五月丁香五月| 韩日精品福利视频一区不卡在线免| 懂色av中文字幕| 亚洲AV麻豆Aⅴ无码电影一 | 精品欧美日韩在线观看| 乱伦图av| 欧洲性人爱视频| 一区二区精品日韩欧美在线观看| 91强在线播放| 欧美性爱www免费版| 亚洲黄日韩无码专区| 日韩精品国模| 蜜屁Av| 色一色综合网| 97av在线观看| 91天天综合在线| 一区=区三区视频| 99色网| 91日日夜夜| 999国产精品999久久久久久| 欧亚日韩中文在线| 欧美综合娱乐久久| 国产伦乱91| 操屄不卡视频| 爆乳免费黄网站| 密臀AV在线| 青青青草伊人精品| 大香蕉综合网| 国产AV激情无码久久无码| 污污汅18禁网站在线永久免费观看| 333kkkk·亚洲com久久| 亚洲色吧网| 欧日韩在线观看| JuliaAnn丝袜熟女系列| 亚洲精品性爱片| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 欧美特大黄一级片片免费| 激情综合亚洲| 国产诱惑| 粉嫩av平台| 欧美色日本| 超碰99热| 1024精品在线| 熟妇一区二区| 亚洲色性| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 久久老熟女| 欧 美 自 拍 偷 拍| 亚洲成人免费在线| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 在线97视频| 秋霞无码av鲁丝片一区| 黄页大片在线观看| 变态另类专区| 天天做日日做天天欢。| 青青草五月天| 亚洲影院成人| 五月天伊人| 中文字幕伊人| 久久天天艹| 野狼激情网| 啊啊啊操死我了| 日韩综合无码色欲vv| 99久在线精品99re8热| 在线天堂999| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 激情99| 少妇色综合| 亚洲av综合伊人久久| 五月天激情小说| 国产地址二三| 永久免费发布性爱网| 在线视频一区二区传媒| 成人免费性爱视视| 日韩另类色图| 搡老女人老91二区| 亚洲人成网www| 亚洲色图 91| 熟女精品va中文字幕| 中文字幕人妻色偷偷久久皮 | 69精品| 五月婷婷激情综合| 精品久久久久成人码免| 天堂中文日本在线观看| 超碰久久草| 97资源视频| 人人摸人人干| 一本色道无码DVD中文字幕| 五月婷婷综合网| 日本久久久久久久久久| 一级aaaaa欧美中文字幕录像片| 欧美少妇内射| 爽极品影院| 精品人妻一区二区乱码一区二区| 性暴力欧美猛交在线直播| 四虎影视在线| 国产在线能看的你懂的| 99国产天美| 国产又猛又粗又爽又黄| 日本久久综合| 人摸人人操人| 亚洲第一视频 欧美风情 日韩| 国产精品视频白浆免费| 丰满少妇精品一区二区| 欧亚免费视频| 99热这里都是精品| 少妇高潮99p| 91精品人| 欧美 综合| 一区二区三区黄色片a| 日韩精品怡红院| 国产一区二区a毛片| 在线观看午夜婷婷久久久久清性观看| 日本高清_区二区三区| 操亚州| 91三级理论片播放器| 嗯~啊~轻一点 视频| 色五月婷婷在线| 免费精品无码一级毛片牛牛影视| 91欧美偷拍| 无码黑人精品一区二区三区三| 中文欧丝袜诱惑| 五月天综合在线| 搡老女人老熟女91| 色九九综合AV| 狠狠爱综合网| 欧美组图日韩亚洲中文字幕| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 中文字幕日韩精品久久| 懂色av中文字幕一区二区三区天美| 国产精品熟女乱伦| 精品福利| 久久宗合亚洲| 韩国久久97| 成人性爱av| 欧美色吧综合| 久久久av爱| 人人插人人搞人人操| 91色狼| 免费亚洲国产精品久久一区| 红杏大香蕉| 尤物网站91| 麻豆传媒一区二区在线观看| 精品色色| 国产成人欧美一区二区三区的国产| www.人人摸在线视频| 好淫网一二三视区| 亚洲欧美日韩精品久久久一区二区| 精品69网| 日韩97精| 九九九久千久久激情蜜桃在线看| 日本人人操人人操| 性色AV蜜色av色欲av| 黑人干亚洲| 人妻密肉在线观看| 99热最新网址| 亚洲一欧洲中文字幕在线| 天天做天天爱| 精品国产乱码久久久久久日本公司| 美国美女AV在线| 欧美三级中文字幕hd| 在线免费观看日韩一区| 大香蕉宗合网在线| 精品日日人妻| 97超碰人操| 中文字幕91综合| 最近的最新的中文字幕视频| 国产精品ⅴ无码大片在线看.| 91无码精品| 91精品少妇搡搡搡| www.男人天堂| 91色综合激情| 啊啊啊不要好疼视频| 欧美强奸一区二区诱惑| 国产精品视频自拍在线| 欧美色图色综合| 婷婷性网| 91亚洲丝袜熟女| 伊人久久大香蕉线AV五月天| 久草毛片电影怡| 精品久久久久久中文字幕视频免费| 欧美激情片一区二区| 日本91白丝| 精品少妇一区二区三区在线视频| 懂色天天爱天天日天天射天天澡| 日本国产欧美一区三区二区 | 欧美超碰人妻97| 性欧美体内射精| 日韩AV电影网站| 成人看片网站| 婷婷五月成人| 亚洲无套久久嗯嗯| 床上啊啊啊一区二区三区| 亚洲熟女中文字幕在线| 亚洲码专区| 午夜120视频在线观看| 尤物视频视频官网| 日韩兔费看黄片| 97在线免费观看| 日韩大香蕉| 91欧美在线| 丰满熟女一区二区三区在线播放| 色逼综合| 天天综合网网欲色| 亚洲无线观看久久| 日本孕妇一区二区视频操逼免费看 | 3P乱轮视频| 久草国产在线视频| 97人人操人人摸人人爱| 人妻日日干| 日韩一级片在线看| 日韩无码成人电影| 亚洲 日韩 欧美 国产综合体| 天天色播| 熟女丰满人妻一区| 欧美日韩理论一区| 97久久久精品| 热的中文 热的有码 热的国产| 国产偷人妻精品一区二区在线| 91强在线播放| 国产中文字幕在线观看| 嗯嗯啊啊啊好爽| 亚洲色人| 宅男影院久久久,99| 91三级理论片播放器| 综合色色网| 色蜜AV| 日韩三级在线观看mp4| 欧美91在线+|+欧美| 校园春色家庭伦理欧美激情| 久久岛国| 久久久久久亚洲Av无码精| 人人看欧美性爱| 国产福利av精彩对白| 99综合网| 亚洲精品天天影视综合网 | 一级久久性爱视频| 婷婷尹人大香蕉免费| av婷婷色网| 欧美色自拍| 欧美日韩人妻精品系列一区二区三区| 精品视频一区二区| 亚洲成人av电影在线| 国产黄片在线免费观看| 啪啪91| 一区二区三区 丝袜 高跟 美腿| 精品十三区| 人妻少妇久久| 黄片视频观看| av天堂手机版追回 | 国产丝袜美女诱惑| 九九九九九九视频| 夜夜爽夜夜高潮夜夜爽| 香蕉热人人精品| 免费强奸av| www.四虎在线| 超碰97久久观看| 蜜臀久久久99久久久久 | 久久9亚洲| 九一性生活免费视频| 欧美色性情| 午夜视频好爽啊| 日韩欧美国产一区二区三区四区| 亚欧性爱ab| 精品超碰国产| 亚码激情| 免费看美国人人爽,人人操| 女人妻一区| 欧美人妻一区二区| 国产精品福利视频播放| 99自拍视频| 99热 按摩 日韩| 97天天日| 在线观看AV片| 欧美色图亚州激情| 久久精品超碰| 亚欧高清在线| 嗯嗯啊啊好疼| 熟女人妻一区二区三区| 亚洲av影音先锋| 亚州乱码中文字幕综合久久久| AV中文字幕三四五| 午夜无码精品免费看性色| 精品国产自在在线99| 超碰在线1234区| 翔田千里Av在线| 性色一线| 欧美在线电影| 女同性恋久久| 91AV天堂| 婷婷在线视频在线观看| 欧美久久草熟女| 一区二区三区一亚洲中文字幕、综合区灬| 久久九九视频九九视频| 97在线欧洲| 国产自制av蜜乳| 无码又爽又硬又激情免费视频| 人人九九精| 美女极品一区二区三区| 四虎884a| 亚洲色图尤物视频| 97色欧州| 亚洲电影中字一区二区| 国内精品999| 亚洲中文字幕熟女少妇一区二区| 欧美十八禁在线看| 91热色| Av手机版天堂网| 97资源欧美| 一级婬片120分钟试看| 国产精品青青草| 天天综合网网欲色| 97人妻色| 精品视频一区二区| 黄页18禁| 无码高清操逼| 日本九九久久99播| 麻豆国产精品午夜视频| 在线人妻熟女一区二区三区四区五区| 日韩欧美加勒比| 国内精品伊人久久久久影院会| 玖玖超碰熟| 熟女六十路| 日本道人妻久久久在线不卡色视频| 在线观看日韩av不卡| 久久久草草精品| 高清在线偷拍自拍视频| 婷婷人妻激情| 亚洲成人碰碰| 13小男生GAY自慰脱裤子| 桃色六月天| 蜜乳av一区二区| 日本中文字幕一区| 美女尤物人人操| 成年人免费观看网站| 自偷自拍的亚洲视频| 91 偷| 精品四五区| 亚洲人天堂| 欧美AB在线观看| 国产三级在线现体验区| 麻豆精品三区视频| 欧美中出1| 香蕉视频精品亚洲一区二区三区在线播| 美女黄色一级A视频| 97超碰人人模人人拍人人| 久久久久久91香蕉国产| 333kkkk·亚洲com久久| 劲爆欧美人妖三区91| 毛片电影一区二区三区| 99re免费| 欧美天天谢综合网| 亚洲AV操| 久久精品超碰| 人人超碰在线观看黄| 国产区性爱在线视频秋霞豆| 久久精品男人的天堂| 久久思思热| 久艾草在线精品视频在线观看| 97网址97| 久久人妻视频网| A一区片| AV在线播放网址| 蜜桃色色网站视频三区| 91碰超| 青草一区二区| 嗯嗯啊好大| 色五月婷婷五月天| 国产高清精品一区二区三区毛片 | 四虎AV无码| 亚洲成aⅴ人片不卡无码| 九久久精品| 久久国产99精品72福利| 91c色| 国产白丝av| 中国熟女91| 久久久工口| 国产精品自在线发布| 亚洲色人| 一本色道久久综合亚洲二区三区| 欧美人妻二区三区| 中国亚洲呦女专区| 亚洲欧美另类激情小说| 欧洲精品网| 日本三级中国三级99人妇网站| 国产精品人妻无码久久久互動交流 | 欧洲久久一二线| 亚洲淫色网中文| 色情成人五月天| 欧美一级国产一级| 欧美人体性爱互联网第一页婷婷日本| 玖玖综合视频| 91麻豆一二三区| 岛国人妻少妇av在线观看| 欧美亚洲玖玖玖| 91超碰人人操| 中日韩欧美精品无码AⅤ一区二区| 91夜色| 亚洲高清自拍| 国产美女高潮视频| 色亚州人久干视频在线观看免费版| 97亚洲国产影视| 亚洲色五月| 国产高潮AA片免费看| 波多野结衣先锋影音| 亚洲精品一区二区精品| 久9re热视频这里只有精品| 久久国产乱子伦精品免费女,网站| 久久久9 9 9精品| 国产99999久久精品| 精品97久久综合| AV老汉| 99热在线不卡| 日韩/97| 色老汉色| 97视频在| 97公开久久| 91在线丝袜视频| 欧美久久婷婷| 欧美少妇性乱| a人片中文字幕一区二区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 熟女一区二区三区| 欧美亚洲AN| 九九九九精品一区| 黄色一区三区| 亚洲女人毛茸茸91| 久热精品在线| 狠狠爱夜夜| 美女诱惑一区| 天堂v无码免费视频| 国产高清午夜成人在线观看| 日韩免费在线观看不卡| 日韩成人精品| 天天色天天干天天射| 搡老人老9丨女老熟人| 日本高清有码网址视频| 国产精品一区二区黄片| 色色色综合网| 亚洲欧洲美腿丝袜| 日韩欧美被操黄免费观看| 日韩无码AB| 亚洲综合另类色图| 日韩99999| 91东北熟女| 999精品国产高清一区二区| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | av2014 日韩在线中文字幕| 有码专区最新中文字幕有码| 久久岛国| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 伊人大香蕉在线| 91新在线欧美| 亚洲高清在线se| 天堂性色| 性爱网站一区二区| 色乱二区| 男人兔费天堂| 天天干天天日天天射黄色片| 亚洲蜜臀视频精品久久| 美女91网| 成年人黄色视频免费| 温婉少妇玩3p| 欧美性天天影视| 人人超碰在线观看黄| 欧美在线干| 精品九九| 丝袜美腿制服人妻二区中文字幕| 99色综合| 手机久操欧美综合色码| 久久久涩| 天天懆天天日| 99久久9| 国内操逼视频二区| 成人青青草原伊人| 免费啪啪av| 99久久久| 欧美一区二区成人一卡| 欧美综合1性辶| 午夜超爽| 69精品少妇一区二区三区蜜桃| 久久久久久久久久久999| 蜜桃臀av一区二区| 狠狠操官网| 久久人妻视频网| 一二三四视频在线社区中文字幕| 欧美激情区| 精品一区二区综合熟妇| 久久免费老司机精品| 欧美91久久久久| 亚洲本色精品一区二区久久| 国产 日韩 另类 视频一区爱| 欧美色图亚洲色图成人在在线| 人妻大香蕉| 午夜a成v人电影| 久久婷婷五月天| 大香蕉琪琪日本女优不卡| 亚洲一二三四区| 操逼网站视频漫画国产| 亚洲 se图 欧美电影| 日韩九九九| 激情干在线| 日夜久久久九九九久| 色九久| 久久香蕉国产线看观看猫咪av| 欧美曰韩国产精品| 精品人妻一区二区三区四区不卡在| 国产剧情AV不卡在线观看| 91成人在线| 91bbb| 久久98| 欧美激情黑人| 欧美一级黄片视频在线| 嗯嗯啊啊操死我| 999热这里只有精品| 秋霞免费AV| 2017大香蕉国产精品久久| AAAA级日本片免费视频 | 国产av白丝| 中文字幕人妻丝袜乱一区三区| 五月丁香拍拍激情综合三级| 美女大乳久久久久久久女人18| 超碰97人妻在线| www.婷婷五月天| 欧美精品亚洲精品日韩传电影| 欧美亚洲第一页| 9超碰免费| 2017av无码免费无线播| 日本有码久久| 青青久久艹| 日日夜夜天天| 97国产|免费| 丁香五月激情综合国产| 呦女网站| 8050无码八戒| 女上位精品在线| 免费在线观看国内色片网站网址| 欧美亚洲AN| 国产Av超碰| 美女主播色欲91抠b在线播放| 精品人妻一区二区三区四区石在线| 九色97| 亚洲在线欧美| 青青青操| 日本中文字幕不卡视频 | 韩日精品福利视频一区不卡在线免| 少妇高潮流水av免费| 天天摸夜夜摸| 人人操人人爽人人操人人| 91 国产丝袜在线放观看| 秋霞色色影院| 亚洲综合网图| 欧美一区二区日韩三区| 欧美国产成人在线| 99精品视频在线观看免费| 啊啊啊啊啊啊啊网址在线观看| 久久久久久久亚洲Av无码| 日产成人久久| 久久婷婷亚洲| 97亚洲在线| 久久手机视直播| 精品无码一区二区三区| 久久综合女优| 国产 热久久久久国产精品| 亚洲国产中文字幕| 动漫爆乳3D奶水一区在线观看| a啊啊啊啊啊啊啊啊一区二区| 91丨九色丨大屁股| 国产熟妇 码视频户外直播| 欧美内射少妇| 手机在线中文字幕国产| 超碰视97中文| 五月婷婷综合网| 日韩免费中文字幕视频| 老司机免费视频在线91| 无码抄逼网| 91亚洲欧洲| 少妇69中文| 欧美久久伊人| 夜夜精品视频| 风流老熟女一区二区三区l| 人妻啊啊人妻啊啊| 欧美性爱第一页久久| 国产偷人妻精品一区二区在线| 黄色高清无码无码破解免费暗网 | 91狠狠综合久久久| 亚洲欧美综合| 欧美 亚洲 另类 综合| 伊人久久大香大香线蕉中文| 亚洲国产精品成人久久蜜臀| 精品97久久综合| 国产成人自拍视频在线| 蜜桃av色偷偷av老熟女| 欧美日本天堂| 日本色色色| 国产成人亚洲精品无码最新在线| 中文字幕视频免费| 五月天激情网站| 另类小说综合网| 亚洲欧美国产精品久久久久久久| 麻豆精品久久久久久久| 精品高清一区二区三区三州| 天美传媒麻豆一区二区三区国产精| 1024亚洲中文字幕久在线看片你懂的 | 日韩大香蕉AV影片| 亚洲综合图文| 另类天堂| 日韩图区 偷拍| 午夜在线播放| 久久九精品| 久久久人体| 美国aaaaa一级黄片| 精品福利| 啊啊啊操死我了| 国产男女无套97| 玖玖在线视频| 黄色区免费观看中文字幕| 欧美少妇人妻| 婷婷探花久久精品一区| 在线视频五十市| 熟妇在线视频一区二区| 三级三级三级a级全黄三| 日韩免费a级毛片无码a∨| 蜜臀一二三区| 96免费视频在线| 超碰97起碰| 亚洲操人| 熟女五十路一区二区三| 熟女探花啪啪| 91精品丝袜久久久久久| 欧美超碰人妻97| 亚洲精品欧美专业| 开心五月激情网| 日韩激情啪啪| 久操凹凸视频| 明星性猛交ⅹxxx乱大交| 国产精品一区二区三区在线| 超碰97首页| 超碰在线人妻不卡| 亚洲国产精品久久久久婷婷青年| 久久久 国产精品| 在线一道啪| 9丨亚洲一区二区在线| 激情综合网亚洲| 久久久日本电影| 久久久久久人| 欧美亚洲高清晰| 60秒免费视频| 伊人伊人LD| 99啪啪| 久久九九一区二区三区成人| 97九色人妻| 婷婷久久综合| 色婷婷丁香五月天| 人人色人人操在线| 欧美特大黄一级片片免费| 久久精品高清AV| 可能人人看人人摸| 操操吧亚洲乱伦视频| 92性色国产午夜福利在线661| 久久久久久久精| 少妇高潮九九九九| 伊人超碰97| 亚州性色| 日韩有码专区| 亚洲色阁| 精品九九九九九九| 天天爽天天操啊啊啊| 久久这里只| 老鸭窝成人免费毛片视频| 久操电影网| 九七超碰人人乐| 少妇天堂| 啊啊啊好舒服视频| 精品亚洲天堂| 日韩欧美日韩| 国产精品直播在线观看直播| 国产精品又黄又猛又粗| 欧美成人性爱视频在线播放| 日韩免费在线观看不卡| 中国操逼无码| 亚洲 欧美 制服 另类 自拍| 精品无码久久久久久国产浪潮| 嫩呦国产一区二区三区AV| av网站在线观看了| 一区操逼日比视频| 国产超碰人人爽人人做| 精品久久人妻成人网| 婷色五月| 97视频网站在线观看| 熟妇熟女一区二三区| 神马久久久久久久久久久久| 婷婷另类小说| 97欧美久久久久久久| 97精品一区二区视频在线观看| 狠狠躁伊人中文字幕| 91视频综合网| 黄片免费视频2019| 91人妻中文| 欧美一级色| 91人人看| 91天射| 亚洲校园激情| 中文字幕欧美丝袜07资源| 人妻二区| 1024人妻熟女一区二区三区| 日韩无码专区| 亚洲欧美天堂在线| 东京热不卡视频| 91亚洲丝袜熟女| 干超碰碰熟女| 园内精品自拍视频在线播放| 国产精品午夜高潮呻吟久久av| 尹人大香蕉视频在线| 四季AV综合网址| 97视频在线观看网站| 久久啊啊| 国产精品网址| 91久久99久久91熟女精品| 九九热免费国产视频婷婷伊人五月 | 亚洲图片欧美日韩| 先锋音影AV| 91精品导航| 日韩精品一区二区高清| 日本在线视频导航| 久操高青| 午夜精品久久久久久久99| 婷婷综合伊人一区| 国产精品无码av在线| 五月丁香啪啪啪| 神马久久网| 人妻久久| 国产精品毛片?v一区二区三区| 99re久久| 秋霞一区二区三区四区五区六区七区| 快播久久人人aV| 黄色片A级一区二区三区| 亚洲aV性爱| 99久久综合| 欧美熟妇色| 人人操人人操人人操人人操人人操人人人11.CM | 99激情视频| 欧美一级黄片免费播放| 在线 亚洲 网爆 自拍| 久久激情视频| 伦激情人妻另类人妻| 五月丁香| www. 男人天堂成人在线| 97超碰精品| 无码少妇精品一区二区60岁老人| 夜夜操av亚洲一区二区| 97亚洲自在精品在线观看| 岛国福利在线精品播放| 久久久久久久人妻| 免费亚洲国产精品久久一区| 尤物网站91| 99视频内射三四| 国产99999久久精品| 超碰免费人妻人人| 高清无码网址| 呻吟 欧美 日本 中出| Sekablack无码一区| 床上啊啊啊一区二区三区| 99热8| 都市久久精品激情亚洲| 色色色色色色色色色色色色色色综合| 一区超碰一区| 超碰在线香蕉| 精品国产一区二区三区久久久蜜臀| 天天干人人乐| 国产精品无码AV网站| 一区二区视频你懂的| 天天上日日上日韩精品| 亚洲男人的天堂亚洲| 妇女乱色二区| 亚洲黄色a级片| 97干天天| 呦呦影院| 天天操女人| 欧美日韩1234| 91欧美综合| 在线有码中文字幕| 啊a一区在线| 亚洲se91| 色5月婷婷| 伊人欧美大香蕉视频| 亚洲强奸乱伦影视网| 超碰97首页| 天天综合网日韩7799|