日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Kaggle Tabular Playground Series - Jan 2022 学习笔记2(使用时间序列的线性回归)

發(fā)布時(shí)間:2023/12/20 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kaggle Tabular Playground Series - Jan 2022 学习笔记2(使用时间序列的线性回归) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

之前我們對(duì)TPSJAN22進(jìn)行了簡(jiǎn)單的數(shù)據(jù)分析(詳見(jiàn):Kaggle Tabular Playground Series - Jan 2022 學(xué)習(xí)筆記1(數(shù)據(jù)分析))。現(xiàn)在我們嘗試使用時(shí)間序列和線性回歸來(lái)訓(xùn)練模型。

試題地址:Tabular Playground Series - Jan 2022

本文參考:TPSJAN22-03 Linear Model

import pandas as pd import numpy as np import pickle import math import matplotlib.pyplot as plt import dateutil.easter as easter from matplotlib.ticker import MaxNLocator from datetime import datetime, date, timedelta from sklearn.preprocessing import StandardScaler from sklearn.model_selection import GroupKFold from sklearn.linear_model import LinearRegression, HuberRegressor, Ridge, Lassoimport matplotlib.dates as mdates original_train_df = pd.read_csv('../datas/train.csv') original_test_df = pd.read_csv('../datas/test.csv') gdp_df = pd.read_csv('../datas/GDP_data_2015_to_2019_Finland_Norway_Sweden.csv')gdp_df.set_index('year', inplace=True)for df in [original_train_df, original_test_df]:df['date'] = pd.to_datetime(df.date) original_train_df.head(2)


TPSJAN22 要求使用SMAPE作為損失函數(shù),但是Scikit-learn沒(méi)有提供,所以先自定義一個(gè)損失函數(shù)。

def smape_loss(y_true, y_pred):"""SMAPE Loss"""return np.abs(y_true - y_pred) / (y_true + np.abs(y_pred)) * 200

接下來(lái)根據(jù)我們之前的數(shù)據(jù)分析猜想對(duì)特征進(jìn)行處理

def engineer(df): def get_gdp(row):country = 'GDP_' + row.countryreturn gdp_df.loc[row.date.year, country]#加上gdp信息;增加每周的季節(jié)性指示器(Seasonal indicators) new_df = pd.DataFrame({'gdp': np.log(df.apply(get_gdp, axis=1)),'wd2': df.date.dt.weekday == 1, 'wd3': df.date.dt.weekday == 2,'wd4': df.date.dt.weekday == 3, 'wd5': df.date.dt.weekday == 4,'wd6': df.date.dt.weekday == 5,'wd7': df.date.dt.weekday == 6,})#將商品種類(lèi),國(guó)家,商店進(jìn)行獨(dú)熱編碼for country in ['Finland', 'Norway']:new_df[country] = df.country == countrynew_df['KaggleRama'] = df.store == 'KaggleRama'for product in ['Kaggle Mug', 'Kaggle Hat']:new_df[product] = df['product'] == product#添加傅里葉特征:我們對(duì)每個(gè)產(chǎn)品添加3對(duì)傅里葉特征dayofyear = df.date.dt.dayofyearfor k in range(1, 3):new_df[f'sin{k}'] = np.sin(dayofyear / 365 * 2 * math.pi * k)new_df[f'cos{k}'] = np.cos(dayofyear / 365 * 2 * math.pi * k)new_df[f'mug_sin{k}'] = new_df[f'sin{k}'] * new_df['Kaggle Mug']new_df[f'mug_cos{k}'] = new_df[f'cos{k}'] * new_df['Kaggle Mug']new_df[f'hat_sin{k}'] = new_df[f'sin{k}'] * new_df['Kaggle Hat']new_df[f'hat_cos{k}'] = new_df[f'cos{k}'] * new_df['Kaggle Hat']return new_df

來(lái)看看處理好的特征

train_df = engineer(original_train_df) train_df['date'] = original_train_df.date train_df['num_sold'] = original_train_df.num_sold.astype(np.float32) test_df = engineer(original_test_df) features = test_df.columns for df in [train_df, test_df]:df[features] = df[features].astype(np.float32)train_df

list(train_df)

[‘gdp’, ‘wd2’, ‘wd3’, ‘wd4’, ‘wd5’, ‘wd6’, ‘wd7’, ‘Finland’, ‘Norway’, ‘KaggleRama’, ‘Kaggle Mug’, ‘Kaggle Hat’, ‘sin1’, ‘cos1’, ‘mug_sin1’, ‘mug_cos1’, ‘hat_sin1’, ‘hat_cos1’, ‘sin2’, ‘cos2’, ‘mug_sin2’, ‘mug_cos2’, ‘hat_sin2’, ‘hat_cos2’, ‘date’, ‘num_sold’]

下面我們開(kāi)始訓(xùn)練模型

def fit_model(X_tr):# Preprocess the dataX_tr_f = X_tr[features]preproc = StandardScaler()X_tr_f = preproc.fit_transform(X_tr_f)y_tr = X_tr.num_sold.values.reshape(-1, 1)model = LinearRegression()#因?yàn)閟k-learn沒(méi)有SMAPE作為損失函數(shù),所以對(duì)目標(biāo)值取對(duì)數(shù),然后使用默認(rèn)的MAE可以得到近似SMAPE的效果。#更多詳細(xì)信息參考:https://www.kaggle.com/code/ambrosm/tpsjan22-03-linear-model/notebook#Training-the-simple-model-(without-holidays) 第一段#和該討論:https://www.kaggle.com/c/tabular-playground-series-jan-2022/discussion/298473model.fit(X_tr_f, np.log(y_tr).ravel())return preproc, model preproc, model = fit_model(train_df)train_pred_df = original_train_df.copy()#因?yàn)轭A(yù)測(cè)的結(jié)果是對(duì)目標(biāo)值取對(duì)數(shù),所以要獲取預(yù)測(cè)值需要將預(yù)測(cè)結(jié)果進(jìn)行指數(shù)運(yùn)算來(lái)進(jìn)行還原 train_pred_df['pred'] = np.exp(model.predict(preproc.transform(train_df[features]))) train_pred_df


接下來(lái)我們選取Finland來(lái)看看每個(gè)商品在每個(gè)商店的預(yù)測(cè)值和目標(biāo)值的損失值

plt.figure(figsize=(18, 100)) for i, (combi, df) in enumerate(train_pred_df[train_pred_df.country == 'Finland'].groupby(['store', 'product'])):df = df.set_index('date')# print(df.index)# breakresiduals = (df.pred - df.num_sold) / (df.pred + df.num_sold) * 200# print(residuals.min())# breakax = plt.subplot(18, 1, i+1, ymargin=0.5)ax.scatter(df.index,residuals,s=1, color='k')ax.set_title(combi)ax.vlines(pd.date_range('2014-12-31', '2019-01-01', freq='M'),plt.ylim()[0], plt.ylim()[1], alpha=0.5)ax.vlines(pd.date_range('2014-12-31', '2019-01-01', freq='Y'),plt.ylim()[0], plt.ylim()[1], alpha=0.5)ax.xaxis.set_major_locator(mdates.YearLocator())ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y'))ax.xaxis.set_minor_locator(mdates.MonthLocator())ax.xaxis.set_minor_formatter(mdates.DateFormatter('%m'))ax.set_ylim(residuals.min(), residuals.max()) plt.tight_layout(h_pad=3.0) plt.suptitle('Residuals for four years', y=1.003) plt.show()


