{"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":"# Introduction","metadata":{}},{"cell_type":"markdown","source":"Kaggle provides data scientists, researchers, and enthusiasts a collaborative environment to explore, learn, and compete in the field of big data and machine learning. Kaggle was founded in 2010 by Anthony Goldbloom and Ben Hamner and has since grown into a vibrant community of over a million data scientists and practitioners worldwide. Known for offering a unique platform for data scientists and machine learning practitioners to learn, collaborate, and compete, Kaggle has emerged as a leading data science competition platform. By providing access to challenging problems, large datasets, and a vibrant community, Kaggle has become a hub for innovation and knowledge sharing in data science. This article focuses on some of the key research papers and competitions that have made waves in Kaggle. The advancements and achievements made during this period provide valuable insights into the cutting-edge innovations and solutions pioneered by data scientists and machine learning specialists.\nWe will be focusing on Time Series and Tabular Datasets in this report:\n\nTime series and tabular datasets are two commonly encountered types of data in the field of data science and machine learning. Understanding their characteristics and applying appropriate techniques is crucial for extracting valuable insights and building effective predictive models. \n\nTime series datasets consist of sequential data points ordered over time. These datasets are prevalent in various domains, including finance, weather forecasting, and sensor data analysis. Analyzing time series data requires specialized techniques such as autoregressive models, moving averages, and recurrent neural networks (RNNs). These methods capture temporal dependencies and patterns within the data, enabling accurate forecasting and anomaly detection. \n\nTabular datasets, on the other hand, consist of structured data organized in rows and columns. They are commonly found in databases, spreadsheets, and relational datasets. Tabular data often contains a mixture of numerical, categorical, and textual features. Analyzing tabular datasets involves tasks such as classification, regression, and feature engineering. Popular algorithms for tabular data analysis include decision trees, random forests, gradient boosting, and deep learning models such as feedforward neural networks. ","metadata":{}},{"cell_type":"markdown","source":"# Datasets","metadata":{}},{"cell_type":"markdown","source":"Two resources comprise our dataset: the arXiv dataset and the Kaggle competition writeups. The arXiv dataset available on Kaggle is a machine-readable repository of scholarly articles, spanning various disciplines such as physics, computer science, mathematics, statistics, electrical engineering, quantitative biology, and economics. With a collection of 1.7 million articles, this dataset includes essential information like article titles, authors, categories, abstracts, and full-text PDFs. The Meta Kaggle dataset (Kaggle competition writeups) provides a wealth of public data related to Kaggle competitions, datasets, kernels (code/notebooks), and more. ","metadata":{}},{"cell_type":"markdown","source":"# Description","metadata":{}},{"cell_type":"code","source":"! pip install nltk\n! pip install wordcloud\n! pip install textblob\n! pip install grave","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:23:00.240234Z","iopub.execute_input":"2023-07-01T03:23:00.240538Z","iopub.status.idle":"2023-07-01T03:23:35.972902Z","shell.execute_reply.started":"2023-07-01T03:23:00.240516Z","shell.execute_reply":"2023-07-01T03:23:35.971926Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport nltk\nfrom bs4 import BeautifulSoup\nfrom nltk.tokenize import sent_tokenize\nfrom nltk.stem import PorterStemmer\nfrom nltk.corpus import stopwords\nimport heapq\nimport re\nfrom wordcloud import WordCloud\nimport matplotlib.pyplot as plt\nimport pandas as pd\nfrom datetime import datetime\nimport nltk\nfrom nltk.tokenize import word_tokenize\nfrom nltk.probability import FreqDist\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom sklearn.decomposition import LatentDirichletAllocation\nfrom nltk.stem.snowball import SnowballStemmer\nimport string\nfrom sklearn.decomposition import LatentDirichletAllocation as LDA\nfrom collections import Counter\nimport spacy\nimport networkx as nx\nfrom grave import grave\nimport warnings\nwarnings.filterwarnings('ignore')\n\nnltk.download('punkt')\nnltk.download('stopwords')","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:23:35.974812Z","iopub.execute_input":"2023-07-01T03:23:35.975110Z","iopub.status.idle":"2023-07-01T03:23:48.477615Z","shell.execute_reply.started":"2023-07-01T03:23:35.975086Z","shell.execute_reply":"2023-07-01T03:23:48.476758Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Kaggle writeups","metadata":{}},{"cell_type":"code","source":"df = pd.read_csv(\"/kaggle/input/2023-kaggle-ai-report/kaggle_writeups_20230510.csv\")","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:23:48.479041Z","iopub.execute_input":"2023-07-01T03:23:48.479663Z","iopub.status.idle":"2023-07-01T03:23:48.750894Z","shell.execute_reply.started":"2023-07-01T03:23:48.479638Z","shell.execute_reply":"2023-07-01T03:23:48.750154Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Limiting dataset to last two years","metadata":{}},{"cell_type":"code","source":"df['Competition Launch Date'] = pd.to_datetime(df['Competition Launch Date'])\ndf['Year'] = df['Competition Launch Date'].dt.year\ndf2 = df[df['Year'].apply(lambda x: x> 2021)]\ndf2 = df2.drop(['Competition Launch Date','Date of Writeup'],axis =1)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:23:48.754473Z","iopub.execute_input":"2023-07-01T03:23:48.754794Z","iopub.status.idle":"2023-07-01T03:23:48.809019Z","shell.execute_reply.started":"2023-07-01T03:23:48.754769Z","shell.execute_reply":"2023-07-01T03:23:48.808370Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df2.info()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:13.138332Z","iopub.execute_input":"2023-07-01T03:24:13.138641Z","iopub.status.idle":"2023-07-01T03:24:13.159592Z","shell.execute_reply.started":"2023-07-01T03:24:13.138621Z","shell.execute_reply":"2023-07-01T03:24:13.158473Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Showing number of papers per year","metadata":{}},{"cell_type":"code","source":"year_counts = df2['Year'].value_counts()\nsorted_years = sorted(year_counts.index)\nplt.bar(sorted_years, year_counts)\nplt.xlabel('Year')\nplt.ylabel('Count')\nplt.title('Counts of Rows by Year')\nplt.xticks(rotation=90)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:15.412211Z","iopub.execute_input":"2023-07-01T03:24:15.412527Z","iopub.status.idle":"2023-07-01T03:24:15.619767Z","shell.execute_reply.started":"2023-07-01T03:24:15.412504Z","shell.execute_reply":"2023-07-01T03:24:15.618705Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### General information about dataset","metadata":{}},{"cell_type":"code","source":"df2.info()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:17.452140Z","iopub.execute_input":"2023-07-01T03:24:17.452463Z","iopub.status.idle":"2023-07-01T03:24:17.465878Z","shell.execute_reply.started":"2023-07-01T03:24:17.452439Z","shell.execute_reply":"2023-07-01T03:24:17.465048Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Number of writeups per competitions","metadata":{}},{"cell_type":"code","source":"df2.groupby('Title of Competition').count()['Writeup']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:19.165070Z","iopub.execute_input":"2023-07-01T03:24:19.166126Z","iopub.status.idle":"2023-07-01T03:24:19.174369Z","shell.execute_reply.started":"2023-07-01T03:24:19.166084Z","shell.execute_reply":"2023-07-01T03:24:19.173508Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Looking  at only papers containg time series or tabular data","metadata":{}},{"cell_type":"code","source":"df2[df2['Writeup'].str.contains('time series', case=False)].groupby('Title of Competition').count()['Writeup']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:20.641761Z","iopub.execute_input":"2023-07-01T03:24:20.642064Z","iopub.status.idle":"2023-07-01T03:24:20.689277Z","shell.execute_reply.started":"2023-07-01T03:24:20.642042Z","shell.execute_reply":"2023-07-01T03:24:20.688276Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df2[df2['Writeup'].str.contains('tabular', case=False)].groupby('Title of Competition').count()['Writeup']\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:21.367857Z","iopub.execute_input":"2023-07-01T03:24:21.368173Z","iopub.status.idle":"2023-07-01T03:24:21.414188Z","shell.execute_reply.started":"2023-07-01T03:24:21.368152Z","shell.execute_reply":"2023-07-01T03:24:21.413038Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tabular_dataset = ['G2Net Detecting Continuous Gravitational Waves','Novozymes Enzyme Stability Prediction','American Express - Default Prediction','Google Smartphone Decimeter Challenge 2022','Open Problems - Multimodal Single-Cell Integration','Ubiquant Market Prediction']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:22.128622Z","iopub.execute_input":"2023-07-01T03:24:22.129030Z","iopub.status.idle":"2023-07-01T03:24:22.134615Z","shell.execute_reply.started":"2023-07-01T03:24:22.128992Z","shell.execute_reply":"2023-07-01T03:24:22.133782Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df2[df2['Title of Competition'].isin(tabular_dataset)].groupby('Title of Competition').count()['Writeup']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:22.680914Z","iopub.execute_input":"2023-07-01T03:24:22.681280Z","iopub.status.idle":"2023-07-01T03:24:22.692914Z","shell.execute_reply.started":"2023-07-01T03:24:22.681252Z","shell.execute_reply":"2023-07-01T03:24:22.691275Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_df = df2[df2['Title of Competition'].isin(tabular_dataset)]","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:23.320770Z","iopub.execute_input":"2023-07-01T03:24:23.321400Z","iopub.status.idle":"2023-07-01T03:24:23.328086Z","shell.execute_reply.started":"2023-07-01T03:24:23.321372Z","shell.execute_reply":"2023-07-01T03:24:23.326489Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_df[filtered_df['Title of Competition']=='American Express - Default Prediction']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:23.755108Z","iopub.execute_input":"2023-07-01T03:24:23.755463Z","iopub.status.idle":"2023-07-01T03:24:23.781305Z","shell.execute_reply.started":"2023-07-01T03:24:23.755436Z","shell.execute_reply":"2023-07-01T03:24:23.780320Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Looking at 1st and 2nd places write up for each competition","metadata":{}},{"cell_type":"code","source":"first_places = ['1st','first','First','2nd','second','Second']\nnot_include = ['first Kaggle','first competition','21st','41st','12th','72nd']\ndef check_value(row, values, values2):\n    return any(value in row for value in values) and all(item not in row for item in values2)\n\nfiltered_df_top = filtered_df[filtered_df['Title of Writeup'].apply(lambda row: check_value(row, first_places,not_include))]\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:25.218173Z","iopub.execute_input":"2023-07-01T03:24:25.218993Z","iopub.status.idle":"2023-07-01T03:24:25.225681Z","shell.execute_reply.started":"2023-07-01T03:24:25.218963Z","shell.execute_reply":"2023-07-01T03:24:25.224592Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Preprocessing writeups for filtered dataframe of first and second places","metadata":{}},{"cell_type":"code","source":"def preprocess_html(html_text):\n    # Remove HTML tags using BeautifulSoup\n    soup = BeautifulSoup(html_text, 'html.parser')\n    cleaned_text = soup.get_text(separator=' ')\n    # Remove extra whitespaces\n    cleaned_text = re.sub('\\s+', ' ', cleaned_text).strip()\n    default_stop_words = set(stopwords.words('english'))\n    stop_words = default_stop_words.union(['want','almost','frequently'])\n    cleaned_text = ' '.join(word for word in cleaned_text.split() if word not in stop_words) \n    # Add additional preprocessing steps as needed\n    return cleaned_text\nfiltered_df_top['summery'] = filtered_df_top['Writeup'].apply(preprocess_html)\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:26.941066Z","iopub.execute_input":"2023-07-01T03:24:26.941408Z","iopub.status.idle":"2023-07-01T03:24:27.008170Z","shell.execute_reply.started":"2023-07-01T03:24:26.941374Z","shell.execute_reply":"2023-07-01T03:24:27.006973Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_df_top['summery']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:27.618511Z","iopub.execute_input":"2023-07-01T03:24:27.618854Z","iopub.status.idle":"2023-07-01T03:24:27.626702Z","shell.execute_reply.started":"2023-07-01T03:24:27.618833Z","shell.execute_reply":"2023-07-01T03:24:27.625425Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Finding topics of each writeups and visualizing them","metadata":{}},{"cell_type":"code","source":"vectorizer = TfidfVectorizer()\ndtm = vectorizer.fit_transform(filtered_df_top['summery'])\nnum_topics = 10\nlda = LatentDirichletAllocation(n_components=num_topics, random_state=42)\nlda.fit(dtm)\nfeature_names = vectorizer.get_feature_names_out() \nfor topic_idx, topic in enumerate(lda.components_):\n    top_words = [feature_names[i] for i in topic.argsort()[:-10 - 1:-1]]\n    print(f\"Topic #{topic_idx+1}: {', '.join(top_words)}\")","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:28.834734Z","iopub.execute_input":"2023-07-01T03:24:28.835037Z","iopub.status.idle":"2023-07-01T03:24:28.898919Z","shell.execute_reply.started":"2023-07-01T03:24:28.835016Z","shell.execute_reply":"2023-07-01T03:24:28.898022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"topic_words = {}\n\nfor topic_idx, topic in enumerate(lda.components_):\n    topic_words[topic_idx] = [feature_names[i] for i in topic.argsort()[:-10 - 1:-1]]\n\nfor topic_idx, words in topic_words.items():\n    wordcloud = WordCloud(background_color='white').generate(' '.join(words))\n    plt.figure()\n    plt.imshow(wordcloud, interpolation='bilinear')\n    plt.title(f'Topic #{topic_idx+1} Word Cloud')\n    plt.axis('off')\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:29.606778Z","iopub.execute_input":"2023-07-01T03:24:29.608154Z","iopub.status.idle":"2023-07-01T03:24:31.232755Z","shell.execute_reply.started":"2023-07-01T03:24:29.608097Z","shell.execute_reply":"2023-07-01T03:24:31.232038Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"comment_text = ' '.join(filtered_df_top['summery'])\nwordcloud = WordCloud(background_color='white').generate(comment_text)\nplt.imshow(wordcloud, interpolation='bilinear')\nplt.title('Comments Word Cloud')\nplt.axis('off')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:31.234115Z","iopub.execute_input":"2023-07-01T03:24:31.234740Z","iopub.status.idle":"2023-07-01T03:24:31.558474Z","shell.execute_reply.started":"2023-07-01T03:24:31.234688Z","shell.execute_reply":"2023-07-01T03:24:31.557776Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def tokenize(text):\n    tokens = word_tokenize(text)\n    # Remove punctuation or special characters\n    tokens = [word for word in tokens if word.isalnum()]\n    return tokens\nfiltered_df_top['tokens'] = filtered_df_top['summery'].apply(tokenize)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:31.559603Z","iopub.execute_input":"2023-07-01T03:24:31.560033Z","iopub.status.idle":"2023-07-01T03:24:31.639394Z","shell.execute_reply.started":"2023-07-01T03:24:31.560008Z","shell.execute_reply":"2023-07-01T03:24:31.638775Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_df_top['tokens']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:31.640692Z","iopub.execute_input":"2023-07-01T03:24:31.641123Z","iopub.status.idle":"2023-07-01T03:24:31.651082Z","shell.execute_reply.started":"2023-07-01T03:24:31.641101Z","shell.execute_reply":"2023-07-01T03:24:31.650161Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"all_tokens = [token for tokens in filtered_df_top['tokens'] for token in tokens]\ntokens_to_remove = ['We','The','I']\nfiltered_tokens = [token for token in all_tokens if token not in tokens_to_remove]\nfdist = FreqDist(filtered_tokens)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:31.942537Z","iopub.execute_input":"2023-07-01T03:24:31.942874Z","iopub.status.idle":"2023-07-01T03:24:31.952363Z","shell.execute_reply.started":"2023-07-01T03:24:31.942849Z","shell.execute_reply":"2023-07-01T03:24:31.951481Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(12, 6))\nplt.xlabel('Words')\nplt.ylabel('Frequency')\nplt.title('Top 30 Most Common Words')\nfdist.plot(30, cumulative=False)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:32.628823Z","iopub.execute_input":"2023-07-01T03:24:32.629156Z","iopub.status.idle":"2023-07-01T03:24:32.959173Z","shell.execute_reply.started":"2023-07-01T03:24:32.629133Z","shell.execute_reply":"2023-07-01T03:24:32.958350Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"detailes of first places writeups\n- Ubiquant Market Prediction: \napproached models: LGBM, TABNET B  \nhttps://www.kaggle.com/c/32053/discussion/338220\n- Google Smartphone Decimeter Challenge 2022:\napproached models: custom approach \nhttps://www.kaggle.com/c/35779/discussion/341111\n- American Express - Default Prediction: \napproached models: LGB + GRU \nhttps://www.kaggle.com/c/35332/discussion/348111\n- Open Problems - Multimodal Single-Cell Integra:\napproached models: costum model\nhttps://www.kaggle.com/c/38128/discussion/366961\n- Novozymes Enzyme Stability Prediction:\napproached models: GNN\nhttps://www.kaggle.com/c/37190/discussion/376371\n- G2Net Detecting Continuous Gravitational Waves: \napproached models: Sum power (absolute-value squared) along various signal patterns No machine learning\nhttps://www.kaggle.com/c/37077/discussion/375910\n\n","metadata":{}},{"cell_type":"markdown","source":"### Second Dataset","metadata":{}},{"cell_type":"code","source":"papers = pd.read_json(\"/kaggle/input/2023-kaggle-ai-report/arxiv_metadata_20230510.json\",lines=True)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:24:36.494644Z","iopub.execute_input":"2023-07-01T03:24:36.495042Z","iopub.status.idle":"2023-07-01T03:26:55.081503Z","shell.execute_reply.started":"2023-07-01T03:24:36.495014Z","shell.execute_reply":"2023-07-01T03:26:55.079920Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"papers","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:26:55.110135Z","iopub.execute_input":"2023-07-01T03:26:55.110553Z","iopub.status.idle":"2023-07-01T03:26:55.230240Z","shell.execute_reply.started":"2023-07-01T03:26:55.110530Z","shell.execute_reply":"2023-07-01T03:26:55.229275Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Check if there is any missing values ","metadata":{}},{"cell_type":"code","source":"papers.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:20.860140Z","iopub.execute_input":"2023-07-01T03:27:20.860471Z","iopub.status.idle":"2023-07-01T03:27:28.316146Z","shell.execute_reply.started":"2023-07-01T03:27:20.860450Z","shell.execute_reply":"2023-07-01T03:27:28.314885Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"papers2 = papers.drop(['doi','report-no','license','submitter','journal-ref'], axis =1)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:29.759239Z","iopub.execute_input":"2023-07-01T03:27:29.759562Z","iopub.status.idle":"2023-07-01T03:27:30.227269Z","shell.execute_reply.started":"2023-07-01T03:27:29.759542Z","shell.execute_reply":"2023-07-01T03:27:30.226278Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"papers2.isnull().sum()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:32.844125Z","iopub.execute_input":"2023-07-01T03:27:32.844451Z","iopub.status.idle":"2023-07-01T03:27:38.034851Z","shell.execute_reply.started":"2023-07-01T03:27:32.844428Z","shell.execute_reply":"2023-07-01T03:27:38.033881Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"papers2 = papers2.fillna('')","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:39.085134Z","iopub.execute_input":"2023-07-01T03:27:39.085459Z","iopub.status.idle":"2023-07-01T03:27:44.906463Z","shell.execute_reply.started":"2023-07-01T03:27:39.085435Z","shell.execute_reply":"2023-07-01T03:27:44.904889Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"papers2 = papers2.drop(['authors_parsed'],axis =1)","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:46.551137Z","iopub.execute_input":"2023-07-01T03:27:46.551446Z","iopub.status.idle":"2023-07-01T03:27:47.650142Z","shell.execute_reply.started":"2023-07-01T03:27:46.551425Z","shell.execute_reply":"2023-07-01T03:27:47.649424Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Filtering only paper since 2 years ago","metadata":{}},{"cell_type":"code","source":"filtered_papers = papers2[papers2['update_date'].str[:4].astype(int) > 2021]","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:50.213059Z","iopub.execute_input":"2023-07-01T03:27:50.214158Z","iopub.status.idle":"2023-07-01T03:27:52.654863Z","shell.execute_reply.started":"2023-07-01T03:27:50.214075Z","shell.execute_reply":"2023-07-01T03:27:52.653611Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_papers['year'] = filtered_papers['update_date'].str[:4].astype(int)\nyear_counts = filtered_papers['year'].value_counts()\nsorted_years = sorted(year_counts.index)\nprint(sorted_years)\nplt.bar(sorted_years, year_counts)\nplt.xlabel('Year')\nplt.ylabel('Count')\nplt.title('Counts of Rows by Year')\nplt.xticks(rotation=90)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:54.383086Z","iopub.execute_input":"2023-07-01T03:27:54.383419Z","iopub.status.idle":"2023-07-01T03:27:54.826952Z","shell.execute_reply.started":"2023-07-01T03:27:54.383397Z","shell.execute_reply":"2023-07-01T03:27:54.825989Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Checking papers in times series categories","metadata":{}},{"cell_type":"code","source":"filtered_papers = filtered_papers[filtered_papers['abstract'].str.contains('time series', case=False)]\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:27:57.630591Z","iopub.execute_input":"2023-07-01T03:27:57.630982Z","iopub.status.idle":"2023-07-01T03:28:02.283706Z","shell.execute_reply.started":"2023-07-01T03:27:57.630947Z","shell.execute_reply":"2023-07-01T03:28:02.282595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_papers","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:03.471554Z","iopub.execute_input":"2023-07-01T03:28:03.471893Z","iopub.status.idle":"2023-07-01T03:28:03.495100Z","shell.execute_reply.started":"2023-07-01T03:28:03.471872Z","shell.execute_reply":"2023-07-01T03:28:03.493886Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Finding number of papers in each category","metadata":{}},{"cell_type":"code","source":"unique_counts = filtered_papers['categories'].value_counts()\nsorted_counts = unique_counts.sort_values(ascending=False)\nsorted_df = pd.DataFrame({'unique_count': sorted_counts})\nsorted_df.reset_index(inplace=True)\nsorted_df.columns = ['column_name', 'unique_count']\nprint(sorted_df.head(5))","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:06.412639Z","iopub.execute_input":"2023-07-01T03:28:06.413002Z","iopub.status.idle":"2023-07-01T03:28:06.424887Z","shell.execute_reply.started":"2023-07-01T03:28:06.412977Z","shell.execute_reply":"2023-07-01T03:28:06.423769Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plt.figure(figsize=(10, 6))\nplt.bar(sorted_df['column_name'].head(10), sorted_df['unique_count'].head(10))\nplt.xlabel('Column Values')\nplt.ylabel('Number of Unique Values')\nplt.title('Number of Unique Values in Column')\nplt.xticks(rotation=90)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:07.481823Z","iopub.execute_input":"2023-07-01T03:28:07.482155Z","iopub.status.idle":"2023-07-01T03:28:07.776004Z","shell.execute_reply.started":"2023-07-01T03:28:07.482134Z","shell.execute_reply":"2023-07-01T03:28:07.775314Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"filtered_papers['Tokenized_Cat'] = filtered_papers['categories'].apply(lambda x: x.split())","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:09.010877Z","iopub.execute_input":"2023-07-01T03:28:09.011383Z","iopub.status.idle":"2023-07-01T03:28:09.021581Z","shell.execute_reply.started":"2023-07-01T03:28:09.011359Z","shell.execute_reply":"2023-07-01T03:28:09.020504Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dictionary = dict(zip(filtered_papers['id'], filtered_papers['Tokenized_Cat']))\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:10.853810Z","iopub.execute_input":"2023-07-01T03:28:10.854192Z","iopub.status.idle":"2023-07-01T03:28:10.859736Z","shell.execute_reply.started":"2023-07-01T03:28:10.854163Z","shell.execute_reply":"2023-07-01T03:28:10.859015Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"combined_list = []\nfor sublist in filtered_papers['Tokenized_Cat']:\n    combined_list.extend(sublist)\nvalue_counts = Counter(combined_list)\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:11.926775Z","iopub.execute_input":"2023-07-01T03:28:11.927130Z","iopub.status.idle":"2023-07-01T03:28:11.933827Z","shell.execute_reply.started":"2023-07-01T03:28:11.927105Z","shell.execute_reply":"2023-07-01T03:28:11.932638Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"values = value_counts.keys()\ncounts = value_counts.values()\nplt.figure(figsize = (18,6))\nplt.bar(list(values)[0:30], list(counts)[0:30])\nplt.xlabel('categories')\nplt.ylabel('Counts')\nplt.xticks(rotation=90)\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:13.103163Z","iopub.execute_input":"2023-07-01T03:28:13.103565Z","iopub.status.idle":"2023-07-01T03:28:13.442708Z","shell.execute_reply.started":"2023-07-01T03:28:13.103533Z","shell.execute_reply":"2023-07-01T03:28:13.441729Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Cleaning abstracts","metadata":{}},{"cell_type":"code","source":"stop_words = stopwords.words('english')\ndef tokenizer(text):\n    '''\n    -covert everything to lowercase\n    -remove punctuations\n    -remove stopwords\n    -stemmer\n    '''\n    #All characters in this string will be converted to lowercase\n    text = text.lower()\n    \n    #Removing sentence punctuations\n    for punctuation_mark in string.punctuation:\n        text = text.replace(punctuation_mark,'')\n    \n    #Creating our list of tokens\n    list_of_tokens = text.split(' ')\n    #Creating our cleaned tokens list \n    cleaned_tokens = []\n    #Let us use a stemmer\n    stemmer = SnowballStemmer(language = 'english')\n    \n    #Removing Stop Words in our list of tokens and any tokens that happens to be empty strings\n    for token in list_of_tokens:\n        if (not token in stop_words) and (token != ''):\n            #Stem tokens\n            token_stemmed = stemmer.stem(token)\n            #appending our finalized cleaned token\n            cleaned_tokens.append(token_stemmed)\n    \n    return cleaned_tokens","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:15.930743Z","iopub.execute_input":"2023-07-01T03:28:15.931082Z","iopub.status.idle":"2023-07-01T03:28:15.938571Z","shell.execute_reply.started":"2023-07-01T03:28:15.931060Z","shell.execute_reply":"2023-07-01T03:28:15.937323Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def preprocess(commentBody):\n    commentBody = commentBody.str.replace(\"(<br/>)\", \"\")\n    commentBody = commentBody.str.replace('(<a).*(>).*(</a>)', '')\n    commentBody = commentBody.str.replace('(&amp)', '')\n    commentBody = commentBody.str.replace('(&gt)', '')\n    commentBody = commentBody.str.replace('(&lt)', '')\n    commentBody = commentBody.str.replace('(\\xa0)', ' ')  \n    return commentBody\nfiltered_papers['abstract'] = preprocess(filtered_papers['abstract'])","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:16.996784Z","iopub.execute_input":"2023-07-01T03:28:16.997141Z","iopub.status.idle":"2023-07-01T03:28:17.026405Z","shell.execute_reply.started":"2023-07-01T03:28:16.997118Z","shell.execute_reply":"2023-07-01T03:28:17.025454Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tfidf = TfidfVectorizer(tokenizer = tokenizer, \n                           min_df = 0.05, \n                           ngram_range = (1,3))\n\n#df.commentBody is referring to the text column from my dataframe containing the comments\ntoken_matrix = tfidf.fit_transform(filtered_papers['abstract'])\n\n#If you would like to store the matrix to a dataframe, execute the code below\nmatrix_df = pd.DataFrame(token_matrix.toarray(),\n                        columns = tfidf.get_feature_names_out())","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:17.925792Z","iopub.execute_input":"2023-07-01T03:28:17.926163Z","iopub.status.idle":"2023-07-01T03:28:23.796018Z","shell.execute_reply.started":"2023-07-01T03:28:17.926135Z","shell.execute_reply":"2023-07-01T03:28:23.794778Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Finding main topics for abstracts and titles","metadata":{}},{"cell_type":"code","source":"num_topics = 5\n\n#instatiate LDA model\nlda_model = LDA(n_components = num_topics, n_jobs = -1)\nlda_model.fit(token_matrix)\n\n#I'm looking for the top 15 words for each topic\ntop_n_words = 15\ntoken_names = tfidf.get_feature_names_out()\n\nfor topic_num, topic in enumerate(lda_model.components_):\n    top_tokens = [token_names[i] for i in topic.argsort()][::-1][:top_n_words] #Returns the indices that would sort an array\n    top_n = ', '.join(top_tokens) \n    print(f'Topic {topic_num}: {top_n}')","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:23.797561Z","iopub.execute_input":"2023-07-01T03:28:23.797856Z","iopub.status.idle":"2023-07-01T03:28:28.338013Z","shell.execute_reply.started":"2023-07-01T03:28:23.797834Z","shell.execute_reply":"2023-07-01T03:28:28.336991Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"topic_words = {}\n\nfor topic_idx, topic in enumerate(lda.components_):\n    topic_words[topic_idx] = [feature_names[i] for i in topic.argsort()[:-10 - 1:-1]]\n\nfor topic_idx, words in topic_words.items():\n    wordcloud = WordCloud(background_color='white').generate(' '.join(words))\n    plt.figure()\n    plt.imshow(wordcloud, interpolation='bilinear')\n    plt.title(f'Topic #{topic_idx+1} Word Cloud')\n    plt.axis('off')\n    plt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:28.339225Z","iopub.execute_input":"2023-07-01T03:28:28.339477Z","iopub.status.idle":"2023-07-01T03:28:29.996402Z","shell.execute_reply.started":"2023-07-01T03:28:28.339454Z","shell.execute_reply":"2023-07-01T03:28:29.995682Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"titles_lower = [title.lower() for title in filtered_papers['abstract']]\ntokens = [nltk.word_tokenize(title) for title in titles_lower]\nall_words = [word for sublist in tokens for word in sublist]\nstop_words = set(stopwords.words('english'))\nstop_words = stop_words.union([':','.',',',')','(','$'])\nfiltered_words = [word for word in all_words if word not in stop_words]\nword_freq = nltk.FreqDist(filtered_words)\nprint(\"Most common words:\")\nfor word, frequency in word_freq.most_common(5):\n    print(f\"{word}: {frequency}\")\nwordcloud = WordCloud(width=800, height=400, background_color='white').generate(' '.join(filtered_words))\n\nplt.figure(figsize=(10, 5))\nplt.imshow(wordcloud, interpolation='bilinear')\nplt.axis('off')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:29.998173Z","iopub.execute_input":"2023-07-01T03:28:29.998600Z","iopub.status.idle":"2023-07-01T03:28:37.029245Z","shell.execute_reply.started":"2023-07-01T03:28:29.998575Z","shell.execute_reply":"2023-07-01T03:28:37.028481Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"titles_lower = [title.lower() for title in filtered_papers['title']]\ntokens = [nltk.word_tokenize(title) for title in titles_lower]\nall_words = [word for sublist in tokens for word in sublist]\nstop_words = set(stopwords.words('english'))\nstop_words.add(':')\nfiltered_words = [word for word in all_words if word not in stop_words]\nword_freq = nltk.FreqDist(filtered_words)\nprint(\"Most common words:\")\nfor word, frequency in word_freq.most_common(5):\n    print(f\"{word}: {frequency}\")\nwordcloud = WordCloud(width=800, height=400, background_color='white').generate(' '.join(filtered_words))\n\nplt.figure(figsize=(10, 5))\nplt.imshow(wordcloud, interpolation='bilinear')\nplt.axis('off')\nplt.show()\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:37.030499Z","iopub.execute_input":"2023-07-01T03:28:37.030957Z","iopub.status.idle":"2023-07-01T03:28:38.183030Z","shell.execute_reply.started":"2023-07-01T03:28:37.030930Z","shell.execute_reply":"2023-07-01T03:28:38.182263Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### Finding top 10 authors ","metadata":{}},{"cell_type":"code","source":"from collections import Counter\nimport seaborn as sns\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\nsns.set_style(\"white\")\n\nplt.figure(figsize=(10, 10), dpi=600)\nplt.subplot(2, 2, 1)\nauthors_flat = [\n    author\n    for author in list(filtered_papers[\"authors\"])\n]\ntop10authors = pd.DataFrame.from_records(\n    Counter(authors_flat).most_common(10), columns=[\"Name\", \"Count\"]\n)\nsns.barplot(x=\"Count\", y=\"Name\", data=top10authors, palette=\"RdBu_r\")\nplt.title(\"Top 10 Authors\")","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:46.976984Z","iopub.execute_input":"2023-07-01T03:28:46.977329Z","iopub.status.idle":"2023-07-01T03:28:48.529161Z","shell.execute_reply.started":"2023-07-01T03:28:46.977307Z","shell.execute_reply":"2023-07-01T03:28:48.528381Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### Checking how many papers use deep learning ","metadata":{}},{"cell_type":"code","source":"total_papers = len(filtered_papers)\nlists = ['deep learning','Deep Learning','Neural Networks']\ndef check_value(row, values):\n    return any(value in row for value in values) \n\ndeep_learning_papers = filtered_papers[filtered_papers['abstract'].apply(lambda row: check_value(row, lists))]\ndeep_learning_papers2 = filtered_papers[filtered_papers['title'].apply(lambda row: check_value(row, lists))]\npapers_with_deep_learning = len(deep_learning_papers) + len(deep_learning_papers2)\npercentage = (papers_with_deep_learning / total_papers) * 100\nprint(f\"The percentage of papers mentioning deep learning is: {percentage}%\")\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:51.272185Z","iopub.execute_input":"2023-07-01T03:28:51.273130Z","iopub.status.idle":"2023-07-01T03:28:51.300554Z","shell.execute_reply.started":"2023-07-01T03:28:51.273094Z","shell.execute_reply":"2023-07-01T03:28:51.299510Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Named entity recognition in abstracts","metadata":{}},{"cell_type":"code","source":"nlp = spacy.load(\"en_core_web_sm\")\ndef perform_ner(text):\n    doc = nlp(text)\n    entities = [(entity.text, entity.label_) for entity in doc.ents]\n    return entities\n\nfiltered_papers['ner_entities'] = filtered_papers['abstract'].apply(perform_ner)\n\n# Print the dataframe with the named entities\nfiltered_papers['ner_entities']","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:28:55.904474Z","iopub.execute_input":"2023-07-01T03:28:55.904861Z","iopub.status.idle":"2023-07-01T03:30:17.051062Z","shell.execute_reply.started":"2023-07-01T03:28:55.904834Z","shell.execute_reply":"2023-07-01T03:30:17.049621Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def count_entities(text):\n    doc = nlp(text)\n    entity_labels = [entity.label_ for entity in doc.ents]\n    return pd.Series(entity_labels).value_counts()\n\nentity_counts = filtered_papers['abstract'].apply(count_entities).sum().sort_values(ascending=False).iloc[0:10]\nplt.figure(figsize=(8, 6))\nentity_counts.plot(kind='bar')\nplt.xlabel('Entity Label')\nplt.ylabel('Count')\nplt.title('Named Entity Counts')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:30:17.052903Z","iopub.execute_input":"2023-07-01T03:30:17.053910Z","iopub.status.idle":"2023-07-01T03:31:31.555792Z","shell.execute_reply.started":"2023-07-01T03:30:17.053880Z","shell.execute_reply":"2023-07-01T03:31:31.554731Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Showing Network of authors and journals ","metadata":{}},{"cell_type":"code","source":"filtered_papers = papers[papers['update_date'].str[:4].astype(int) > 2021]\nfiltered_papers = filtered_papers[filtered_papers['abstract'].str.contains('time series', case=False)]\nnew_df = filtered_papers[['journal-ref','authors']].dropna()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:32:05.110981Z","iopub.execute_input":"2023-07-01T03:32:05.111364Z","iopub.status.idle":"2023-07-01T03:32:12.668857Z","shell.execute_reply.started":"2023-07-01T03:32:05.111338Z","shell.execute_reply":"2023-07-01T03:32:12.668034Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"G = nx.Graph()\n\nfor index, row in new_df.iterrows():\n    authors = row['authors'].split(',')  \n    journal = row['journal-ref']\n    for author in authors:\n        G.add_edge(author.strip(), journal)\n        \nplt.figure(figsize=(18, 8))\npos = nx.circular_layout(G) \nnx.draw_networkx(G, pos, with_labels=False, node_size=10, font_size=10)\nplt.title('Network of Authors and Journals')\nplt.axis('off')\nplt.show()        ","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:32:16.666192Z","iopub.execute_input":"2023-07-01T03:32:16.666541Z","iopub.status.idle":"2023-07-01T03:32:17.036728Z","shell.execute_reply.started":"2023-07-01T03:32:16.666517Z","shell.execute_reply":"2023-07-01T03:32:17.035639Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"fig, axes = plt.subplots(nrows=2, ncols=2)\ngrave.plot_network(G, ax=axes[0, 0], layout=\"spring\")\naxes[0, 0].set_title(\"spring\", fontweight=\"bold\")\n\ngrave.plot_network(G, ax=axes[1, 0], layout=\"circular\")\naxes[1, 0].set_title(\"circular\", fontweight=\"bold\")\n\ngrave.plot_network(G, ax=axes[0, 1], layout=\"random\")\naxes[0, 1].set_title(\"random\", fontweight=\"bold\")\n\ngrave.plot_network(G, ax=axes[1, 1], layout=\"spectral\")\naxes[1, 1].set_title(\"spectral\", fontweight=\"bold\")\n\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:32:22.581139Z","iopub.execute_input":"2023-07-01T03:32:22.581510Z","iopub.status.idle":"2023-07-01T03:33:25.307660Z","shell.execute_reply.started":"2023-07-01T03:32:22.581485Z","shell.execute_reply":"2023-07-01T03:33:25.307009Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#! pip install grave\n!pip install pyvis","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:33:56.244982Z","iopub.execute_input":"2023-07-01T03:33:56.245394Z","iopub.status.idle":"2023-07-01T03:34:06.140116Z","shell.execute_reply.started":"2023-07-01T03:33:56.245366Z","shell.execute_reply":"2023-07-01T03:34:06.138768Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from pyvis.network import Network\n\nnet = Network(notebook=True)\nnet.from_nx(G)\nnet.show('g3.html')","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:34:09.224245Z","iopub.execute_input":"2023-07-01T03:34:09.225385Z","iopub.status.idle":"2023-07-01T03:34:09.726876Z","shell.execute_reply.started":"2023-07-01T03:34:09.225335Z","shell.execute_reply":"2023-07-01T03:34:09.725752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"##### Showing bigest component","metadata":{}},{"cell_type":"code","source":"largest_component = max(nx.connected_components(G), key=len)\nsubgraph = G.subgraph(largest_component)\nplt.figure(figsize=(10, 8))\npos = nx.spring_layout(subgraph)\nnx.draw_networkx(subgraph, pos, with_labels=False, node_size=300, font_size=5)\nplt.title('Largest Component of the Network')\nplt.axis('off')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:38:34.552455Z","iopub.execute_input":"2023-07-01T03:38:34.553072Z","iopub.status.idle":"2023-07-01T03:38:35.388175Z","shell.execute_reply.started":"2023-07-01T03:38:34.553035Z","shell.execute_reply":"2023-07-01T03:38:35.386906Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"nx.write_gml(G, 'network.gml')\n","metadata":{"execution":{"iopub.status.busy":"2023-07-01T03:38:44.913800Z","iopub.execute_input":"2023-07-01T03:38:44.915200Z","iopub.status.idle":"2023-07-01T03:38:44.966179Z","shell.execute_reply.started":"2023-07-01T03:38:44.915164Z","shell.execute_reply":"2023-07-01T03:38:44.965132Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# References","metadata":{}},{"cell_type":"markdown","source":"- Kaggle website: https://www.kaggle.com/\n- Anthony Goldbloom's LinkedIn profile: https://www.linkedin.com/in/anthonygoldbloom/\n- Hyndman, R. J., & Athanasopoulos, G. (2018). Forecasting: principles and practice. OTexts.\n- Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer.\n- Chen, T., & Guestrin, C. (2016). XGBoost: A Scalable Tree Boosting System. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD '16), 785-794.    ","metadata":{}},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}