{"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":"# Báo cáo bài tập lớn môn Học máy \n**Giảng viên**: Trần Quốc Long\n\n**Sinh viên:** Lưu Văn Vương\n\n**MSSV**: 18021446\n\n**Topic**: Quora Insincere Question Classification\n\n\n","metadata":{}},{"cell_type":"markdown","source":"# MÔ TẢ BÀI TOÁN\n* Quora là nền tảng để mọi người có thể học hỏi lẫn nhau bằng cách đặt câu hỏi và trả lời để chia sẻ kiến thức. Mục đích của bài toán này là để phân loại các câu hỏi đặt ra là thuộc loại câu hỏi chân thành hay không chân thành. \n* Những câu hỏi không chân thành thường là những câu đưa ra tuyên bố quan điểm của mình hơn là để tìm những câu trả lời có ích: không trung lập, khiêu khích hoặc chê bai, không có căn cứ thực tế hoặc chứa nội dung khiêu dâm.\n* Input: Câu hỏi dạng text\n* Output: 0/1 (Sincere/ Insincere)","metadata":{}},{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-01-06T14:20:38.857079Z","iopub.execute_input":"2022-01-06T14:20:38.857772Z","iopub.status.idle":"2022-01-06T14:20:38.889569Z","shell.execute_reply.started":"2022-01-06T14:20:38.857676Z","shell.execute_reply":"2022-01-06T14:20:38.888811Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# PHÂN TÍCH DỮ LIỆU\n\n**Import các thư viện cần thiết:**","metadata":{}},{"cell_type":"markdown","source":"**Đọc các file**","metadata":{}},{"cell_type":"code","source":"# import os\nimport json\nimport string\nimport numpy as np\nimport pandas as pd\nfrom pandas.io.json import json_normalize\nimport matplotlib.pyplot as plt\nimport seaborn as sns\ncolor = sns.color_palette()\n\n%matplotlib inline\n\nfrom plotly import tools\nimport plotly.offline as py\npy.init_notebook_mode(connected=True)\nimport plotly.graph_objs as go\n\nfrom sklearn import model_selection, preprocessing, metrics, ensemble, naive_bayes, linear_model\nfrom sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer\nfrom sklearn.decomposition import TruncatedSVD\nimport lightgbm as lgb\n\npd.options.mode.chained_assignment = None\npd.options.display.max_columns = 999","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:56:35.929128Z","iopub.execute_input":"2022-01-08T02:56:35.929663Z","iopub.status.idle":"2022-01-08T02:56:37.506373Z","shell.execute_reply.started":"2022-01-08T02:56:35.929627Z","shell.execute_reply":"2022-01-08T02:56:37.505684Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Đọc các file**","metadata":{}},{"cell_type":"code","source":"#Đọc file train và file test\ntrain_df = pd.read_csv(\"../input/quora-insincere-questions-classification/train.csv\")\ntest_df = pd.read_csv(\"../input/quora-insincere-questions-classification/test.csv\")\nprint(\"Train shape : \", train_df.shape)\nprint(\"Test shape : \", test_df.shape)","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:56:40.284571Z","iopub.execute_input":"2022-01-08T02:56:40.284981Z","iopub.status.idle":"2022-01-08T02:56:43.501469Z","shell.execute_reply.started":"2022-01-08T02:56:40.284924Z","shell.execute_reply":"2022-01-08T02:56:43.500636Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét:**\n\n**File train.csv:**\n* Số dòng: 1306122\n* Số cột: 3 (cột qid, question_text, target)\n\n**File test.csv:**\n* Số dòng: 375806\n* Số cột: 2 (cột qid, question_text)\n\n**Thông tin về các trường:**\n* Cột qid: Đây chính là id của câu hỏi, không có 2 câu hỏi nào có id giống nhau.\n* Cột question_text: Đây chính là cột chứa các câu hỏi. Chúng ta sẽ tiến hành clean dữ liệu trước khi cho vào mô hình để huấn luyện.\n* Cột target: Đây chính là cột chứa kết quả đánh giá câu hỏi có phải chân thành hay không chân thành, câu hỏi question_text có target = 0 sẽ được đánh giá là câu hỏi chân thành, và câu hỏi có target = 1 sẽ được đánh giá là không chân thành.","metadata":{}},{"cell_type":"code","source":"train_df.info()","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:56:47.440109Z","iopub.execute_input":"2022-01-08T02:56:47.440666Z","iopub.status.idle":"2022-01-08T02:56:47.811788Z","shell.execute_reply.started":"2022-01-08T02:56:47.440629Z","shell.execute_reply":"2022-01-08T02:56:47.811021Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét** : Dữ liệu file train không có giá trị null.","metadata":{}},{"cell_type":"code","source":"test_df.info()","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:56:53.668320Z","iopub.execute_input":"2022-01-08T02:56:53.668833Z","iopub.status.idle":"2022-01-08T02:56:53.752556Z","shell.execute_reply.started":"2022-01-08T02:56:53.668796Z","shell.execute_reply":"2022-01-08T02:56:53.751776Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét:** Dữ liệu file test không có giá trị null.","metadata":{}},{"cell_type":"markdown","source":"**Tiếp theo , vẽ biều đồ thể hiện sự phân bố dữ liệu trong tập train**","metadata":{}},{"cell_type":"code","source":"cnt_srs = train_df['target'].value_counts()\ntrace = go.Bar(\n    x=cnt_srs.index,\n    y=cnt_srs.values,\n    marker=dict(\n        color=cnt_srs.values,\n        colorscale = 'Picnic',\n        reversescale = True\n    ),\n)\n\nlayout = go.Layout(\n    title='Target Count',\n    font=dict(size=18)\n)\n\ndata = [trace]\nfig = go.Figure(data=data, layout=layout)\npy.iplot(fig, filename=\"TargetCount\")\n","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:56:57.416285Z","iopub.execute_input":"2022-01-08T02:56:57.416535Z","iopub.status.idle":"2022-01-08T02:56:58.104545Z","shell.execute_reply.started":"2022-01-08T02:56:57.416505Z","shell.execute_reply":"2022-01-08T02:56:58.103859Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(\"Tỉ lệ phần trăm số câu hỏi Insincere là:\", (len(train_df.loc[train_df.target==1])) / (len(train_df.loc[train_df.target == 0])) * 100)","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:31:44.351198Z","iopub.execute_input":"2022-01-08T02:31:44.351882Z","iopub.status.idle":"2022-01-08T02:31:44.462473Z","shell.execute_reply.started":"2022-01-08T02:31:44.351841Z","shell.execute_reply":"2022-01-08T02:31:44.461633Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét về phân lớp dữ liệu:**\n\nDựa vào biểu đồ trên, ta có thể thấy trong tập train, số lượng câu hỏi đc đánh nhãn là thiếu chân thành chỉ chiếm khoảng 6.19% (80810/1306122 câu) so với tỉ lệ rất cao là 93.81% là những câu hỏi chân thành.\n\nTỉ lệ giữa 2 nhóm câu hỏi này rơi vào khoảng 1:15 => Tập dữ liệu bị mất cân bằng. Điều này sẽ dẫn đến 1 số vấn đề như sau:\n* Đánh giá sai chất lượng mô hình: Với tỉ lệ như trên thì không cần quan tâm đến mô hình ta cũng có thể đạt được độ chính xác cao của metric accuracy, chỉ cần tất cả dự đoán đưa ra đều có target = 0 thì độ chính xác đã đạt gần 94%.\n* Mô hình dự đoán kém chính xác: Vì ở đây, mục tiêu của bài toán là xác định các câu hỏi thiếu chân thành, trong khi sự mất cân bằng trên có thể khiến kết quả dự đoán thường nghiêng về nhóm đa số(target = 0) và kém hiệu quả trên nhóm thiểu số (target = 1).\n\n Do đó không nên lựa chọn độ chính xác(accuracy) làm chỉ số đánh giá mô hình. Thay vào đó ta có thể sử dụng các metric thay thế như: **F1_score, Recall,..**\n \n Số câu hỏi \"insincere\" chỉ chiếm khoảng 6-7% trong tổng số câu hỏi. Dữ liệu bị mất cân bằng khá lớn, do đó độ đo F1 sẽ thích hợp cho những trường hợp như này","metadata":{}},{"cell_type":"markdown","source":"# Phân tích","metadata":{}},{"cell_type":"markdown","source":"**Số lượng từ có trong câu**","metadata":{}},{"cell_type":"code","source":"words = train_df['question_text'].apply(lambda x: len(x) - len(''.join(x.split())) + 1)\ntrain_df['words'] = words\nwords = train_df.loc[train_df['words']<200]['words']\nsns.distplot(words, color='g')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:57:06.740544Z","iopub.execute_input":"2022-01-08T02:57:06.740796Z","iopub.status.idle":"2022-01-08T02:57:14.175806Z","shell.execute_reply.started":"2022-01-08T02:57:06.740768Z","shell.execute_reply":"2022-01-08T02:57:14.175148Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Số từ trung bình có trong câu**","metadata":{}},{"cell_type":"code","source":"print('Số từ trung bình của các câu hỏi trong dữ liệu file train là {0:.0f}.'.format(np.mean(train_df['question_text'].apply(lambda x: len(x.split())))))\nprint('Số từ trung bình của các câu hỏi trong dữ liệu file test là {0:.0f}.'.format(np.mean(test_df['question_text'].apply(lambda x: len(x.split())))))","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:57:17.188005Z","iopub.execute_input":"2022-01-08T02:57:17.188483Z","iopub.status.idle":"2022-01-08T02:57:19.278352Z","shell.execute_reply.started":"2022-01-08T02:57:17.188446Z","shell.execute_reply":"2022-01-08T02:57:19.277635Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Số từ xuất hiện nhiều nhất**","metadata":{}},{"cell_type":"code","source":"print('Số từ lớn nhất của các câu hỏi trong dữ liệu file train là {0:.0f}.'.format(np.max(train_df['question_text'].apply(lambda x: len(x.split())))))\nprint('Số từ lớn nhất của các câu hỏi trong dữ liệu file test là {0:.0f}.'.format(np.max(test_df['question_text'].apply(lambda x: len(x.split())))))","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:57:20.460162Z","iopub.execute_input":"2022-01-08T02:57:20.460644Z","iopub.status.idle":"2022-01-08T02:57:22.850880Z","shell.execute_reply.started":"2022-01-08T02:57:20.460605Z","shell.execute_reply":"2022-01-08T02:57:22.849383Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Số kí tự trung bình**","metadata":{}},{"cell_type":"code","source":"print('Số ký tự trung bình của các câu hỏi trong dữ liệu file train là {0:.0f}.'.format(np.mean(train_df['question_text'].apply(lambda x: len(x)))))\nprint('Số ký tự trung bình của các câu hỏi trong dữ liệu file test là {0:.0f}.'.format(np.mean(test_df['question_text'].apply(lambda x: len(x)))))","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:57:24.424174Z","iopub.execute_input":"2022-01-08T02:57:24.424906Z","iopub.status.idle":"2022-01-08T02:57:25.307804Z","shell.execute_reply.started":"2022-01-08T02:57:24.424864Z","shell.execute_reply":"2022-01-08T02:57:25.306933Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét**: Có thể thấy độ dài trung bình của các câu hỏi trong tập dữ liệu là giống nhau, tuy nhiên có những câu hỏi khá dài trong tập dữ liệu huấn luyện.","metadata":{}},{"cell_type":"markdown","source":"# Phân tích data\n","metadata":{}},{"cell_type":"code","source":"from wordcloud import WordCloud, STOPWORDS\n\n# Thanks : https://www.kaggle.com/aashita/word-clouds-of-various-shapes ##\ndef plot_wordcloud(text, mask=None, max_words=200, max_font_size=100, figure_size=(24.0,16.0), \n                   title = None, title_size=40, image_color=False):\n    stopwords = set(STOPWORDS)\n    more_stopwords = {'one', 'br', 'Po', 'th', 'sayi', 'fo', 'Unknown'}\n    stopwords = stopwords.union(more_stopwords)\n\n    wordcloud = WordCloud(background_color='black',\n                    stopwords = stopwords,\n                    max_words = max_words,\n                    max_font_size = max_font_size, \n                    random_state = 42,\n                    width=800, \n                    height=400,\n                    mask = mask)\n    wordcloud.generate(str(text))\n    \n    plt.figure(figsize=figure_size)\n    if image_color:\n        image_colors = ImageColorGenerator(mask);\n        plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation=\"bilinear\");\n        plt.title(title, fontdict={'size': title_size,  \n                                  'verticalalignment': 'bottom'})\n    else:\n        plt.imshow(wordcloud);\n        plt.title(title, fontdict={'size': title_size, 'color': 'black', \n                                  'verticalalignment': 'bottom'})\n    plt.axis('off');\n    plt.tight_layout()  \n    \nplot_wordcloud(train_df[\"question_text\"], title=\"Word Cloud of Questions\")","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:57:39.228067Z","iopub.execute_input":"2022-01-08T02:57:39.228862Z","iopub.status.idle":"2022-01-08T02:57:40.190425Z","shell.execute_reply.started":"2022-01-08T02:57:39.228812Z","shell.execute_reply":"2022-01-08T02:57:40.188022Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Tính các từ xuất hiện nhiều trong các câu hỏi chân thành và không chân thành**","metadata":{}},{"cell_type":"code","source":"from collections import defaultdict\ntrain1_df = train_df[train_df[\"target\"]==1]\ntrain0_df = train_df[train_df[\"target\"]==0]\n\n## custom function for ngram generation ##\ndef generate_ngrams(text, n_gram=1):\n    token = [token for token in text.lower().split(\" \") if token != \"\" if token not in STOPWORDS]\n    ngrams = zip(*[token[i:] for i in range(n_gram)])\n    return [\" \".join(ngram) for ngram in ngrams]\n\n## custom function for horizontal bar chart ##\ndef horizontal_bar_chart(df, color):\n    trace = go.Bar(\n        y=df[\"word\"].values[::-1],\n        x=df[\"wordcount\"].values[::-1],\n        showlegend=False,\n        orientation = 'h',\n        marker=dict(\n            color=color,\n        ),\n    )\n    return trace\n\n## Get the bar chart from sincere questions ##\nfreq_dict = defaultdict(int)\nfor sent in train0_df[\"question_text\"]:\n    for word in generate_ngrams(sent):\n        freq_dict[word] += 1\nfd_sorted = pd.DataFrame(sorted(freq_dict.items(), key=lambda x: x[1])[::-1])\nfd_sorted.columns = [\"word\", \"wordcount\"]\ntrace0 = horizontal_bar_chart(fd_sorted.head(50), 'blue')\n\n## Get the bar chart from insincere questions ##\nfreq_dict = defaultdict(int)\nfor sent in train1_df[\"question_text\"]:\n    for word in generate_ngrams(sent):\n        freq_dict[word] += 1\nfd_sorted = pd.DataFrame(sorted(freq_dict.items(), key=lambda x: x[1])[::-1])\nfd_sorted.columns = [\"word\", \"wordcount\"]\ntrace1 = horizontal_bar_chart(fd_sorted.head(50), 'blue')\n\n# Creating two subplots\nfig = tools.make_subplots(rows=1, cols=2, vertical_spacing=0.04,\n                          subplot_titles=[\"top các từ có nhiều trong câu hỏi chân thành\", \n                                          \"top các từ có nhiều trong câu hỏi ko chân thành\"])\nfig.append_trace(trace0, 1, 1)\nfig.append_trace(trace1, 1, 2)\nfig['layout'].update(height=1200, width=900, paper_bgcolor='rgb(233,233,233)', title=\"Word Count Plots\")\npy.iplot(fig, filename='word-plots')","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:58:52.816391Z","iopub.execute_input":"2022-01-08T02:58:52.816652Z","iopub.status.idle":"2022-01-08T02:59:02.869038Z","shell.execute_reply.started":"2022-01-08T02:58:52.816624Z","shell.execute_reply":"2022-01-08T02:59:02.868283Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Đầu tiên ta sẽ xử lý data: Bỏ các từ không mang nghĩa và dấu (stopword, punctual), đổi chữ hoa thành chữ thường, lemmatize (đưa tất cả các chữ về một dạng thống nhất)**","metadata":{}},{"cell_type":"code","source":"from gensim.utils import simple_preprocess \nfrom nltk.corpus import stopwords\nfrom nltk.stem import WordNetLemmatizer\n\nstop_words = set(stopwords.words('english')) \nwordnet_lemmatizer = WordNetLemmatizer()\ndef preprocessing(corpus):\n    res = []\n    for doc in corpus:\n        words = []\n        for word in simple_preprocess(doc):\n            if word not in stop_words:\n                word1 = wordnet_lemmatizer.lemmatize(word, pos = \"n\")\n                word2 = wordnet_lemmatizer.lemmatize(word1,pos = \"v\")\n                word3 = wordnet_lemmatizer.lemmatize(word2, pos = (\"a\"))\n                words.append(word3)\n                pass\n            pass\n        res.append(' '.join(words))        \n        pass\n    return res","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:59:08.490009Z","iopub.execute_input":"2022-01-08T02:59:08.490593Z","iopub.status.idle":"2022-01-08T02:59:08.707465Z","shell.execute_reply.started":"2022-01-08T02:59:08.490556Z","shell.execute_reply":"2022-01-08T02:59:08.706777Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**NHẬN XÉT:**\n\nMột vài từ xuất hiện nhiều ở cả hai lớp như people, think, many...\nNhững top words xuất hiện nhiều nhất ở lớp câu hỏi chân thành là : best, will, people...\nNhững top words xuất hiện nhiều nhất ở lớp câu hỏi ko chân thành là : people, women, will...","metadata":{}},{"cell_type":"markdown","source":"# Tiền xử lý data","metadata":{}},{"cell_type":"markdown","source":"**Đầu tiên ta sẽ xử lý data**","metadata":{}},{"cell_type":"code","source":"from gensim.utils import simple_preprocess \nfrom nltk.corpus import stopwords\nfrom nltk.stem import WordNetLemmatizer\n\nstop_words = set(stopwords.words('english')) \nwordnet_lemmatizer = WordNetLemmatizer()\ndef preprocessing(corpus):\n    res = []\n    for doc in corpus:\n        words = []\n        for word in simple_preprocess(doc):\n            if word not in stop_words:\n                word1 = wordnet_lemmatizer.lemmatize(word, pos = \"n\")\n                word2 = wordnet_lemmatizer.lemmatize(word1,pos = \"v\")\n                word3 = wordnet_lemmatizer.lemmatize(word2, pos = (\"a\"))\n                words.append(word3)\n                pass\n            pass\n        res.append(' '.join(words))        \n        pass\n    return res","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:00:29.053167Z","iopub.execute_input":"2022-01-08T03:00:29.053790Z","iopub.status.idle":"2022-01-08T03:00:29.061633Z","shell.execute_reply.started":"2022-01-08T03:00:29.053754Z","shell.execute_reply":"2022-01-08T03:00:29.060855Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Đọc lại file train.csv và test.csv đưa về dạng tệp 'train' và 'test'**","metadata":{}},{"cell_type":"code","source":"train = pd.read_csv(\"../input/quora-insincere-questions-classification/train.csv\")\ntest = pd.read_csv(\"../input/quora-insincere-questions-classification/test.csv\")","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:00:35.072900Z","iopub.execute_input":"2022-01-08T03:00:35.073438Z","iopub.status.idle":"2022-01-08T03:00:38.028237Z","shell.execute_reply.started":"2022-01-08T03:00:35.073398Z","shell.execute_reply":"2022-01-08T03:00:38.027511Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# áp dụng cho tập train và test \ntrain['question_text'] = preprocessing(train['question_text'])\ntest['question_text'] = preprocessing(test['question_text'])","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:00:41.768082Z","iopub.execute_input":"2022-01-08T03:00:41.768857Z","iopub.status.idle":"2022-01-08T03:03:49.783754Z","shell.execute_reply.started":"2022-01-08T03:00:41.768810Z","shell.execute_reply":"2022-01-08T03:03:49.782997Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Tích xuất","metadata":{}},{"cell_type":"markdown","source":"**TF-IDF là gì?**\n\n**TF-IDF (Term Frequency – Inverse Document Frequency)** là 1 kĩ thuật sử dụng trong khai phá dữ liệu văn bản. Trọng số này được sử dụng để đánh giá tầm quan trọng của một từ trong một văn bản. Giá trị cao thể hiện độ quan trọng cao và nó phụ thuộc vào số lần từ xuất hiện trong văn bản nhưng bù lại bởi tần suất của từ đó trong tập dữ liệu. Một vài biến thể của TF-IDF thường được sử dụng trong các hệ thống tìm kiếm như một công cụ chính để đánh giá và sắp xếp văn bản dựa vào truy vấn của người dùng. TF-IDF cũng được sử dụng để lọc những từ stopwords trong các bài toán như tóm tắt văn bản và phân loại văn bản.\n\n**TF** là gì? **TF:** Term Frequency(Tần suất xuất hiện của từ) là số lần từ xuất hiện trong văn bản. Vì các văn bản có thể có độ dài ngắn khác nhau nên một số từ có thể xuất hiện nhiều lần trong một văn bản dài hơn là một văn bản ngắn. Như vậy, term frequency thường được chia cho độ dài văn bản( tổng số từ trong một văn bản).\n\n![image.png](attachment:a995e734-7976-410d-93db-ddeb619c3547.png)\n\n**Trong đó:**\n\ntf(t, d): tần suất xuất hiện của từ t trong văn bản d\n\nf(t, d): Số lần xuất hiện của từ t trong văn bản d\n\nmax({f(w, d) : w ∈ d}): Số lần xuất hiện của từ có số lần xuất hiện nhiều nhất trong văn bản d\n\n**IDF** là gì?\n\n**IDF:** Inverse Document Frequency(Nghịch đảo tần suất của văn bản), giúp đánh giá tầm quan trọng của một từ . Khi tính toán TF , tất cả các từ được coi như có độ quan trọng bằng nhau. Nhưng một số từ như “is”, “of” và “that” thường xuất hiện rất nhiều lần nhưng độ quan trọng là không cao. Như thế chúng ta cần giảm độ quan trọng của những từ này xuống.\n\n![image.png](attachment:26b1c17e-377c-435b-911c-46f9f5bdb3fd.png)\n\n\n**Trong đó:**\n\nidf(t, D): giá trị idf của từ t trong tập văn bản\n\n|D|: Tổng số văn bản trong tập D\n\n|{d ∈ D : t ∈ d}|: thể hiện số văn bản trong tập D có chứa từ t.\n\nCơ số logarit trong công thức này không thay đổi giá trị idf của từ mà chỉ thu hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ thay đổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không thay đổi. (nói cách khác, thay đổi cơ số sẽ không ảnh hưởng đến tỷ lệ giữa các giá trị IDF). Việc sử dụng logarit nhằm giúp giá trị tf-idf của một từ nhỏ hơn, do chúng ta có công thức tính tf-idf của một từ trong 1 văn bản là tích của tf và idf của từ đó.\n\nCụ thể, chúng ta có công thức tính TF-IDF hoàn chỉnh như sau:\n\ntfidf(t, d, D) = tf(t, d) x idf(t, D)\n\n**Khi đó:**\n\nNhững từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác. Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó).","metadata":{},"attachments":{"26b1c17e-377c-435b-911c-46f9f5bdb3fd.png":{"image/png":"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bnoRp/bhiufSR+d7w/9t001gkv/0Oc95Tvl9FAaFiNMQ+mfBidP2y/E7weMF048rxvdsXEO+73ffJzB7fVH5ntglefEuuuiiEoT/lre8pbiJFpLYUjejuh4utbvuuqvZbbfdylrVO+64Y4n1+vVf//VlewSo83ZYjNyDfvI2hjCf0OYJPLPmiU9pnTrF6bgScRpC/yyY2fpc5wShjahktaypQCxf19mhT4b9HMPo/NZbb23OOeecsn3xi18s4okQ6OVY1nG+4IILmrPOOquIhn322acsmTefhKnrdL21Xrtt6to+3ba6j99raMNUrLTSSs0aa6zR7L333mV27HHHHddce+21PX13MdB+P9S7zVrfNcl46iksdB5++OEy6UnbDyEsXGbdcup0XixSdXjJPOMZzyh554ax+hCN11xzTXP99dc33/72t8tnzqMTl4eOBW6rrbaaVhhKO3L33Xc3f/d3f1cseMrJrUwQcM0Tl0TmS17ykiKkulHPe8YZZ5RRviD7/fbbr9l+++3LsaZzKY0LxD1xfvHFFxdX2WSoUzFarJvqRIqWei9r02JxNuN1ww03LDFc9p/sXqg7gwmxYyY2iPdS51tsscWkdb4Y0Bbvu+++0q78rKhjbUyKmz333DPW07Ag0c5ZHz/60Y82X/3qV8v69nKOxnIawsJkhfdPsOz3WUFHqnP95Cc/WaxirD4EG+E3qHAzK5P7nLWN4H3ggQeKyHRs1qQXv/jFzbrrrjvli4yVlRhi7SRyze586UtfWgLh77///vI/AlUqEoLarM1uEHW33XZbEaby6/3hH/5h8yd/8idFJPcqHLyI64a5eAGzyH35y19uPv/5z5f7RaCaaKBu62aA4X7KCyi21vV6EfucwHQvdCSs19/4xjfKGtff//73i8iczCWnDVha0Gxax3FOA45nP/vZ5fPFuhoL0a7OL7/88tK+1KfNZ9qlNr7JJpvMm8FPCP2irYtH957Zd9995008Oi+cst9www1lHX7eoX5SUYWwGJlVcUpscXdfeumlzamnntp8/etfLwJSx/uKV7yiWN0G6VwJUFZP6x1L9+EYNa8dEbnBBhtMKU6VixAjTI1wqyVK7KMR7j/8wz+UlwvhSVRJK0JMd8K65cUpWN/IXsqSnXfeucRN9npdykKUER7qikhThtkWHeqURZo4N3NV3UrJom6U0b1S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"},"a995e734-7976-410d-93db-ddeb619c3547.png":{"image/png":"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"}}},{"cell_type":"code","source":"vector = TfidfVectorizer( ngram_range = (1,2))\ntrain_feature_matrics = vector.fit_transform(train['question_text'].values.astype('U'))\ntest_feature_matrics = vector.transform(test['question_text'].values.astype('U'))","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:05:07.234610Z","iopub.execute_input":"2022-01-08T03:05:07.234850Z","iopub.status.idle":"2022-01-08T03:06:03.226708Z","shell.execute_reply.started":"2022-01-08T03:05:07.234817Z","shell.execute_reply":"2022-01-08T03:06:03.225995Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_feature_matrics","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:24:30.513390Z","iopub.execute_input":"2022-01-08T03:24:30.513643Z","iopub.status.idle":"2022-01-08T03:24:30.519200Z","shell.execute_reply.started":"2022-01-08T03:24:30.513614Z","shell.execute_reply":"2022-01-08T03:24:30.518433Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Đã xong quá trình tiền xử lý , lúc này dữ liệu cơ bản đã được làm sạch , bây giờ ta sẽ chọn lựa model để thực hiện quá trình train**","metadata":{}},{"cell_type":"markdown","source":"# Lựa chọn model","metadata":{}},{"cell_type":"markdown","source":"**+ Tìm hiểu về F1-score**\nĐầu tiên, Precision được định nghĩa là tỉ lệ số điểm positive mô hình dự đoán đúng trên tổng số điểm mô hình dự đoán là Positive. Recall được định nghĩa là tỉ lệ số điểm positive mô hình dự đoán đúng trên tổng số điểm thật sự là Positive (hay tổng số điểm được gán nhãn là positive ban đầu).\n\nPrecision càng cao, tức là số điểm mô hình dự đoán là positive đều là positive càng nhiều. Precision = 1, tức là tất cả số điểm mô hình dự doán là Positive đều đúng, hay không có điểm nào có nhãn là Negative mà mô hình dự đoán nhầm là Positive.\n\nRecall càng cao, tức là số điểm là positive bị bỏ sót càng ít. Recall = 1, tức là tất cả số điểm có nhãn là Positive đều được mô hình nhận ra.\n\nChỉ dùng Precision, mô hình chỉ đưa ra dự đoán cho một điểm mà nó chắc chắn nhất. Khi đó Precision = 1, tuy nhiên ta không thể nói là mô hình này tốt.Chỉ dùng Recall, nếu mô hình dự đoán tất cả các điểm đều là Positive. Khi đó Recall = 1, tuy nhiên ta cũng không thể nói đây là mô hình tốt. Khi đó F1-score được sử dụng. F1-score là trung bình điều hòa (harmonic mean) của Precision và Recall (giả sử hai đại lượng này khác 0). F1-score được tinh theo công thức:\n\n\n![image.png](attachment:910dc982-3c99-4c56-9ac0-90cd198a62eb.png)\n\n\n**F1-score** có giá trị nằm trong nửa khoảng (0,1].F1 càng cao, bộ phân lớp càng tốt. Khi cả Recall và Precision đều bằng 1 (tốt nhất có thể), F1 = 1. Khi cả Recall và Precision đều thấp, ví dụ bằng 0.1, F1 = 0.1.\n\n**+  Lựa chọn mô hình huấn luyện: mô hình Logistic Regression**\n\n   -  **Giới thiệu qua về Logistic Regression**  \n         Logistic Regression là 1 thuật toán phân loại được dùng để gán các đối tượng cho 1 tập hợp giá trị rời rạc (như 0, 1, 2, ...). Một ví dụ điển hình là phân loại Email, gồm có email công việc, email gia đình, email spam, ... Giao dịch trực tuyến có là an toàn hay không an toàn, khối u lành tính hay ác tình. Thuật toán trên dùng hàm sigmoid logistic để đưa ra đánh giá theo xác suất.\n   -  **Học tf-idf đã extract ở trên bằng mô hình Logistic regression. Thử tunning tham số regularize C**\n   ","metadata":{},"attachments":{"910dc982-3c99-4c56-9ac0-90cd198a62eb.png":{"image/png":"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"}}},{"cell_type":"code","source":"# Khai báo thêm các thư viện được sử dụng\nfrom sklearn.metrics import accuracy_score, confusion_matrix, f1_score\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\ntrain_x, valid_x, train_y, valid_y = train_test_split(train_feature_matrics, train['target'], test_size=0.25, shuffle=False)\nC = [0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30, 100, 300, 1000]","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:24:37.458309Z","iopub.execute_input":"2022-01-08T03:24:37.459051Z","iopub.status.idle":"2022-01-08T03:24:37.542320Z","shell.execute_reply.started":"2022-01-08T03:24:37.459006Z","shell.execute_reply":"2022-01-08T03:24:37.541568Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Bây giờ , bắt đầu đi vào quá trình huấn luyện**","metadata":{}},{"cell_type":"code","source":"for c in C:\n    model = LogisticRegression(solver='liblinear', penalty='l2', C=c)\n    model.fit(train_x, train_y)\n    prediction = model.predict(valid_x)\n    f1 = f1_score(valid_y, prediction)\n    acc = accuracy_score(valid_y, prediction)\n    print(\"Regularization: \", c)\n    print(\"F1 score: \",f1)\n    print(\"Acc score: \",acc)","metadata":{"execution":{"iopub.status.busy":"2022-01-08T03:24:40.109350Z","iopub.execute_input":"2022-01-08T03:24:40.109603Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Nhận xét:** Có thể thấy , giá trị Regularization tốt nhất là 30, Vì hàm predict sẽ trả về một sample là sincere hay không bằng cách so sánh xác suất đầu ra với một giá trị mặc định threshold = 0.5 (decision bound = 0), ta sẽ thử thay đổi mức threshold này","metadata":{}},{"cell_type":"code","source":"thresholds = [0.5, 0.1, 0.14, 0.15, 0.16, 0.17, 0.25, 0.3, 0.4, 0.55, 0.7]\nc = 30\nmodel = LogisticRegression(solver='liblinear', penalty='l2', C=c)\nmodel.fit(train_x, train_y)\npredict = model.predict_proba(valid_x)[:,1]\nfor t in thresholds:\n    predict_t = np.where(predict > t, 1, 0)\n    f1 = f1_score(valid_y, predict_t)\n    print(\"Threshold: \", t)\n    print(\"F1 score: \", f1)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:44:58.279526Z","iopub.execute_input":"2022-01-06T14:44:58.280221Z","iopub.status.idle":"2022-01-06T14:46:11.543215Z","shell.execute_reply.started":"2022-01-06T14:44:58.280184Z","shell.execute_reply":"2022-01-06T14:46:11.542512Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Tại Threshold = 0.15 , giá trị F1 score là tốt nhất cho tập val**","metadata":{}},{"cell_type":"code","source":"t= 0.15\npredict = model.predict_proba(valid_x)[:,1]\npredict = np.where(predict > t, 1, 0)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:46:54.817614Z","iopub.execute_input":"2022-01-06T14:46:54.818156Z","iopub.status.idle":"2022-01-06T14:46:54.855258Z","shell.execute_reply.started":"2022-01-06T14:46:54.818116Z","shell.execute_reply":"2022-01-06T14:46:54.854487Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"confusion_matrix(valid_y, predict)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:47:10.05254Z","iopub.execute_input":"2022-01-06T14:47:10.053025Z","iopub.status.idle":"2022-01-06T14:47:10.451137Z","shell.execute_reply.started":"2022-01-06T14:47:10.052987Z","shell.execute_reply":"2022-01-06T14:47:10.450438Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Vì số sample có nhãn 1 chỉ chiếm 6% tổng số sample, ta thử sử dụng class weight để cải tiến model. Coi 1 sample có label 1 như 14 samples có label 0.**","metadata":{}},{"cell_type":"code","source":"class_weight = {0: 1., 1: 14.}\nthresholds = [0.1, 0.25, 0.3, 0.35, 0.4, 0.55, 0.6, 0.7, 0.8, 0.85, 0.9]\nc = 30\nmodel = LogisticRegression(solver='liblinear', penalty='l2', C=c, class_weight = class_weight)\nmodel.fit(train_x, train_y)\npredict = model.predict_proba(valid_x)[:,1]\nfor t in thresholds:\n    predict_t = np.where(predict > t, 1, 0)\n    f1 = f1_score(valid_y, predict_t)\n    print(\"Threshold: \", t)\n    print(\"F1 score: \", f1)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:47:38.290785Z","iopub.execute_input":"2022-01-06T14:47:38.291307Z","iopub.status.idle":"2022-01-06T14:50:10.718436Z","shell.execute_reply.started":"2022-01-06T14:47:38.291269Z","shell.execute_reply":"2022-01-06T14:50:10.717752Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Model này cho kết quả F1-score không tốt bằng model trước , vì vậy ta sẽ dùng kết quả của model trước để dự toán kết quả cho tập test**","metadata":{}},{"cell_type":"code","source":"# Kiểm tra dữ liệu có trong tập test\ntest.head(20)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:50:29.173677Z","iopub.execute_input":"2022-01-06T14:50:29.17423Z","iopub.status.idle":"2022-01-06T14:50:29.189916Z","shell.execute_reply.started":"2022-01-06T14:50:29.174189Z","shell.execute_reply":"2022-01-06T14:50:29.189275Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = LogisticRegression(solver='liblinear', penalty='l2', C=30)\nmodel.fit(train_feature_matrics, train['target'])\npredict = model.predict_proba(test_feature_matrics)[:,1]\npredict = np.where(predict > 0.17, 1, 0)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:53:39.94413Z","iopub.execute_input":"2022-01-06T14:53:39.944431Z","iopub.status.idle":"2022-01-06T14:55:17.514943Z","shell.execute_reply.started":"2022-01-06T14:53:39.944398Z","shell.execute_reply":"2022-01-06T14:55:17.514198Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test['prediction'] = predict","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:59:38.69212Z","iopub.execute_input":"2022-01-06T14:59:38.692386Z","iopub.status.idle":"2022-01-06T14:59:38.697925Z","shell.execute_reply.started":"2022-01-06T14:59:38.692356Z","shell.execute_reply":"2022-01-06T14:59:38.697055Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Kết quả dự đoán trong tập test","metadata":{}},{"cell_type":"code","source":"test.head(20)","metadata":{"execution":{"iopub.status.busy":"2022-01-08T02:50:34.644549Z","iopub.execute_input":"2022-01-08T02:50:34.644814Z","iopub.status.idle":"2022-01-08T02:50:34.792821Z","shell.execute_reply.started":"2022-01-08T02:50:34.644784Z","shell.execute_reply":"2022-01-08T02:50:34.791751Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**Kết luận: Mô hình thử nghiệm trên tập test đã cho ra kết quả phân biệt được đâu là câu hỏi chân thành (prediction = 0) và đâu là câu hỏi không trân thành (prediction = 1).**","metadata":{}},{"cell_type":"markdown","source":"# Kết luận ","metadata":{}},{"cell_type":"markdown","source":"**Tạo file submission .csv chứa kết quả của mô hình.**","metadata":{}},{"cell_type":"code","source":"results = test[['qid', 'prediction']]\nresults.to_csv('submission.csv', index=False)","metadata":{"execution":{"iopub.status.busy":"2022-01-06T14:59:41.452689Z","iopub.execute_input":"2022-01-06T14:59:41.453277Z","iopub.status.idle":"2022-01-06T14:59:42.387287Z","shell.execute_reply.started":"2022-01-06T14:59:41.453234Z","shell.execute_reply":"2022-01-06T14:59:42.386561Z"},"trusted":true},"execution_count":null,"outputs":[]}]}