可以發(fā)現(xiàn),每個(gè)商店每個(gè)商品的損失值分布很相似,我們可以直接看Finland所有商品每天的損失值。

# Plot all residuals (four-year range, sum of all products) def plot_all_residuals(residuals):plt.figure(figsize=(20,6))plt.scatter(residuals.index,residuals,s=1, color='k')plt.vlines(pd.date_range('2014-12-31', '2019-01-01', freq='M'),plt.ylim()[0], plt.ylim()[1], alpha=0.5)plt.vlines(pd.date_range('2014-12-31', '2019-01-01', freq='Y'),plt.ylim()[0], plt.ylim()[1], alpha=0.5)plt.gca().xaxis.set_major_locator(mdates.YearLocator())plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y'))plt.gca().xaxis.set_minor_locator(mdates.MonthLocator())plt.gca().xaxis.set_minor_formatter(mdates.DateFormatter('%m'))# plt.setp(plt.gca().get_xticklabels(), rotation=70, horizontalalignment='right')plt.title('Residuals for four years')plt.show() by_date = train_pred_df[train_pred_df.country == 'Finland'].groupby(train_pred_df['date']) residuals = (by_date.pred.sum() - by_date.num_sold.sum()) / (by_date.pred.sum() + by_date.num_sold.sum()) * 200plot_all_residuals(residuals)


可以發(fā)現(xiàn)每年1月和12月有巨大的誤差,跟之前特征分析的時(shí)候的推測(cè)很相似。我們可能需要將年底和年初的日期提取出來(lái)作為特征值。放大12月、1月的誤差來(lái)看看:

# Plot residuals for interesting intervals def plot_around(residuals, m, d, w):"""Plot residuals in an interval of with 2*w around month=m and day=d"""plt.figure(figsize=(20,6))plt.title(f"Residuals around m={m} d={d}")for y in np.arange(2015, 2020):d0 = pd.Timestamp(date(y, m, d))residual_range = residuals[(residuals.index > d0 - timedelta(w)) & (residuals.index < d0 + timedelta(w))]plt.plot([(r - d0).days for r in residual_range.index], residual_range, label=str(y))plt.gca().xaxis.set_major_locator(MaxNLocator(2*w,integer=True)) # only integer labels# plt.legend()plt.show() plot_around(residuals, 1, 1, 30)

可以發(fā)現(xiàn)在12月24號(hào)到1月4號(hào)之間誤差有巨大的波動(dòng),所以我們將每年的12月24號(hào)到1月4號(hào)之間的日期標(biāo)注出來(lái)作為特征,再訓(xùn)練模型看看

# Feature engineering def engineer(df):"""Return a new dataframe with the engineered features"""def get_gdp(row):country = 'GDP_' + row.countryreturn gdp_df.loc[row.date.year, country]new_df = pd.DataFrame({'gdp': np.log(df.apply(get_gdp, axis=1)),'wd2': df.date.dt.weekday == 1, 'wd3': df.date.dt.weekday == 2,'wd4': df.date.dt.weekday == 3, 'wd5': df.date.dt.weekday == 4,'wd6': df.date.dt.weekday == 5,'wd7': df.date.dt.weekday == 6,})# One-hot encoding (no need to encode the last categories)for country in ['Finland', 'Norway']:new_df[country] = df.country == countrynew_df['KaggleRama'] = df.store == 'KaggleRama'for product in ['Kaggle Mug', 'Kaggle Hat']:new_df[product] = df['product'] == product# Seasonal variations (Fourier series)# The three products have different seasonal patternsdayofyear = df.date.dt.dayofyearfor k in range(1, 3):temp_sin = np.sin(dayofyear / 365 * 2 * math.pi * k)temp_cos = np.cos(dayofyear / 365 * 2 * math.pi * k)new_df[f'mug_sin{k}'] = temp_sin * new_df['Kaggle Mug']new_df[f'mug_cos{k}'] = temp_cos * new_df['Kaggle Mug']new_df[f'hat_sin{k}'] = temp_sin * new_df['Kaggle Hat']new_df[f'hat_cos{k}'] = temp_cos * new_df['Kaggle Hat']new_df = pd.concat([new_df,pd.DataFrame({f"dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(24, 32)}),pd.DataFrame({f"jan{d}":(df.date.dt.month == 1) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(1, 5)})],axis=1)return new_df train_df = engineer(original_train_df) train_df['date'] = original_train_df.date train_df['num_sold'] = original_train_df.num_sold.astype(np.float32) test_df = engineer(original_test_df) features = test_df.columns for df in [train_df, test_df]:df[features] = df[features].astype(np.float32)preproc, model = fit_model(train_df)train_pred_df = original_train_df.copy() train_pred_df['pred'] = np.exp(model.predict(preproc.transform(train_df[features])))by_date = train_pred_df[train_pred_df.country == 'Finland'].groupby(train_pred_df['date']) residuals = (by_date.pred.mean() - by_date.num_sold.mean()) / (by_date.pred.mean() + by_date.num_sold.mean()) * 200plot_all_residuals(residuals)plot_around(residuals, 1, 1, 30)



似乎1月4到15號(hào)之間還有比較明顯的誤差,同時(shí)12月初似乎也有誤差,我們先將1月的特征范圍增加到15號(hào)

# Feature engineering def engineer(df):"""Return a new dataframe with the engineered features"""def get_gdp(row):country = 'GDP_' + row.countryreturn gdp_df.loc[row.date.year, country]new_df = pd.DataFrame({'gdp': np.log(df.apply(get_gdp, axis=1)),'wd2': df.date.dt.weekday == 1, 'wd3': df.date.dt.weekday == 2,'wd4': df.date.dt.weekday == 3, 'wd5': df.date.dt.weekday == 4,'wd6': df.date.dt.weekday == 5,'wd7': df.date.dt.weekday == 6,})# One-hot encoding (no need to encode the last categories)for country in ['Finland', 'Norway']:new_df[country] = df.country == countrynew_df['KaggleRama'] = df.store == 'KaggleRama'for product in ['Kaggle Mug', 'Kaggle Hat']:new_df[product] = df['product'] == product# Seasonal variations (Fourier series)# The three products have different seasonal patternsdayofyear = df.date.dt.dayofyearfor k in range(1, 3):temp_sin = np.sin(dayofyear / 365 * 2 * math.pi * k)temp_cos = np.cos(dayofyear / 365 * 2 * math.pi * k)new_df[f'mug_sin{k}'] = temp_sin * new_df['Kaggle Mug']new_df[f'mug_cos{k}'] = temp_cos * new_df['Kaggle Mug']new_df[f'hat_sin{k}'] = temp_sin * new_df['Kaggle Hat']new_df[f'hat_cos{k}'] = temp_cos * new_df['Kaggle Hat']new_df = pd.concat([new_df,pd.DataFrame({f"dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(24, 32)}),pd.DataFrame({f"jan{d}":(df.date.dt.month == 1) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(1, 16)})],axis=1)return new_df train_df = engineer(original_train_df) train_df['date'] = original_train_df.date train_df['num_sold'] = original_train_df.num_sold.astype(np.float32) test_df = engineer(original_test_df) features = test_df.columns for df in [train_df, test_df]:df[features] = df[features].astype(np.float32)preproc, model = fit_model(train_df)train_pred_df = original_train_df.copy() train_pred_df['pred'] = np.exp(model.predict(preproc.transform(train_df[features])))by_date = train_pred_df[train_pred_df.country == 'Finland'].groupby(train_pred_df['date']) residuals = (by_date.pred.mean() - by_date.num_sold.mean()) / (by_date.pred.mean() + by_date.num_sold.mean()) * 200plot_all_residuals(residuals)plot_around(residuals, 1, 1, 30)



