{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"### DeepFM :https://github.com/shenweichen/DeepCTR-Torch\n### Paper : https://www.ijcai.org/proceedings/2017/0239.pdf\n * DeepFM do not need domain knowledge because this model Don't use feature engineering\n * So We run it!","metadata":{}},{"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport random\nimport gc\n\nplt.style.use('ggplot')\n\nimport warnings as w\nw.filterwarnings(action='ignore')\npd.set_option('display.max_columns',None)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:00:21.995182Z","iopub.execute_input":"2022-06-02T03:00:21.995926Z","iopub.status.idle":"2022-06-02T03:00:22.929674Z","shell.execute_reply.started":"2022-06-02T03:00:21.995845Z","shell.execute_reply":"2022-06-02T03:00:22.928874Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dtype={'id': np.dtype(int),\n    'click': np.dtype(int),\n    'hour': np.str,\n    'C1': np.dtype(str),\n    'banner_pos': np.dtype(str),\n    'site_id': np.dtype(str),\n    'site_domain': np.dtype(str), \n    'site_category': np.dtype(str),\n    'app_id': np.dtype(str),\n    'app_domain': np.dtype(str),\n    'app_category': np.dtype(str),\n    'device_id': np.dtype(str),\n    'device_ip': np.dtype(str),\n    'device_model': np.dtype(str),\n    'device_type': np.dtype(str),\n    'device_conn_type': np.dtype(str),\n    'C14': np.dtype(str),\n    'C15': np.dtype(str),\n    'C16': np.dtype(str),\n    'C17': np.dtype(str),\n    'C18': np.dtype(str),\n    'C19': np.dtype(str),\n    'C20': np.dtype(str),\n    'C21':np.dtype(str)\n      }\nnum_records = 40428967\nsample_size = 5000000\nskip_values = sorted(random.sample(range(1,num_records), num_records - sample_size))\nparse_date = lambda val : pd.datetime.strptime(val, '%y%m%d%H')","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:00:22.931268Z","iopub.execute_input":"2022-06-02T03:00:22.931592Z","iopub.status.idle":"2022-06-02T03:01:37.169613Z","shell.execute_reply.started":"2022-06-02T03:00:22.931567Z","shell.execute_reply":"2022-06-02T03:01:37.168773Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv(\"../input/avazu-ctr-prediction/train.gz\", parse_dates=['hour'], date_parser=parse_date, dtype=dtype, skiprows=skip_values)\ntest = pd.read_csv('../input/avazu-ctr-prediction/test.gz')\nsubmission = pd.read_csv('../input/avazu-ctr-prediction/sampleSubmission.gz')\nprint('Train dataset:',train.shape)\nprint('Test dataset:',test.shape)\nprint('Submission:',submission.shape)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:01:37.171241Z","iopub.execute_input":"2022-06-02T03:01:37.171916Z","iopub.status.idle":"2022-06-02T03:05:34.832147Z","shell.execute_reply.started":"2022-06-02T03:01:37.171873Z","shell.execute_reply":"2022-06-02T03:05:34.831234Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Feature Expalin\n  1. id : personal_id\n  2. click : target\n  3. hour : datetime\n  4. C1 : anonymized categorical variable\n  5. banner_pos : showing banner\n  6. site domain\n  7. site_category \n  8. app_id \n  9. add_category\n  10. device_id \n  11. device_ip\n  12. device_model\n  13. device_type\n  14. device_conn_type\n  15. C14 ~ C21 : anonymized categorical variables","metadata":{}},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:34.834585Z","iopub.execute_input":"2022-06-02T03:05:34.835117Z","iopub.status.idle":"2022-06-02T03:05:34.862626Z","shell.execute_reply.started":"2022-06-02T03:05:34.835079Z","shell.execute_reply":"2022-06-02T03:05:34.861763Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:34.864159Z","iopub.execute_input":"2022-06-02T03:05:34.864521Z","iopub.status.idle":"2022-06-02T03:05:34.884556Z","shell.execute_reply.started":"2022-06-02T03:05:34.864484Z","shell.execute_reply":"2022-06-02T03:05:34.883695Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.isna().sum()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:34.885959Z","iopub.execute_input":"2022-06-02T03:05:34.886605Z","iopub.status.idle":"2022-06-02T03:05:44.971084Z","shell.execute_reply.started":"2022-06-02T03:05:34.886566Z","shell.execute_reply":"2022-06-02T03:05:44.970172Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.click.value_counts().plot(kind='bar')\nprint(train.click.value_counts())","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:44.972389Z","iopub.execute_input":"2022-06-02T03:05:44.972829Z","iopub.status.idle":"2022-06-02T03:05:45.230770Z","shell.execute_reply.started":"2022-06-02T03:05:44.972791Z","shell.execute_reply":"2022-06-02T03:05:45.229966Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Target feature data imbalance","metadata":{}},{"cell_type":"code","source":"train.banner_pos.value_counts()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:45.232186Z","iopub.execute_input":"2022-06-02T03:05:45.232597Z","iopub.status.idle":"2022-06-02T03:05:45.849573Z","shell.execute_reply.started":"2022-06-02T03:05:45.232562Z","shell.execute_reply":"2022-06-02T03:05:45.848460Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(15,10))\nsns.countplot(x='banner_pos',hue='click',data=train)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:45.851185Z","iopub.execute_input":"2022-06-02T03:05:45.851535Z","iopub.status.idle":"2022-06-02T03:05:52.649491Z","shell.execute_reply.started":"2022-06-02T03:05:45.851503Z","shell.execute_reply":"2022-06-02T03:05:52.648697Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Banner pos is not effienct increasing user click  ","metadata":{}},{"cell_type":"code","source":"plt.figure(figsize=(15,10))\nsns.countplot(x='hour',hue='click',data=train)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:52.652734Z","iopub.execute_input":"2022-06-02T03:05:52.653032Z","iopub.status.idle":"2022-06-02T03:05:58.584323Z","shell.execute_reply.started":"2022-06-02T03:05:52.653007Z","shell.execute_reply":"2022-06-02T03:05:58.583566Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### The date is too long to identify characteristics, so sample data is taken to run a sample survey","metadata":{}},{"cell_type":"code","source":"ex_data = train[train.hour < '2014-10-22']\nex_data.head()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:58.585632Z","iopub.execute_input":"2022-06-02T03:05:58.586113Z","iopub.status.idle":"2022-06-02T03:05:58.700952Z","shell.execute_reply.started":"2022-06-02T03:05:58.586069Z","shell.execute_reply":"2022-06-02T03:05:58.699901Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(70,20))\nsns.countplot(x='hour',hue='click',data=ex_data)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:58.702361Z","iopub.execute_input":"2022-06-02T03:05:58.702782Z","iopub.status.idle":"2022-06-02T03:05:59.817835Z","shell.execute_reply.started":"2022-06-02T03:05:58.702745Z","shell.execute_reply":"2022-06-02T03:05:59.817031Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Clicks don't seem to be affected by time","metadata":{}},{"cell_type":"code","source":"del ex_data\ngc.collect()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:05:59.819111Z","iopub.execute_input":"2022-06-02T03:05:59.819641Z","iopub.status.idle":"2022-06-02T03:06:00.264935Z","shell.execute_reply.started":"2022-06-02T03:05:59.819603Z","shell.execute_reply":"2022-06-02T03:06:00.264062Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.set_index('hour',inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:00.266769Z","iopub.execute_input":"2022-06-02T03:06:00.267156Z","iopub.status.idle":"2022-06-02T03:06:00.275567Z","shell.execute_reply.started":"2022-06-02T03:06:00.267119Z","shell.execute_reply":"2022-06-02T03:06:00.274688Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.set_index('hour',inplace=True)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:00.277094Z","iopub.execute_input":"2022-06-02T03:06:00.277888Z","iopub.status.idle":"2022-06-02T03:06:00.284322Z","shell.execute_reply.started":"2022-06-02T03:06:00.277849Z","shell.execute_reply":"2022-06-02T03:06:00.283555Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:00.286015Z","iopub.execute_input":"2022-06-02T03:06:00.286748Z","iopub.status.idle":"2022-06-02T03:06:00.312118Z","shell.execute_reply.started":"2022-06-02T03:06:00.286711Z","shell.execute_reply":"2022-06-02T03:06:00.311436Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### sparse feature\n * C1\n * banner_pos\n * site_id\n * site_domain\n * site_category\n * app_id\n * app_domain\n * app_category\n * device_id\n * device_ip\n * device_model\n * device_type\n * device_conn_type\n\n### Dense feature\n * C14 ~ c21","metadata":{}},{"cell_type":"code","source":"!pip install deepctr_torch","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:00.313452Z","iopub.execute_input":"2022-06-02T03:06:00.314007Z","iopub.status.idle":"2022-06-02T03:06:28.255554Z","shell.execute_reply.started":"2022-06-02T03:06:00.313961Z","shell.execute_reply":"2022-06-02T03:06:28.254561Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import torch\nfrom deepctr_torch.inputs import SparseFeat, DenseFeat, get_feature_names\nfrom deepctr_torch.models import *","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:28.258594Z","iopub.execute_input":"2022-06-02T03:06:28.259034Z","iopub.status.idle":"2022-06-02T03:06:34.174628Z","shell.execute_reply.started":"2022-06-02T03:06:28.258993Z","shell.execute_reply":"2022-06-02T03:06:34.172992Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = train","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:34.176329Z","iopub.execute_input":"2022-06-02T03:06:34.177247Z","iopub.status.idle":"2022-06-02T03:06:34.182554Z","shell.execute_reply.started":"2022-06-02T03:06:34.177207Z","shell.execute_reply":"2022-06-02T03:06:34.181826Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sparse_features = train.iloc[::,2:14].columns.values.tolist()\ndense_features = train.iloc[::,15:].columns.values.tolist()\nsparse_features.append('id')\ntarget = ['click']","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:34.183686Z","iopub.execute_input":"2022-06-02T03:06:34.184331Z","iopub.status.idle":"2022-06-02T03:06:35.273599Z","shell.execute_reply.started":"2022-06-02T03:06:34.184291Z","shell.execute_reply":"2022-06-02T03:06:35.272098Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:35.275403Z","iopub.execute_input":"2022-06-02T03:06:35.276044Z","iopub.status.idle":"2022-06-02T03:06:35.301791Z","shell.execute_reply.started":"2022-06-02T03:06:35.275997Z","shell.execute_reply":"2022-06-02T03:06:35.301022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_sparse_features = test.iloc[::,0:14].columns.values.tolist()\ntest_dense_features = test.iloc[::,14:].columns.values.tolist()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:35.304182Z","iopub.execute_input":"2022-06-02T03:06:35.305673Z","iopub.status.idle":"2022-06-02T03:06:35.972036Z","shell.execute_reply.started":"2022-06-02T03:06:35.305637Z","shell.execute_reply":"2022-06-02T03:06:35.971210Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from sklearn.preprocessing import MinMaxScaler,LabelEncoder\nscaler = MinMaxScaler(feature_range=(0,1))\nencoder = LabelEncoder()","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:35.973406Z","iopub.execute_input":"2022-06-02T03:06:35.973827Z","iopub.status.idle":"2022-06-02T03:06:35.986689Z","shell.execute_reply.started":"2022-06-02T03:06:35.973785Z","shell.execute_reply":"2022-06-02T03:06:35.985813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for feat in sparse_features:\n    data[feat] = encoder.fit_transform(data[feat])\ndata[dense_features] = scaler.fit_transform(data[dense_features])","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:06:35.988056Z","iopub.execute_input":"2022-06-02T03:06:35.988607Z","iopub.status.idle":"2022-06-02T03:07:34.141151Z","shell.execute_reply.started":"2022-06-02T03:06:35.988565Z","shell.execute_reply":"2022-06-02T03:07:34.140125Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for feat in test_sparse_features:\n    test[feat] = encoder.fit_transform(test[feat])\ntest[dense_features] = scaler.fit_transform(test[test_dense_features])","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:07:34.142587Z","iopub.execute_input":"2022-06-02T03:07:34.142944Z","iopub.status.idle":"2022-06-02T03:08:00.523795Z","shell.execute_reply.started":"2022-06-02T03:07:34.142906Z","shell.execute_reply":"2022-06-02T03:08:00.522951Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fixlen_feature_columns = [SparseFeat(feat,data[feat].nunique()) \n                          for feat in sparse_features] + [DenseFeat(feat,1,)\n                                                         for feat in dense_features]","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:00.525120Z","iopub.execute_input":"2022-06-02T03:08:00.525521Z","iopub.status.idle":"2022-06-02T03:08:01.487065Z","shell.execute_reply.started":"2022-06-02T03:08:00.525484Z","shell.execute_reply":"2022-06-02T03:08:01.486131Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# fixlen_feature_columns = [SparseFeat(feat,data[feat].nunique()) \n#                           for feat in sparse_features] + [DenseFeat(feat,1,)\n#                                                          for feat in dense_features]","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.488293Z","iopub.execute_input":"2022-06-02T03:08:01.488661Z","iopub.status.idle":"2022-06-02T03:08:01.492769Z","shell.execute_reply.started":"2022-06-02T03:08:01.488626Z","shell.execute_reply":"2022-06-02T03:08:01.492025Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fixlen_feature_columns","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.497419Z","iopub.execute_input":"2022-06-02T03:08:01.498248Z","iopub.status.idle":"2022-06-02T03:08:01.504712Z","shell.execute_reply.started":"2022-06-02T03:08:01.498212Z","shell.execute_reply":"2022-06-02T03:08:01.504023Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dnn_feature_columns = fixlen_feature_columns\nlinear_feature_columns = fixlen_feature_columns","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.505876Z","iopub.execute_input":"2022-06-02T03:08:01.506712Z","iopub.status.idle":"2022-06-02T03:08:01.513235Z","shell.execute_reply.started":"2022-06-02T03:08:01.506670Z","shell.execute_reply":"2022-06-02T03:08:01.512189Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"feature_names = get_feature_names(linear_feature_columns + dnn_feature_columns)\nfeature_names","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.514759Z","iopub.execute_input":"2022-06-02T03:08:01.515652Z","iopub.status.idle":"2022-06-02T03:08:01.522879Z","shell.execute_reply.started":"2022-06-02T03:08:01.515575Z","shell.execute_reply":"2022-06-02T03:08:01.522005Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_model_input = {name: data[name]for name in feature_names}","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.524208Z","iopub.execute_input":"2022-06-02T03:08:01.525023Z","iopub.status.idle":"2022-06-02T03:08:01.530674Z","shell.execute_reply.started":"2022-06-02T03:08:01.524985Z","shell.execute_reply":"2022-06-02T03:08:01.529836Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_model_input = {name: test[name] for name in feature_names}","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.532180Z","iopub.execute_input":"2022-06-02T03:08:01.532706Z","iopub.status.idle":"2022-06-02T03:08:01.539928Z","shell.execute_reply.started":"2022-06-02T03:08:01.532670Z","shell.execute_reply":"2022-06-02T03:08:01.539282Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"device = ('cuda' if torch.cuda.is_available() else 'cpu')","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:08:01.541510Z","iopub.execute_input":"2022-06-02T03:08:01.541946Z","iopub.status.idle":"2022-06-02T03:08:01.600851Z","shell.execute_reply.started":"2022-06-02T03:08:01.541905Z","shell.execute_reply":"2022-06-02T03:08:01.600067Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = DeepFM(linear_feature_columns,dnn_feature_columns,\n               task='binary',device=device,dnn_dropout=0.7)\nmodel","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:52:58.070901Z","iopub.execute_input":"2022-06-02T03:52:58.071284Z","iopub.status.idle":"2022-06-02T03:52:58.722680Z","shell.execute_reply.started":"2022-06-02T03:52:58.071253Z","shell.execute_reply":"2022-06-02T03:52:58.721623Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model.compile(optimizer = 'adam',\n              loss = 'binary_crossentropy',\n              metrics = ['binary_crossentropy','auc'])","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:53:01.994594Z","iopub.execute_input":"2022-06-02T03:53:01.995302Z","iopub.status.idle":"2022-06-02T03:53:01.999758Z","shell.execute_reply.started":"2022-06-02T03:53:01.995264Z","shell.execute_reply":"2022-06-02T03:53:01.998919Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%%time\nhistory = model.fit(train_model_input, train[target].values, batch_size=1024, epochs=10, verbose=1,\n                        validation_split=0.2)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T03:53:03.496563Z","iopub.execute_input":"2022-06-02T03:53:03.497292Z","iopub.status.idle":"2022-06-02T04:16:45.560455Z","shell.execute_reply.started":"2022-06-02T03:53:03.497261Z","shell.execute_reply":"2022-06-02T04:16:45.558667Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pred_ans = model.predict(test_model_input, 1024)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T04:16:45.562154Z","iopub.execute_input":"2022-06-02T04:16:45.563079Z","iopub.status.idle":"2022-06-02T04:17:25.289132Z","shell.execute_reply.started":"2022-06-02T04:16:45.563037Z","shell.execute_reply":"2022-06-02T04:17:25.288299Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission['click'] = pred_ans","metadata":{"execution":{"iopub.status.busy":"2022-06-02T04:17:25.290586Z","iopub.execute_input":"2022-06-02T04:17:25.290980Z","iopub.status.idle":"2022-06-02T04:17:25.319756Z","shell.execute_reply.started":"2022-06-02T04:17:25.290924Z","shell.execute_reply":"2022-06-02T04:17:25.319072Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission","metadata":{"execution":{"iopub.status.busy":"2022-06-02T04:18:15.691893Z","iopub.execute_input":"2022-06-02T04:18:15.692480Z","iopub.status.idle":"2022-06-02T04:18:15.707864Z","shell.execute_reply.started":"2022-06-02T04:18:15.692435Z","shell.execute_reply":"2022-06-02T04:18:15.707079Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv('submission.csv',index=False)","metadata":{"execution":{"iopub.status.busy":"2022-06-02T04:18:02.197531Z","iopub.execute_input":"2022-06-02T04:18:02.197896Z","iopub.status.idle":"2022-06-02T04:18:15.689801Z","shell.execute_reply.started":"2022-06-02T04:18:02.197866Z","shell.execute_reply":"2022-06-02T04:18:15.688775Z"},"trusted":true},"execution_count":null,"outputs":[]}]}