現(xiàn)在12月末和1月初的誤差我們已經(jīng)處理得好了很多了。但是觀察上面的散點(diǎn)圖,可以發(fā)現(xiàn)在每年的4、5、6、7、11、12月還有很明顯的誤差。我們放大區(qū)間來(lái)觀察一下。

plot_around(residuals, 4, 1, 30) plot_around(residuals, 5, 1, 30) plot_around(residuals, 6, 1, 30) plot_around(residuals, 7, 1, 30) plot_around(residuals, 11, 1, 15) plot_around(residuals, 12, 1, 30)







可以發(fā)現(xiàn)在4月每年都有相似的波動(dòng),但是有的年份波動(dòng)發(fā)生得早,有些年份的波動(dòng)發(fā)生得晚,6月底、11月初都有類(lèi)似的情況。從每年的5月1日開(kāi)始又持續(xù)時(shí)間大約10天的波動(dòng),12月初也有類(lèi)似的情況。回想之前的12月末和1月初的信息,我們可以推測(cè)這些誤差點(diǎn)可能與節(jié)假日有關(guān)。從kaggle網(wǎng)友提供的三個(gè)國(guó)家的官方節(jié)假日信息,我們可以從中得到一些啟發(fā)。

Holidays_Finland_Norway_Sweden_2015-2019

我們發(fā)現(xiàn)1月有元旦節(jié),日期固定。4月會(huì)有復(fù)活節(jié),日期不固定,5月有國(guó)際勞動(dòng)節(jié),日期固定等等。通過(guò)對(duì)節(jié)假日信息和上面誤差信息比較,我們可以對(duì)我們的特征工程做出修改:

# Feature engineering def engineer(df):def get_gdp(row):country = 'GDP_' + row.countryreturn gdp_df.loc[row.date.year, country]new_df = pd.DataFrame({'gdp': np.log(df.apply(get_gdp, axis=1)),'wd2': df.date.dt.weekday == 1, 'wd3': df.date.dt.weekday == 2,'wd4': df.date.dt.weekday == 3, 'wd5': df.date.dt.weekday == 4,'wd6': df.date.dt.weekday == 5,'wd7': df.date.dt.weekday == 6,})# One-hot encoding (no need to encode the last categories)for country in ['Finland', 'Norway']:new_df[country] = df.country == countrynew_df['KaggleRama'] = df.store == 'KaggleRama'for product in ['Kaggle Mug', 'Kaggle Hat']:new_df[product] = df['product'] == productdayofyear = df.date.dt.dayofyearfor k in range(1, 3):temp_sin = np.sin(dayofyear / 365 * 2 * math.pi * k)temp_cos = np.cos(dayofyear / 365 * 2 * math.pi * k)new_df[f'mug_sin{k}'] = temp_sin * new_df['Kaggle Mug']new_df[f'mug_cos{k}'] = temp_cos * new_df['Kaggle Mug']new_df[f'hat_sin{k}'] = temp_sin * new_df['Kaggle Hat']new_df[f'hat_cos{k}'] = temp_cos * new_df['Kaggle Hat']##圣誕節(jié)、元旦節(jié)new_df = pd.concat([new_df,pd.DataFrame({f"dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(24, 32)}),pd.DataFrame({f"jan{d}":(df.date.dt.month == 1) & (df.date.dt.day == d) & (df.country == 'Finland') for d in range(1, 16)}),pd.DataFrame({f"n-dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Norway') for d in range(24, 32)}),pd.DataFrame({f"n-jan{d}":(df.date.dt.month == 1) & (df.date.dt.day == d) & (df.country == 'Norway') for d in range(1, 10)}),pd.DataFrame({f"s-dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Sweden') for d in range(24, 32)}),pd.DataFrame({f"s-jan{d}":(df.date.dt.month == 1) & (df.date.dt.day == d) & (df.country == 'Sweden')for d in range(1, 16)})],axis=1)new_df = pd.concat([new_df,pd.DataFrame({f"may{d}":(df.date.dt.month == 5) & (df.date.dt.day == d)for d in list(range(1, 11))}), # + list(range(17, 25))pd.DataFrame({f"may{d}":(df.date.dt.month == 5) & (df.date.dt.day == d) & (df.country == 'Norway')for d in list(range(16, 28))})],axis=1)new_df = pd.concat([new_df,pd.DataFrame({f"june{d}":(df.date.dt.month == 6) & (df.date.dt.day == d) & (df.country == 'Sweden')for d in list(range(7, 15))}),],axis=1)# Midsummer Daymidsummer_day_date = df.date.dt.year.map({2015: pd.Timestamp(('2015-06-20')),2016: pd.Timestamp(('2016-06-25')),2017: pd.Timestamp(('2017-06-24')),2018: pd.Timestamp(('2018-06-23')),2019: pd.Timestamp(('2019-06-22'))})new_df = pd.concat([new_df,pd.DataFrame({f"midsummer_day{d}": (df.date - midsummer_day_date == np.timedelta64(d, "D")) & (df.country != 'Norway') for d in list(range(-2, 11))})],axis=1)# First Sunday of Novembersun_nov_date = df.date.dt.year.map({2015: pd.Timestamp(('2015-11-1')),2016: pd.Timestamp(('2016-11-6')),2017: pd.Timestamp(('2017-11-5')),2018: pd.Timestamp(('2018-11-4')),2019: pd.Timestamp(('2019-11-3'))})new_df = pd.concat([new_df,pd.DataFrame({f"sun_nov{d}": (df.date - sun_nov_date == np.timedelta64(d, "D")) & (df.country != 'Norway') for d in list(range(-1, 10))})],axis=1)# First half of December (Independence Day of Finland, 6th of December)new_df = pd.concat([new_df,pd.DataFrame({f"dec{d}":(df.date.dt.month == 12) & (df.date.dt.day == d) & (df.country == 'Finland')for d in list(range(6, 14))})],axis=1)# Eastereaster_date = df.date.apply(lambda date: pd.Timestamp(easter.easter(date.year)))new_df = pd.concat([new_df,pd.DataFrame({f"easter{d}": (df.date - easter_date == np.timedelta64(d, "D")) & (df.country == 'Finland') for d in list(range(-2, 11)) + list(range(40, 48)) + list(range(50, 59))})],axis=1)new_df = pd.concat([new_df,pd.DataFrame({f"n-easter{d}": (df.date - easter_date == np.timedelta64(d, "D")) & (df.country == 'Norway') for d in list(range(-2, 11)) + list(range(40, 48)) + list(range(50, 59))})],axis=1)new_df = pd.concat([new_df,pd.DataFrame({f"s-easter{d}": (df.date - easter_date == np.timedelta64(d, "D")) & (df.country == 'Sweden') for d in list(range(-2, 11)) + list(range(40, 48)) + list(range(50, 59))})],axis=1)return new_dftrain_df = engineer(original_train_df) train_df['date'] = original_train_df.date train_df['num_sold'] = original_train_df.num_sold.astype(np.float32) test_df = engineer(original_test_df) features = test_df.columns for df in [train_df, test_df]:df[features] = df[features].astype(np.float32)preproc, model = fit_model(train_df)train_pred_df = original_train_df.copy() train_pred_df['pred'] = np.exp(model.predict(preproc.transform(train_df[features])))by_date = train_pred_df[train_pred_df.country == 'Norway'].groupby(train_pred_df['date']) residuals = (by_date.pred.sum() - by_date.num_sold.sum()) / (by_date.pred.sum() + by_date.num_sold.sum()) * 200plot_all_residuals(residuals)plot_around(residuals, 1, 1, 15) plot_around(residuals, 4, 1, 15) plot_around(residuals, 5, 1, 30) plot_around(residuals, 6, 1, 30) plot_around(residuals, 7, 1, 30) plot_around(residuals, 11, 1, 15) plot_around(residuals, 12, 1, 30)

可以發(fā)現(xiàn)將每年的節(jié)假日加入特征之后,我們的誤差得到了很好的改善。接下來(lái)來(lái)看看評(píng)估分?jǐn)?shù)

def fit_model(X_tr, X_va=None, outliers=False):"""Scale the data, fit a model, plot the training history and validate the model"""start_time = datetime.now()# Preprocess the dataX_tr_f = X_tr[features]preproc = StandardScaler()X_tr_f = preproc.fit_transform(X_tr_f)y_tr = X_tr.num_sold.values.reshape(-1, 1)model = LinearRegression()model.fit(X_tr_f, np.log(y_tr).ravel())if X_va is not None:# Preprocess the validation dataX_va_f = X_va[features]X_va_f = preproc.transform(X_va_f)y_va = X_va.num_sold.values.reshape(-1, 1)# Inference for validationy_va_pred = np.exp(model.predict(X_va_f)).reshape(-1, 1)oof.update(pd.Series(y_va_pred.ravel(), index=X_va.index))# Evaluation: Execution time and SMAPEsmape_before_correction = np.mean(smape_loss(y_va, y_va_pred))#y_va_pred *= LOSS_CORRECTIONsmape = np.mean(smape_loss(y_va, y_va_pred))print(f"Fold {run}.{fold} | {str(datetime.now() - start_time)[-12:-7]}"f" | SMAPE: {smape:.5f} (before correction: {smape_before_correction:.5f})")score_list.append(smape)# Plot y_true vs. y_predif fold == 0:plt.figure(figsize=(10, 10))plt.scatter(y_va, y_va_pred, s=1, color='r')#plt.scatter(np.log(y_va), np.log(y_va_pred), s=1, color='g')plt.plot([plt.xlim()[0], plt.xlim()[1]], [plt.xlim()[0], plt.xlim()[1]], '--', color='k')plt.gca().set_aspect('equal')plt.xlabel('y_true')plt.ylabel('y_pred')plt.title('OOF Predictions')plt.show()return preproc, model #%%time RUNS = 1 # should be 1. increase the number of runs only if you want see how the result depends on the random seed OUTLIERS = True TRAIN_VAL_CUT = datetime(2018, 1, 1) LOSS_CORRECTION = 1# Make the results reproducible np.random.seed(202100)total_start_time = datetime.now() oof = pd.Series(0.0, index=train_df.index) score_list = [] for run in range(RUNS):kf = GroupKFold(n_splits=4)for fold, (train_idx, val_idx) in enumerate(kf.split(train_df, groups=train_df.date.dt.year)):X_tr = train_df.iloc[train_idx]X_va = train_df.iloc[val_idx]print(f"Fold {run}.{fold}")preproc, model = fit_model(X_tr, X_va)print(f"Average SMAPE: {sum(score_list) / len(score_list):.5f}") with open('oof.pickle', 'wb') as handle: pickle.dump(oof, handle)

# Plot all num_sold_true and num_sold_pred (five years) for one country-store-product combination def plot_five_years_combination(engineer, country='Norway', store='KaggleMart', product='Kaggle Hat'):demo_df = pd.DataFrame({'row_id': 0,'date': pd.date_range('2015-01-01', '2019-12-31', freq='D'),'country': country,'store': store,'product': product})demo_df.set_index('date', inplace=True, drop=False)demo_df = engineer(demo_df)demo_df['num_sold'] = np.exp(model.predict(preproc.transform(demo_df[features])))plt.figure(figsize=(20, 6))plt.plot(np.arange(len(demo_df)), demo_df.num_sold, label='prediction')train_subset = train_df[(original_train_df.country == country) & (original_train_df.store == store) & (original_train_df['product'] == product)]# plt.scatter(np.arange(len(train_subset)), train_subset.num_sold, label='true', alpha=0.5, color='red', s=3)plt.plot(np.arange(len(train_subset)), train_subset.num_sold, label='true', color='red')plt.legend()plt.title('Predictions and true num_sold for five years')plt.show()plot_five_years_combination(engineer)

生成提交數(shù)據(jù)

# Fit the model on the complete training data train_idx = np.arange(len(train_df)) X_tr = train_df.iloc[train_idx] preproc, model = fit_model(X_tr, None)plot_five_years_combination(engineer) # Quick check for debugging# Inference for test test_pred_list = [] test_pred_list.append(np.exp(model.predict(preproc.transform(test_df[features]))) * LOSS_CORRECTION)# Create the submission file sub = original_test_df[['row_id']].copy() sub['num_sold'] = sum(test_pred_list) / len(test_pred_list) sub.to_csv('submission_linear_model.csv', index=False)# Plot the distribution of the test predictions plt.figure(figsize=(16,3)) plt.hist(train_df['num_sold'], bins=np.linspace(0, 3000, 201),density=True, label='Training') plt.hist(sub['num_sold'], bins=np.linspace(0, 3000, 201),density=True, rwidth=0.5, label='Test predictions') plt.xlabel('num_sold') plt.ylabel('Frequency') plt.legend() plt.show() sub



因?yàn)殇N(xiāo)售數(shù)量是整數(shù),我們對(duì)結(jié)果進(jìn)行四舍五入一下,提交看看哪個(gè)分?jǐn)?shù)要高些。

# Create a rounded submission file sub_rounded = sub.copy() sub_rounded['num_sold'] = sub_rounded['num_sold'].round() sub_rounded.to_csv('submission_linear_model_rounded.csv', index=False) sub_rounded

未四舍五入的分?jǐn)?shù)

四舍五入的分?jǐn)?shù)

相關(guān)連接:

Kaggle Tabular Playground Series - Jan 2022 學(xué)習(xí)筆記1(數(shù)據(jù)分析)

總結(jié)

以上是生活随笔為你收集整理的Kaggle Tabular Playground Series - Jan 2022 学习笔记2(使用时间序列的线性回归)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

免费日韩一区二区三区 | 亚洲国产日韩在线 | 这里只有精品视频在线 | 一二区av| 国产亚洲欧美在线视频 | 黄色一级片视频 | 狠狠的操你| 国产综合在线观看视频 | 精品国产伦一区二区三区观看体验 | 亚洲精品自拍视频在线观看 | 久久综合久久综合这里只有精品 | 在线免费观看视频一区二区三区 | 高潮久久久久久 | 成年人免费电影在线观看 | 国产福利免费看 | 欧美精品xxx | 成人久久久久久久久 | 福利视频网址 | 天天做天天爱夜夜爽 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 亚洲国产精品久久 | 99视频国产精品 | 99国产精品 | 综合精品久久久 | 亚洲精品美女久久 | 久久国产成人午夜av影院潦草 | 日韩在线观看视频网站 | 99久久一区 | 久久人人爽人人片 | 免费精品 | 黄色一区二区在线观看 | 成人高清在线观看 | 女人18片 | 国产精品1区2区在线观看 | 国产在线观看xxx | 日韩电影精品一区 | 97福利在线观看 | 99精品视频观看 | 亚洲精品在线视频网站 | 麻豆一精品传二传媒短视频 | 香蕉久久久久 | 欧美激情精品久久久久 | 久久视频中文字幕 | 米奇四色影视 | 欧美激情精品久久 | 国产香蕉97碰碰碰视频在线观看 | 久久a热6 | 欧美美女视频在线观看 | 色吊丝在线永久观看最新版本 | 91视频 - 88av| 午夜精品久久久久久久99 | 少妇高潮流白浆在线观看 | 国色综合 | 99色婷婷 | 欧美日韩国产综合一区二区 | av免费电影在线 | 国产精品专区在线 | 国产精品欧美日韩在线观看 | 丁香五香天综合情 | 久久久久久蜜桃一区二区 | 日韩精品一区二区三区免费观看视频 | 日日操网| 日本天天色 | 97激情影院 | 黄色大片av | 国产情侣一区 | 一区二区三区四区在线 | 欧美日韩亚洲在线观看 | 日韩av在线资源 | 国产成人久久精品一区二区三区 | 99热这里有 | 99精品免费视频 | 麻豆免费视频网站 | 99久国产 | 亚洲japanese制服美女 | 在线观看国产区 | 九月婷婷综合网 | 色婷婷亚洲婷婷 | 中文字幕人成不卡一区 | 中文字幕在线观看播放 | 国产69精品久久久久久 | 日韩av网页| 久草在线手机观看 | 狠狠操操| 九九在线国产视频 | 欧美日韩伦理在线 | 中文字幕在线播放一区二区 | 国产精品久久久久久欧美 | 狠狠干中文字幕 | 精品福利在线 | 精品女同一区二区三区在线观看 | 亚洲一区二区三区miaa149 | 亚洲综合欧美精品电影 | 香蕉久草| 啪啪动态视频 | a级国产乱理论片在线观看 特级毛片在线观看 | 亚洲第一区在线观看 | 最新av网站在线观看 | 国产精品黄网站在线观看 | 成人h在线| 亚洲视频网站在线观看 | 久久视频这里有精品 | 最近免费在线观看 | 国产麻豆成人传媒免费观看 | 91亚洲精品久久久蜜桃借种 | a v在线观看| 国产自在线观看 | 超碰97国产精品人人cao | 日韩欧美亚州 | 久久艹精品 | 亚洲精品小视频在线观看 | 精品国产激情 | 亚洲日韩中文字幕 | 欧美性成人| 99久高清在线观看视频99精品热在线观看视频 | 国产美女视频免费观看的网站 | 国产精品毛片网 | 免费视频一级片 | 一区二区三区动漫 | 久久精品站 | 欧美淫视频| a天堂最新版中文在线地址 久久99久久精品国产 | 欧美成年黄网站色视频 | 99视频免费 | 99成人在线视频 | 91 在线视频 | 国模视频一区二区三区 | 久久精品亚洲精品国产欧美 | 国产一级精品绿帽视频 | 最近能播放的中文字幕 | 亚洲春色综合另类校园电影 | 天天拍天天操 | 国产福利在线免费 | 日韩在线一二三区 | 欧美日韩二三区 | 麻豆免费观看视频 | 日本黄色免费看 | 日韩免费精品 | 高清视频一区二区三区 | 久久中文精品视频 | 久久久www成人免费精品 | 国产高清在线一区 | 狠狠的干狠狠的操 | 91免费试看| 2023国产精品自产拍在线观看 | 探花视频在线版播放免费观看 | www99久久 | 亚洲精品在线视频网站 | 国产艹b视频 | 精品国模一区二区 | 久久久久高清 | 五月天激情综合网 | 日本性xxxxx 亚洲精品午夜久久久 | 亚洲男男gaygay无套 | 狠狠操夜夜 | av成人在线播放 | 久久国产免费视频 | 国产在线高清视频 | 亚洲区视频在线观看 | 四虎国产精品免费 | www.夜夜爽| 黄色小说在线免费观看 | 日本黄色免费观看 | 成人97视频一区二区 | 天天综合91| 国产一级二级视频 | 欧美国产精品久久久久久免费 | 日韩精品在线观看av | 免费观看一区二区 | 久草在线视频免赞 | 亚洲精品在线视频播放 | 在线观看不卡视频 | 国产成人一区二区三区免费看 | 五月激情在线 | 亚洲黄色小说网 | 精品久久久久久久久中文字幕 | 欧美大片aaa | av电影不卡在线 | 亚洲自拍偷拍色图 | 69av国产| 欧美一区二区精美视频 | 最近更新好看的中文字幕 | 久久精品成人欧美大片古装 | 国产69久久精品成人看 | 99欧美视频| 91人人爱 | 在线观看的av| 99精品热 | 中文字幕日韩国产 | 日本久久免费电影 | 999精品在线| 色综合久久久网 | 日韩美在线 | 国产成人av在线影院 | 天天色天天上天天操 | 免费韩国av | 国产91免费在线观看 | 六月丁香婷婷在线 | 亚洲成人欧美 | 91成人网页版 | 欧美在线视频精品 | 在线观看亚洲国产精品 | 深夜国产福利 | 欧美一级小视频 | 日日天天干 | 久久ww| 成年人视频在线免费 | 激情综合中文娱乐网 | 国产精品免费在线播放 | 国产精品视频免费观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 在线免费黄网站 | 久草视频在线新免费 | 97在线资源 | 成人h电影在线观看 | 久久国际影院 | 精品一区二区三区久久久 | 嫩小bbbb摸bbb摸bbb | 日韩高清在线不卡 | 国产精品中文久久久久久久 | 国产美腿白丝袜足在线av | 国产精久久久久久妇女av | 精品久久五月天 | 亚洲一区免费在线 | av大片免费 | av线上免费看 | 91高清一区 | 麻豆观看| www国产在线| 激情视频在线高清看 | 国产一级免费电影 | 日韩精品一区二区不卡 | 天天天干天天天操 | 精品久久久久久久久久久久久久久久 | 国产永久免费 | 日本久久99 | 99超碰在线播放 | 天堂网在线视频 | 国产在线中文 | 成人一区二区在线观看 | 中文字幕在线免费看 | 黄色综合| 久草视频在线新免费 | 中文字幕一区在线 | 日韩av中文字幕在线免费观看 | 欧美色图30p | 久久不射电影院 | 久久天天综合网 | 国产伦精品一区二区三区四区视频 | 日韩精品免费一区二区 | 免费99精品国产自在在线 | 天天射天天舔天天干 | 日韩免费一级a毛片在线播放一级 | 久草网在线视频 | 国产片免费在线观看视频 | 久久国产三级 | 综合婷婷| 欧美精品亚洲精品日韩精品 | 一区二区三区动漫 | 色噜噜在线观看 | 91网站免费观看 | 亚洲成av人片在线观看www | 久久看片 | 精品国产自在精品国产精野外直播 | 天天射成人 | 国产精品永久 | 国产精品18videosex性欧美 | 精品视频不卡 | 久草精品视频 | 久久久精品视频成人 | 精品av网站 | 国产精品精品久久久 | 国产精品视频免费看 | 日韩欧美成 | 激情综合狠狠 | 黄色网在线免费观看 | 丁香婷婷激情啪啪 | 97国产| 人人玩人人添人人澡超碰 | 国产亚洲在 | 中文字幕一区二区三区久久蜜桃 | 九九视频免费在线观看 | 精品国产区 | 国产精品中文字幕在线观看 | 樱空桃av | 午夜精品久久久久久久99热影院 | 日韩中文字幕视频在线 | 黄色日批网站 | 精品欧美乱码久久久久久 | 天天干天天操人体 | 亚洲 中文 欧美 日韩vr 在线 | 国外av在线 | 午夜精品一区二区三区在线播放 | 国产精品av一区二区 | 中文乱幕日产无线码1区 | 欧美在线视频一区二区 | 成人a级网站 | 日日躁夜夜躁aaaaxxxx | 久久综合成人 | 欧美激情亚洲综合 | 黄污视频网站大全 | 国产精品一区欧美 | 国产精品第三页 | 精品综合久久久 | 欧美日韩综合在线观看 | www.天天操| 永久免费av在线播放 | 国产一区二区不卡视频 | 女人久久久久 | 精品一区二区三区久久 | 色老板在线视频 | 国产第一页精品 | 高清在线观看av | 国产成人精品久久二区二区 | 亚洲爱爱视频 | 久久狠狠亚洲综合 | 亚洲成av片人久久久 | 91黄色免费网站 | 欧美99热| 亚洲h在线播放在线观看h | 精品1区2区3区 | 精品久久免费 | 日韩黄视频 | www.com操| 一区二区视 | 91在线视频精品 | 中文字幕频道 | 国产精品视频app | 亚洲免费在线看 | 亚洲精品美女久久久久 | 久草久热| 成人黄色影片在线 | 欧美一级网站 | 天天弄天天操 | 在线观看的av | 国产特级毛片aaaaaa高清 | 国产亚洲一区二区三区 | 99精品视频在线观看免费 | 黄色毛片观看 | 久久香蕉国产精品麻豆粉嫩av | 国产精品嫩草影院123 | 亚洲一区二区精品 | 日韩精品免费在线 | 超碰免费公开 | 人人看97| 黄色大全免费观看 | 久久99精品久久久久久久久久久久 | 深爱激情久久 | 狠狠做深爱婷婷综合一区 | 91久久精品一区二区三区 | 日本精品一区二区 | 黄色资源网站 | 亚洲在线网址 | 综合久久一本 | 久久情侣偷拍 | 精品1区二区 | 中文字幕一区二区在线观看 | 国产一级视频 | 久久国产91| 国产精品理论片 | 日韩电影在线观看一区二区 | 九色porny真实丨国产18 | 国产精品久久久久久久电影 | 在线观看网站av | 国产免费亚洲 | 国产日韩在线播放 | 在线免费观看视频一区 | 伊人狠狠干 | 偷拍精偷拍精品欧洲亚洲网站 | 91漂亮少妇露脸在线播放 | 91高清免费看 | 国产又粗又猛又黄 | 麻豆视频免费入口 | 天天草av| 国产精品一级视频 | 久久超碰免费 | 国产在线欧美 | 四虎小视频 | 99re在线视频观看 | 国产麻豆视频免费观看 | 在线国产一区二区 | 亚洲欧洲国产视频 | 免费三级网 | 丁香综合av| 久久国产精品影片 | 亚洲精品一区二区三区四区高清 | 国产麻豆视频在线观看 | 亚洲视频每日更新 | 国产精品久久久久久久久久东京 | 亚洲欧洲成人精品av97 | 日韩美在线观看 | 国产日产精品久久久久快鸭 | 成年人在线观看 | 91精品国产高清自在线观看 | 精品一二三区 | 日韩一区二区三免费高清在线观看 | 天天干天天弄 | 天天av资源 | 亚洲激情 在线 | 中文字幕日本电影 | 亚洲我射av| 久久久精品一区二区 | 五月婷婷,六月丁香 | 久久精品直播 | 久草资源免费 | 91片网 | 成人免费视频网站在线观看 | 免费在线 | 六月色婷| 免费热情视频 | 日韩电影中文,亚洲精品乱码 | 美女网站黄在线观看 | 亚洲视屏在线播放 | 99精品国产成人一区二区 | 天天色天天射天天综合网 | 国产精品久久久久久久毛片 | 91成人精品在线 | 亚洲黄色在线 | 在线观看精品国产 | 久操视频在线观看 | 久久久影院一区二区三区 | 中文字幕第一页av | 亚洲黄色区 | 国产 欧美 日产久久 | 国产麻豆电影在线观看 | 国产精品一区免费看8c0m | 久久一区二区三区日韩 | 永久免费av在线播放 | 精品国产免费av | 日本中文字幕在线电影 | 中文字幕你懂的 | 久久久www成人免费精品 | 97超碰在线资源 | 国产系列精品av | 中文成人字幕 | 日韩手机视频 | 一级成人在线 | 日韩va亚洲va欧美va久久 | 国产成人a亚洲精品v | 国产视频在线播放 | 亚洲精品玖玖玖av在线看 | 日韩网站在线播放 | 日本aaaa级毛片在线看 | 人人草人人草 | 国产一级二级视频 | 久久久国产精品人人片99精片欧美一 | 91超在线 | 麻豆成人网 | 色婷婷综合视频在线观看 | 亚洲最快最全在线视频 | 日韩精品免费一区二区在线观看 | 成人h动漫精品一区二 | 久久精品国产亚洲a | 91九色成人蝌蚪首页 | 国产在线播放不卡 | 国产91精品久久久久 | 亚洲免费精品一区二区 | 久久影视一区 | 大胆欧美gogo免费视频一二区 | 97手机电影网 | 日本黄色免费网站 | 国产精品一区二区久久精品 | 久久综合电影 | av在线一 | 欧美日韩视频在线 | av在线播放国产 | 97人人模人人爽人人喊中文字 | 亚洲一区久久久 | 美女视频黄频大全免费 | 天天操天天操天天爽 | 国产亚洲一区二区在线观看 | 日韩一级片大全 | 日韩久久精品一区二区三区 | 国产在线观看高清视频 | 欧美激情第十页 | 免费视频资源 | 中文字幕人成一区 | av电影在线免费观看 | www久久九 | 99在线视频播放 | 国产黄色片免费看 | 欧美一区二区三区在线播放 | 久久久久久毛片精品免费不卡 | 视频91| 在线欧美中文字幕 | 九九热在线观看 | 操操操人人 | 久久这里有精品 | 国产成人精品免高潮在线观看 | 狠狠狠干狠狠 | 色就是色综合 | av大全在线看 | 色婷婷免费 | 久久影院中文字幕 | www.精选视频.com | 在线国产一区二区三区 | 亚洲最大激情中文字幕 | 2023年中文无字幕文字 | 激情综合亚洲 | 久久久久激情视频 | 日韩欧美在线一区二区 | 亚洲精品乱码久久久久久按摩 | 人人干狠狠干 | 精品视频在线免费 | 成人精品视频 | 91传媒视频在线观看 | 婷婷资源站 | 免费a级毛片在线看 | 国产精品一区二区三区久久 | 精品毛片一区二区免费看 | 欧美日韩二区三区 | 在线亚洲观看 | 日日摸日日添夜夜爽97 | 4438全国亚洲精品观看视频 | 亚洲爱爱视频 | 久久久国产精品麻豆 | 国产日韩精品一区二区 | 99精品久久只有精品 | 黄色三级免费网址 | 五月天六月婷 | 久久综合影院 | 亚洲精品午夜久久久久久久 | 欧美成人手机版 | 日韩精品无码一区二区三区 | 一级a毛片高清视频 | 久久精品人 | 日日碰夜夜爽 | avwww在线 | 国产精品 日韩精品 | 狠狠躁日日躁狂躁夜夜躁av | av黄色免费网站 | 国产免费av一区二区三区 | 国产成人免费精品 | 97超级碰 | 午夜视频日本 | 国产成人精品综合 | 日韩精品中文字幕在线观看 | 黄色一级免费 | 91在线成人| 日日夜夜天天综合 | 欧美日韩国产页 | 激情五月婷婷网 | 97在线资源 | 久久精品一 | 国产精品不卡一区 | 91成人网在线观看 | 久久精品精品电影网 | 日韩区在线观看 | 久久久久久蜜av免费网站 | 免费网站看av片 | 国产69久久久欧美一级 | 久草视频资源 | 亚洲天堂自拍视频 | 免费精品国产 | 在线视频1卡二卡三卡 | 特级a毛片| 美女久久一区 | 精品xxx| 亚洲va欧美va| 日韩中文字幕免费电影 | 亚洲三级黄 | 久久人人爽人人爽 | 久久在草| 亚洲精品66| 亚洲婷婷免费 | 欧洲av不卡 | 最新影院| 日韩av一区二区在线影视 | 成人福利在线播放 | 97视频人人澡人人爽 | 色欧美成人精品a∨在线观看 | 久久精品免费观看 | 中文字幕丝袜一区二区 | 成人永久视频 | 在线三级播放 | 在线视频国产区 | 免费视频一二三 | 香蕉视频日本 | 国产精品久久久777 成人手机在线视频 | 免费性网站 | 国产精品毛片一区视频播 | 天天干,天天操 | 亚洲欧洲av在线 | 国产亚洲精品美女久久 | www五月 | 欧美激情奇米色 | 欧美日韩国产精品一区 | 又爽又黄又无遮挡网站动态图 | a视频免费| 欧美另类交人妖 | 日韩国产精品久久久久久亚洲 | 在线观看日韩 | 国产成人精品免费在线观看 | 精品一区av | 国产精品一区二区在线免费观看 | 99精品久久99久久久久 | 久久久久久蜜av免费网站 | 免费精品视频在线观看 | 国产精品手机看片 | 国产精品亚洲精品 | 久久黄色免费视频 | 成人在线超碰 | 欧美精品免费在线 | 天天操天天操天天操天天操天天操天天操 | 久久a免费视频 | 免费a v视频 | 欧美国产日韩一区二区三区 | 欧美日韩在线观看一区二区 | 99九九热只有国产精品 | 亚洲v欧美v国产v在线观看 | 国产小视频在线播放 | 深爱婷婷网 | 97超碰人人澡人人爱学生 | 在线你懂| 免费在线观看亚洲视频 | 国产日韩高清在线 | 久久免费的精品国产v∧ | 99国产情侣在线播放 | 精品一区二区精品 | 国产专区第一页 | 免费在线观看一级片 | 欧美日韩国产一区二区三区 | 国产精品一区二区吃奶在线观看 | 日本在线观看中文字幕无线观看 | 夜夜高潮夜夜爽国产伦精品 | 国产婷婷精品av在线 | 欧美激情精品久久久久久免费 | 国产精品成人国产乱 | 国产精品久久久久久久久久不蜜月 | 精品国产一二三四区 | av在线等 | 毛片永久新网址首页 | 成人毛片网| 国产手机视频在线 | 国产精品18久久久 | 很黄很污的视频网站 | 国产精久久久久久久 | 人人舔人人插 | 免费av高清| 欧美国产高清 | 亚洲欧洲精品一区二区 | 五月天电影免费在线观看一区 | 最新国产一区二区三区 | 成人av电影在线播放 | 久久精品一区二区三区四区 | 日本久久成人 | 国产免费影院 | 欧美日韩免费网站 | 亚洲视频在线免费看 | 天天天干夜夜夜操 | 91久草视频| 久久这里只有精品9 | 日韩三级视频在线观看 | 亚洲成人午夜在线 | 国产不卡一区二区视频 | 国产性xxxx | 午夜国产福利在线 | 国产精品久久久av久久久 | 97精品久久 | 亚洲人视频在线 | 午夜精品久久久久久久99婷婷 | 久久久久久高潮国产精品视 | av在线专区| 日韩综合一区二区三区 | 最近中文字幕高清字幕在线视频 | 午夜久久久精品 | 国产精品久久久久久久久久久久午夜 | 久久综合激情 | 99r国产精品 | 天天鲁一鲁摸一摸爽一爽 | 精品久久久久久久久久国产 | 中文字幕视频观看 | 欧美精品一区二区三区四区在线 | av不卡免费看 | 中文乱幕日产无线码1区 | 日日爽视频 | 人九九精品 | 九九热在线精品视频 | 国产91aaa | 国产小视频在线免费观看视频 | 国产免费专区 | 黄色小说在线免费观看 | 99久久999久久久精玫瑰 | 日本在线中文在线 | 欧美日韩一区二区视频在线观看 | 在线 国产一区 | 亚洲经典视频 | 丁香六月天 | 中文字幕在线第一页 | 99精品视频免费 | 欧美日韩国产网站 | av电影在线播放 | 日日夜夜人人天天 | www.亚洲黄 | 久久一级片 | 成人亚洲免费 | 在线中文字母电影观看 | 精久久久久 | av东方在线| www.av小说 | 91精品欧美一区二区三区 | 综合久久五月天 | 日本不卡视频 | 五月婷婷丁香在线观看 | 日韩毛片在线免费观看 | 国产一级大片免费看 | 国产精品中文字幕在线播放 | 日韩av综合网站 | 国产无套精品久久久久久 | 欧美精品久久99 | 国产特级毛片aaaaaa | 亚洲婷婷综合色高清在线 | 日韩欧美在线播放 | 午夜123| 欧美精品久久久久 | 日韩免费电影一区二区 | 午夜精品久久久久99热app | 毛片视频电影 | 亚洲色综合 | 97国产精品亚洲精品 | 天天干,天天插 | 精品视频| 婷婷激情综合五月天 | 国产精品毛片一区二区在线看 | 亚洲欧美日韩不卡 | 99国产精品视频免费观看一公开 | 日日干影院| 免费观看成人av | 亚洲精品在线一区二区 | 久久久伊人网 | 草久热 | 久久久影院一区二区三区 | 国产黄色片免费观看 | 日本韩国精品一区二区在线观看 | 国产超碰在线 | 国产在线观看高清视频 | 99riav1国产精品视频 | 中文字幕在线观看一区 | 91正在播放 | 91九色国产视频 | 久草在线视频免费资源观看 | 日韩大片在线 | 婷婷丁香七月 | 麻豆91网站| 成人免费共享视频 | 天天躁日日躁狠狠躁 | 亚洲视频免费 | 在线观看小视频 | 在线免费视频 你懂得 | 青青河边草观看完整版高清 | 91日韩在线专区 | 不卡的av片 | 国产精品白浆 | 国产视频美女 | 偷拍视频一区 | 99精品偷拍视频一区二区三区 | 人人舔人人爱 | 亚洲国产午夜 | 在线观看国产区 | 美女久久久久久久 | 日韩一区在线免费观看 | 亚洲成人第一区 | 色综合久久综合中文综合网 | 中文av字幕在线观看 | 欧美国产高清 | 欧美日本三级 | 日韩欧美电影 | 亚洲一级电影视频 | 永久免费精品视频网站 | 亚洲成av人电影 | 天天av天天| 欧美在线视频一区二区三区 | 99热精品国产一区二区在线观看 | 亚洲91网站| 欧美性生活小视频 | 麻豆系列在线观看 | 精品亚洲欧美一区 | 免费看精品久久片 | 天天操天天操天天操天天操天天操天天操 | 国产一区 在线播放 | 国产精品久久久久久久久大全 | 亚洲视频99 | 亚洲激情在线视频 | 91免费的视频在线播放 | 五月婷婷激情六月 | 亚洲国产中文字幕在线 | 亚洲激情av | 午夜视频在线观看一区二区 | 久久久久久久久久久久影院 | 热久久免费视频精品 | av看片在线 | 亚洲深夜影院 | 97超碰人人看 | 日韩精品一区二区三区在线播放 | 97超碰人人澡人人爱学生 | 久久99精品波多结衣一区 | 久久久五月婷婷 | 亚洲精品在线观看不卡 | 国产夫妻自拍av | 亚洲va欧洲va国产va不卡 | 在线观看免费观看在线91 | av高清在线 | 久久久久一区二区三区四区 | 日韩电影一区二区三区在线观看 | 美女国产在线 | 精品久久免费看 | 国产精品系列在线观看 | 亚洲精品综合一区二区 | av不卡中文 | www.色爱| 精品国产亚洲日本 | 六月丁香色婷婷 | 精品播放 | 久久免费99精品久久久久久 | 91精品国产自产老师啪 | 精品一区二区三区四区在线 | 久久久久久看片 | 黄色一级在线观看 | 婷婷久草| 免费在线国产视频 | 国产又粗又硬又爽视频 | 女人高潮一级片 | 在线国产视频 | 国产亚洲欧美一区 | 国产在线91精品 | 国产免费影院 | 免费福利在线播放 | 国产精品久久99精品毛片三a | 香蕉视频亚洲 | 欧美日韩高清一区二区 | 成人免费观看完整版电影 | 精品免费久久久久 | 中文字幕精品一区 | 美女av在线免费 | 色噜噜噜| 日韩欧美极品 | 亚洲精品免费在线观看视频 | 精品国产一区二区三区久久影院 | 久久一区二区三区超碰国产精品 | 日本在线视频网址 | 免费成人在线网站 | 婷婷伊人五月 | 亚洲国产精品成人va在线观看 | 天天夜夜亚洲 | av成人免费观看 | 91精品啪 | 中国一级特黄毛片大片久久 | 国产99久久精品 | 亚洲每日更新 | 久久精品久久综合 | 伊甸园永久入口www 99热 精品在线 | 国产精品久久久久久吹潮天美传媒 | 国产96视频 | 日韩三级久久 | 日韩城人在线 | 中文字幕日韩精品有码视频 | 九九九九九国产 | 欧美一级视频免费看 | 午夜色场 | 手机av永久免费 | av网站播放 | 成人国产精品一区二区 | 精品美女在线视频 | 伊人成人精品 | 曰本免费av| 中文字幕有码在线观看 | 美女视频久久 | 99久久精品久久亚洲精品 | 国产成人精品午夜在线播放 | 日日夜夜中文字幕 | 九九热re| 天天干夜夜| av大全在线免费观看 | 99久久影院 | 黄色软件在线观看免费 | 丁香激情综合国产 | 欧美极品xxxx| 国产资源免费 | 成人精品一区二区三区电影免费 | 中文字幕高清视频 | 一区二区三区国 | 久草在线在线精品观看 | 99久久久久久国产精品 | 欧美一级视频免费 | 国产精品久久久久一区二区国产 | 国内亚洲精品 | 久久久不卡影院 | 国产黄 | 精品视频免费看 | 久久精品国产免费 | 黄色小网站在线 | 成年人视频在线免费 | 成人黄色大片在线免费观看 | 久久综合在线 | 国产日产精品一区二区三区四区的观看方式 | 91看片在线免费观看 | 国产精品久久久久永久免费观看 | 亚洲黄a| 亚洲精品综合一二三区在线观看 | 色夜视频| 狂野欧美激情性xxxx欧美 | 久久久久久福利 | 久久婷婷精品 | 国内精品视频在线播放 | 国产美女网站在线观看 | 亚洲乱亚洲乱亚洲 | www天天干com| 成人在线电影观看 | 国产小视频在线播放 | 中国成人一区 | 国产精品毛片一区视频播不卡 | 四虎天堂 | 毛片网站免费在线观看 | 丁香花在线观看免费完整版视频 | 一级黄视频 | 美州a亚洲一视本频v色道 | 久久你懂的 | aaa日本高清在线播放免费观看 | 右手影院亚洲欧美 | 青青河边草免费观看完整版高清 | www.啪啪.com| 黄色免费网| 一区二区视频在线播放 | 97在线视频免费观看 | 欧美日韩中文在线观看 | 探花视频在线观看+在线播放 | 青青久草在线 | 亚洲欧洲一区二区在线观看 | 天天se天天cao天天干 | 日韩欧美在线高清 | 国产精品久久久久久爽爽爽 | 亚洲成a人片在线观看网站口工 | 插婷婷 | 久香蕉 | 精品久久久久久亚洲综合网 | 国产一区二区三区免费在线 | 91精品国产欧美一区二区成人 | 日日综合网| 国产日韩欧美视频在线观看 | 精品国产综合区久久久久久 | 91亚洲精品乱码久久久久久蜜桃 | 五月婷婷香蕉 | 韩日精品中文字幕 | 91在线区 | 国产一级片一区二区三区 | 黄色成品视频 | 黄色片免费看 | 最近日本韩国中文字幕 | 欧美日在线| 国产 一区二区三区 在线 | 色大片免费看 | 久久久国产一区二区 | 久草在线一免费新视频 | 中文字幕在线视频精品 | 久久一区二区免费视频 | 欧美精品久久久久久久久免 | 精品一区二区三区久久 | 久草在线视频首页 | 久久综合九色综合久久久精品综合 | 国产成人一区三区 | 992tv在线 | 久久一区国产 | 黄av免费在线观看 | 国产人成免费视频 | 中文字幕在线观看的网站 | 午夜精品一区二区国产 | 992tv在线| 2023年中文无字幕文字 | 久久久久久福利 | 日韩美视频 | 久草在线资源网 | 欧美一区二区免费在线观看 | 色综合天天天天做夜夜夜夜做 | 久热色超碰 | 国产中文字幕视频在线观看 | 狠狠干激情 | 国产亚洲精品久久久久动 | 欧美一级久久久 | 日本高清免费中文字幕 | 日日夜夜精品视频天天综合网 | 中文字幕在线播放第一页 | 人人干干人人 | 国产一级久久久 | 国产一区二区久久久久 | 久久一区精品 | 亚洲高清在线 | 久久午夜羞羞影院 | 久久午夜影院 | 久久国产精品99国产精 | 亚洲欧美视频在线观看 | 婷婷香蕉| 亚洲年轻女教师毛茸茸 | 亚洲成av人影院 | 久久精品一区八戒影视 | 日本精品一二区 | 91精品导航 | 国产一区不卡在线 | 天天天天天天操 |