diff --git a/2023/homework/Jun_Fan/homework_credit_scoring.ipynb b/2023/homework/Jun_Fan/homework_credit_scoring.ipynb
new file mode 100644
index 00000000..879aeb2b
--- /dev/null
+++ b/2023/homework/Jun_Fan/homework_credit_scoring.ipynb
@@ -0,0 +1,942 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings(\"ignore\")\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(81486, 10)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "x_train,x_test,y_train,y_test=train_test_split(X, y, \n",
+ " test_size=.25, \n",
+ " shuffle=True, \n",
+ " random_state=np.random.seed(1234))\n",
+ "x_train.shape\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[-0.02491961, -0.32868909, 1.20804458, 0.42701328, -0.12762538,\n",
+ " -0.07764521, 0.2785668 , -0.43958502, -1.22289771, 0.13003486]])"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "import sklearn.linear_model\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "import matplotlib as plt\n",
+ "\n",
+ "#实例化一个标准函数类。\n",
+ "iden = StandardScaler()\n",
+ "#输入标准化模板\n",
+ "iden.fit(x_train)\n",
+ "#生成标准化的数组\n",
+ "X_train_std = iden.transform(x_train)\n",
+ "X_test_std = iden.transform(x_test)\n",
+ "\n",
+ "#使用模型计算\n",
+ "#linear_model.LogisticRegression()是一个类,下面的算法实现都是从类的实例化开始的。\n",
+ "#daul是选择惩罚函数形式,它需要传入一个bool值。\n",
+ "#C是惩罚项系数倒数,它决定了在惩罚项在损失函数的权重,c越大惩罚项对模型的影响就越小,过拟合倾向越大,欠拟合倾向越小。\n",
+ "#fit_intercept是否添加常数项\n",
+ "#random_state参数生成随机数的方式,可以是整数或numpy.random.randomState实例\n",
+ "LG=sklearn.linear_model.LogisticRegression(C=10.0, \n",
+ " max_iter=10,\n",
+ " random_state=np.random.seed())\n",
+ "LG.fit(X_train_std,y_train)\n",
+ "#输出预测结果\n",
+ "y_LG_pred=LG.predict(x_test)\n",
+ "y_LG_pred2=LG.predict(x_train)\n",
+ "\n",
+ "LG.coef_"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "## your code here\n",
+ "#导入决策树计算包\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "#criterion:选择衡量分割质量的函数,有三种选择。\n",
+ "#max_depth:树的最大深度。\n",
+ "tree = DecisionTreeClassifier(criterion='gini',\n",
+ " max_depth=5,\n",
+ " random_state=0)\n",
+ "tree.fit(x_train, y_train)\n",
+ "\n",
+ "y_tree_pred=tree.predict(x_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "## your code here\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "#n_estimators:应是随机森林中tree的数目。\n",
+ "#n_jobs:并行训练多少个job。\n",
+ "forest = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10,\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest.fit(x_train, y_train)\n",
+ "\n",
+ "y_froest_pred=forest.predict(x_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(81486, 10)\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.svm import SVC\n",
+ "#这里模型跑的比较慢,由于是练习就选择了10000个数据训练,准确率也还行。\n",
+ "#kernel:支持向量机超平面分割的关机是额外维度的生成,kernel可以指定生成方式,下面采用线性模型。\n",
+ "\n",
+ "svm = SVC(kernel='linear',\n",
+ " random_state=0, \n",
+ " C=10.0)\n",
+ "print(X_train_std.shape)\n",
+ "svm.fit(X_train_std[0:10_000], y_train[0:10_000])\n",
+ "y_svm_pred=svm.predict(x_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "## your code here\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "#n_neighbors:参与投票的点数\n",
+ "#P选择距离的衡量。1 Manhattan distance;2 Euclidean distance ;others:Minkowski distance \n",
+ "knn = KNeighborsClassifier(n_neighbors=5,\n",
+ " p=3,\n",
+ " metric='minkowski')\n",
+ "knn.fit(X_train_std, y_train)\n",
+ "y_knn_pred=knn.predict(x_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "train_accuracy: 0.93\n",
+ "test_Accuracy: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "print(f'train_accuracy: {accuracy_score(y_train, y_LG_pred2):.2f}')\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_LG_pred):.2f}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test_Accuracy: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_tree_pred):.2f}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test_Accuracy: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test,y_froest_pred):.2f}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test_Accuracy: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test,y_svm_pred):.2f}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test_Accuracy: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_knn_pred):.2f}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "confusion_matrix: [[25239 0]\n",
+ " [ 1923 0]]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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f02CLgkAAOASFQYAgCUw6NEcEgYAgCWQMJhDwgAAsAQGPZrDGAYAAOASFQYAgCXwloQ5JAwAAEsoTxjMjGHwYDAXILokAACAS1QYAACWwFsS5pAwAAAswfhtM3O+ldElAQAAXKLCAACwBLokzCFhAABYA30SppAwAACswWSFQRavMDCGAQAAuETCAACwhIqZHs1s7li/fr1uueUWRUZGymazafny5U7HBwwYIJvN5rR169bNqc3Ro0fVv39/BQcHq379+ho0aJDy8/Od2nz77be64YYb5Ofnp6ioKE2dOvW0WN588021bt1afn5+io2N1fvvv+/ew4iEAQBgERWDHs1s7igoKFC7du00d+7cP23TrVs3HThwwLH997//dTrev39/bdu2TWlpaVqxYoXWr1+v+++/33E8Ly9PXbt2VfPmzbVlyxZNmzZNEyZM0EsvveRos3HjRvXr10+DBg3S119/rV69eqlXr17aunWrW8/DGAYAAKpA9+7d1b1797O28fX1VURExBmPbd++XatWrdKXX36pjh07SpKef/559ejRQ//+978VGRmpRYsWqbi4WK+++qp8fHx0+eWXKyMjQ88995wjsZg1a5a6deumkSNHSpImT56stLQ0zZkzR6mpqZV+HioMAABrMGzmN5X/Vn/qVlRUdM4hrV27VmFhYWrVqpUefPBB/frrr45j6enpql+/viNZkKSEhAR5eXlp06ZNjjadOnWSj4+Po01iYqKysrJ07NgxR5uEhASn+yYmJio9Pd2tWEkYAACW4KkxDFFRUQoJCXFsU6ZMOad4unXrptdff12rV6/W//3f/2ndunXq3r27ysrKJEnZ2dkKCwtzOqdOnToKDQ1Vdna2o014eLhTm4rPrtpUHK8suiQAAHDD3r17FRwc7Pjs6+t7Ttfp27ev48+xsbG64oordMkll2jt2rW66aabTMfpaVQYAADWYHhgkxQcHOy0nWvC8EctW7ZUo0aNtGPHDklSRESEDh065NSmtLRUR48edYx7iIiI0MGDB53aVHx21ebPxk78GRIGAIAlnO+3JNy1b98+/frrr2rSpIkkKT4+Xjk5OdqyZYujzZo1a2S32xUXF+dos379epWUlDjapKWlqVWrVmrQoIGjzerVq53ulZaWpvj4eLfiq1SXxLvvvlvpC956661uBQAAQG2Un5/vqBZI0q5du5SRkaHQ0FCFhoZq4sSJ6tOnjyIiIrRz506NGjVK0dHRSkxMlCS1adNG3bp105AhQ5SamqqSkhKlpKSob9++ioyMlCTdddddmjhxogYNGqTRo0dr69atmjVrlmbMmOG476OPPqrOnTtr+vTp6tmzp9544w1t3rzZ6dXLyqhUwtCrV69KXcxmszkGawAAUOOcx/UgNm/erC5dujg+Dx8+XJKUlJSkefPm6dtvv9Vrr72mnJwcRUZGqmvXrpo8ebJTF8eiRYuUkpKim266SV5eXurTp49mz57tOB4SEqKPPvpIycnJ6tChgxo1aqRx48Y5zdXwl7/8RYsXL9aTTz6pxx9/XJdeeqmWL1+utm3buvU8NsNwd+6qmiMvL08hISE69kNLBQfRu4LaKTGyfXWHAFSZUqNEa/WOcnNznQYSelLFd0XUi+Pl5e93ztexnyzU3n9OrNJYazJT37KFhYWeigMAgKrloUGPVuV2wlBWVqbJkyfroosuUr169fTTTz9Jkp566im98sorHg8QAABUP7cThmeeeUYLFy7U1KlTnWaWatu2rebPn+/R4AAA8BybBzbrcjtheP311/XSSy+pf//+8vb2duxv166dMjMzPRocAAAeQ5eEKW4nDL/88ouio6NP22+3253eAwUAALWH2wlDTEyMPv3009P2/+9//9OVV17pkaAAAPA4KgymuL2WxLhx45SUlKRffvlFdrtdb7/9trKysvT6669rxYoVVREjAADmnbLi5Dmfb2FuVxhuu+02vffee/r4448VGBiocePGafv27Xrvvfd08803V0WMAACgmp3TapU33HCD0tLSPB0LAABV5tQlqs/1fCs75+WtN2/erO3bt0sqH9fQoUMHjwUFAIDHmR2HQMLgnn379qlfv3767LPPVL9+fUlSTk6O/vKXv+iNN95Q06ZNPR0jAACoZm6PYRg8eLBKSkq0fft2HT16VEePHtX27dtlt9s1ePDgqogRAADzKgY9mtkszO0Kw7p167Rx40a1atXKsa9Vq1Z6/vnndcMNN3g0OAAAPMVmlG9mzrcytxOGqKioM07QVFZW5lifGwCAGocxDKa43SUxbdo0Pfzww9q8ebNj3+bNm/Xoo4/q3//+t0eDAwAANUOlKgwNGjSQzfZ7301BQYHi4uJUp0756aWlpapTp47uu+8+9erVq0oCBQDAFCZuMqVSCcPMmTOrOAwAAKoYXRKmVCphSEpKquo4AABADXbOEzdJUmFhoYqLi532BQcHmwoIAIAqQYXBFLcHPRYUFCglJUVhYWEKDAxUgwYNnDYAAGokVqs0xe2EYdSoUVqzZo3mzZsnX19fzZ8/XxMnTlRkZKRef/31qogRAABUM7e7JN577z29/vrruvHGGzVw4EDdcMMNio6OVvPmzbVo0SL179+/KuIEAMAc3pIwxe0Kw9GjR9WyZUtJ5eMVjh49Kkm6/vrrtX79es9GBwCAh1TM9GhmszK3E4aWLVtq165dkqTWrVtr6dKlksorDxWLUQEAgNrF7YRh4MCB+uabbyRJY8aM0dy5c+Xn56dhw4Zp5MiRHg8QAACPYNCjKW6PYRg2bJjjzwkJCcrMzNSWLVsUHR2tK664wqPBAQCAmsHUPAyS1Lx5czVv3twTsQAAUGVsMrlapcciuTBVKmGYPXt2pS/4yCOPnHMwAACgZqpUwjBjxoxKXcxms1VLwvCPG29WHS/f835f4PzYX90BALUDr1WaUqmEoeKtCAAALlhMDW2K229JAAAA6zE96BEAgAsCFQZTSBgAAJZgdrZGZnoEAABwgQoDAMAa6JIw5ZwqDJ9++qnuvvtuxcfH65dffpEk/ec//9GGDRs8GhwAAB7D1NCmuJ0wvPXWW0pMTJS/v7++/vprFRUVSZJyc3P17LPPejxAAABQ/dxOGJ5++mmlpqbq5ZdfVt26dR37r7vuOn311VceDQ4AAE9heWtz3B7DkJWVpU6dOp22PyQkRDk5OZ6ICQAAz2OmR1PcrjBERERox44dp+3fsGGDWrZs6ZGgAADwOMYwmOJ2wjBkyBA9+uij2rRpk2w2m/bv369FixZpxIgRevDBB6siRgAAUM3c7pIYM2aM7Ha7brrpJp04cUKdOnWSr6+vRowYoYcffrgqYgQAwDQmbjLH7YTBZrPpiSee0MiRI7Vjxw7l5+crJiZG9erVq4r4AADwDOZhMOWcJ27y8fFRTEyMJ2MBAAA1lNsJQ5cuXWSz/flI0TVr1pgKCACAKmH21UgqDO5p37690+eSkhJlZGRo69atSkpK8lRcAAB4Fl0SpridMMyYMeOM+ydMmKD8/HzTAQEAgJrHY6tV3n333Xr11Vc9dTkAADyLeRhM8dhqlenp6fLz8/PU5QAA8CheqzTH7YShd+/eTp8Nw9CBAwe0efNmPfXUUx4LDAAA1BxuJwwhISFOn728vNSqVStNmjRJXbt29VhgAACg5nArYSgrK9PAgQMVGxurBg0aVFVMAAB4Hm9JmOLWoEdvb2917dqVVSkBABcclrc2x+23JNq2bauffvqpKmIBAAA1lNsJw9NPP60RI0ZoxYoVOnDggPLy8pw2AABqLF6pPGeVHsMwadIkPfbYY+rRo4ck6dZbb3WaItowDNlsNpWVlXk+SgAAzGIMgymVThgmTpyoBx54QJ988klVxgMAAGqgSicMhlGeWnXu3LnKggEAoKowcZM5br1WebZVKgEAqNHokjDFrYThsssuc5k0HD161FRAAACg5nErYZg4ceJpMz0CAHAhoEvCHLcShr59+yosLKyqYgEAoOrQJWFKpedhYPwCAADWVemEoeItCQAALkhmJm06h+rE+vXrdcsttygyMlI2m03Lly93DscwNG7cODVp0kT+/v5KSEjQjz/+6NTm6NGj6t+/v4KDg1W/fn0NGjRI+fn5Tm2+/fZb3XDDDfLz81NUVJSmTp16WixvvvmmWrduLT8/P8XGxur9999372HkRsJgt9vpjgAAXLDO91oSBQUFateunebOnXvG41OnTtXs2bOVmpqqTZs2KTAwUImJiSosLHS06d+/v7Zt26a0tDStWLFC69ev1/333+84npeXp65du6p58+basmWLpk2bpgkTJuill15ytNm4caP69eunQYMG6euvv1avXr3Uq1cvbd261c2/vwu4dJCXl6eQkBAlRP5Tdbx8qzscoEqU/rK/ukMAqkypUaK1eke5ubkKDg6ukntUfFe0GvqsvH39zvk6ZUWFypr5uPbu3esUq6+vr3x9z/4dZLPZtGzZMvXq1UtSeXUhMjJSjz32mEaMGCFJys3NVXh4uBYuXKi+fftq+/btiomJ0ZdffqmOHTtKklatWqUePXpo3759ioyM1Lx58/TEE08oOztbPj4+kqQxY8Zo+fLlyszMlCTdeeedKigo0IoVKxzxXHvttWrfvr1SU1Mr/fxuryUBAICVRUVFKSQkxLFNmTLF7Wvs2rVL2dnZSkhIcOwLCQlRXFyc0tPTJUnp6emqX7++I1mQpISEBHl5eWnTpk2ONp06dXIkC5KUmJiorKwsHTt2zNHm1PtUtKm4T2W59ZYEAAAXLA+9JXGmCoO7srOz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cyhcfPHFSkpK0n333afly5c7rrl06VJJUvPmzWWz2bRixQodPnxY+fn5CgoK0ogRIzRs2DC99tpr2rlzp7766is9//zzjoGEDzzwgH788UeNHDlSWVlZWrx4sRYuXOjW81566aXas2eP3njjDe3cuVOzZ88+4wBOPz8/JSUl6ZtvvtGnn36qRx55RHfccYciIiIkSRMnTtSUKVM0e/Zs/fDDD/ruu++0YMECPffcc27FA6BmI2EAfhMQEKD169erWbNm6t27t9q0aaNBgwapsLDQUXF47LHHdM899ygpKUnx8fEKCgrS7bffftbrzps3T3//+9/10EMPqXXr1hoyZIgKCgokSRdddJEmTpyoMWPGKDw8XCkpKZKkyZMn66mnntKUKVPUpk0bdevWTStXrlSLFi0klY8reOutt7R8+XK1a9dOqampevbZZ9163ltvvVXDhg1TSkqK2rdvr40bN+qpp546rV10dLR69+6tHj16qGvXrrriiiucXpscPHiw5s+frwULFig2NladO3fWwoULHbECqB1sxp+N1gIAAPgNFQYAAOASCQMAAHCJhAEAALhEwgAAAFwiYQAAAC6RMAAAAJdIGAAAgEskDAAAwCUSBgAA4BIJAwAAcImEAQAAuPT/AZvvY1xVERIYAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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Hx8fxcTEeDIWAABQRbmdMHTu3Fk22x+PFF29erWpgAAAqBBmX42kwuCedu3aOX0uKirS1q1btX37diUmJnoqLgAAPIsuCVPcThimTZt2wf0TJkxQbm6u6YAAAEDV47HVKh944AG9/fbbnrocAACexTwMpnhstcq0tDT5+fl56nIAAHgUr1Wa43bC0KtXL6fPhmHo8OHD2rRpk5577jmPBQYAAKoOtxOG4OBgp89eXl5q3ry5Jk2apC5dungsMAAAUHW4lTCUlJRowIABat26terUqVNRMQEA4Hm8JWGKW4Mevb291aVLF1alBABccVje2hy335Jo1aqV9uzZUxGxAACAKsrthOH555/XiBEjtHz5ch0+fFg5OTlOGwAAVRavVF6yco9hmDRpkp566il1795dknTXXXc5TRFtGIZsNptKSko8HyUAAGYxhsGUcicMEydO1KOPPqovv/yyIuMBAABVULkTBsMoTa06depUYcEAAFBRmLjJHLdeq7zYKpUAAFRpdEmY4lbCcO2117pMGk6ePGkqIAAAUPW4lTBMnDjxvJkeAQC4EtAlYY5bCUOfPn0UFhZWUbEAAFBx6JIwpdzzMDB+AQAA6yp3wlD2lgQAAFckM5M2XUJ1Yu3atbrzzjsVGRkpm82mZcuWOYdjGBo3bpwaNGggf39/xcfH6+eff3Zqc/LkSfXr109BQUEKCQnRwIEDlZub69Rm27Ztuu222+Tn56eoqChNnTr1vFjee+89tWjRQn5+fmrdurU++eQT9x5GbiQMdrud7ggAwBXrcq8lkZeXp7Zt22r27NkXPD516lTNnDlTycnJ2rhxo2rVqqWEhATl5+c72vTr1087duxQSkqKli9frrVr1+qRRx5xHM/JyVGXLl3UuHFjbd68WS+99JImTJigN954w9Fmw4YN6tu3rwYOHKgtW7aoZ8+e6tmzp7Zv3+7m398VXDrIyclRcHCw4iP/phpevpUdDlAhin89VNkhABWm2CjSGn2o7OxsBQUFVcg9yr4rmj/5orx9/S75OiUF+cqY/owOHDjgFKuvr698fS/+HWSz2bR06VL17NlTUml1ITIyUk899ZRGjBghScrOzlZ4eLjmz5+vPn36aOfOnYqJidG3336rDh06SJJWrlyp7t276+DBg4qMjNScOXP07LPPKjMzUz4+PpKkMWPGaNmyZUpPT5ck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EyNfX1/t37//DysTLVu2dAzgLPP111+7fshzbNiwQY0bN9azzz7r2PfLL7+c127//v06dOiQIiMjHffx8vJS8+bNFR4ersjISO3Zs0f9+vVz6/4AriwMegT+q1+/fqpXr57uvvturVu3Tnv37tWaNWv0+OOP6+DBg5KkJ554Qv/4xz+0bNkypaen6+9///tF51C4+uqrlZiYqIcffljLli1zXHPJkiWSpMaNG8tms2n58uU6duyYcnNzFRgYqBEjRmjYsGF65513tHv3bn333Xd69dVXHQMJH330Uf38888aOXKkMjIytGjRIs2fP9+t573mmmu0f/9+vfvuu9q9e7dmzpx5wQGcfn5+SkxM1Pfff69169bp8ccf17333quIiAhJ0sSJEzVlyhTNnDlTP/30k3744QfNmzdPr7zyilvxAKjaSBiA/woICNDatWvVqFEj9erVSy1bttTAgQOVn5/vqDg89dRTevDBB5WYmKi4uDgFBgbqnnvuueh158yZo7/+9a/6+9//rhYtWmjw4MHKy8uTJF111VWaOHGixowZo/DwcA0dOlSSNHnyZD333HOaMmWKWrZsqa5du2rFihVq0qSJpNJxBe+//76WLVumtm3bKjk5WS+++KJbz3vXXXdp2LBhGjp0qNq1a6cNGzboueeeO69ddHS0evXqpe7du6tLly5q06aN02uTgwYN0ty5czVv3jy1bt1anTp10vz58x2xAqgebMYfjdYCAAD4LyoMAADAJRIGAADgEgkDAABwiYQBAAC4RMIAAABcImEAAAAukTAAAACXSBgAAIBLJAwAAMAlEgYAAOASCQMAAHDp/wN8LayKkNUNqAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "import matplotlib as plt\n",
+ "#导入混淆矩阵包\n",
+ "from sklearn.metrics import confusion_matrix,ConfusionMatrixDisplay,recall_score,precision_score\n",
+ "#计算Logistic regression混淆矩阵\n",
+ "cm = confusion_matrix(y_test, y_LG_pred , labels=LG.classes_)\n",
+ "print(f'confusion_matrix: {cm}')\n",
+ "#画出混淆矩阵\n",
+ "dis_LG = ConfusionMatrixDisplay(confusion_matrix=cm,\n",
+ " display_labels=LG.classes_)\n",
+ "dis_LG.plot()\n",
+ "\n",
+ "#计算SVM混淆矩阵\n",
+ "cm2 = confusion_matrix(y_test, y_svm_pred, labels=svm.classes_)\n",
+ "print(f'confusion_matrix: {cm2}')\n",
+ "dis_SVM = ConfusionMatrixDisplay(confusion_matrix=cm2,\n",
+ " display_labels=svm.classes_)\n",
+ "dis_SVM.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "答:两个模型都是倾向输出0,0判为1是几乎没有的,同时1判断为1的几率也比较小,模型可能存在过拟合;准确率高的可能与测试集里的0与1的数量有关。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "test_Accuracy: 0.93\n",
+ "precision_score: 0.42\n",
+ "recall_score: 0.03\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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u1q3bq1XXnlF+/fvd72/oEGDBrLZbLr//vsllb4NdNasWWrZsqWCgoLUuXNn/ec//3G7z5o1a3T11VcrKChIPXv2dIuzvCZOnKirr75aderUUatWrTRlyhQVFxef0+4f//iHoqOjVadOHd15553KyclxO75kyRK1a9dOgYGBatu2rV588UWvYwFQtZEwwDKCgoJUVFTk+rxu3TplZmYqNTVVKSkpKi4uVnx8vIKDg/XJJ5/o008/Vb169dSnTx/XeXPmzFFycrJeffVVbd68WdnZ2Vq5cuVF73vffffp3//+t+bPn69du3bpH//4h+rVq6fo6Gi9/fbbkqTMzEwdOXJE8+bNkyTNmjVLr7/+uhYvXqydO3dqzJgxuueee7Rx40ZJpYnNgAEDdNtttykjI0PDhw/XpEmTvP47CQ4OVnJysr755hvNmzdPL7/8subOnevWZs+ePVqxYoXef/99rV27Vl999ZUefvhh1/Fly5Zp6tSpevrpp7Vr1y4988wzmjJlil577TWv4wFQhRlADZSQkGDccccdhmEYhtPpNFJTUw273W6MGzfOdTwiIsIoLCx0nfPPf/7TaNOmjeF0Ol37CgsLjaCgIOODDz4wDMMwmjRpYsyePdt1vLi42GjWrJnrXoZhGD169DBGjRplGIZhZGZmGpKM1NTU88b58ccfG5KMU6dOufYVFBQYderUMbZs2eLWdtiwYcbgwYMNwzCMxx57zGjfvr3b8YkTJ55zrd+SZKxcufKCx5999lmja9eurs9PPvmk4e/vbxw6dMi177///a/h5+dnHDlyxDAMw7jyyiuN5cuXu11n5syZRmxsrGEYhrFv3z5DkvHVV19d8L4Aqj7GMKDGSklJUb169VRcXCyn06m7775b06ZNcx3v2LGj27iFr7/+Wnv27FFwcLDbdQoKCrR3717l5OToyJEjbq/0rlWrlrp163ZOt0SZjIwM+fv7q0ePHuWOe8+ePfrpp5/0xz/+0W1/UVGRrr32WknSrl27znm1eGxsbLnvUebNN9/U/PnztXfvXuXl5amkpEQhISFubZo3b66mTZu63cfpdCozM1PBwcHau3evhg0bphEjRrjalJSUKDQ01Ot4AFRdJAyosXr27KlFixYpICBAUVFRqlXL/ce9bt26bp/z8vLUtWtXLVu27JxrNW7c+JJiCAoK8vqcvLw8SdLq1avdvqil0nEZvpKWlqYhQ4Zo+vTpio+PV2hoqN544w3NmTPH61hffvnlcxIYf39/n8UKoPKRMKDGqlu3rlq3bl3u9tddd53efPNNhYeHn/NbdpkmTZro888/V/fu3SWV/iadnp6u66677rztO3bsKKfTqY0bNyouLu6c42UVDofD4drXvn172e12HThw4IKViXbt2rkGcJb57LPPPD/kr2zZskUtWrTQE0884dr3ww8/nNPuwIEDOnz4sKKiolz38fPzU5s2bRQREaGoqCh9//33GjJkiFf3B1C9MOgR+NmQIUPUqFEj3XHHHfrkk0+0b98+bdiwQX/961916NAhSdKoUaP0t7/9TatWrdLu3bv18MMPX3QNhSuuuEIJCQl64IEHtGrVKtc1V6xYIUlq0aKFbDabUlJSdPz4ceXl5Sk4OFjjxo3TmDFj9Nprr2nv3r368ssv9cILL7gGEj700EP67rvvNH78eGVmZmr58uVKTk726nmvuuoqHThwQG+88Yb27t2r+fPnn3cAZ2BgoBISEvT111/rk08+0V//+lfdeeedioyMlCRNnz5ds2bN0vz58/Xtt99q+/btWrp0qZ577jmv4gFQtZEwAD+rU6eONm3apObNm2vAgAFq166dhg0bpoKCAlfF4dFHH9W9996rhIQExcbGKjg4WH/+858vet1FixbpL3/5ix5++GG1bdtWI0aMUH5+viSpadOmmj59uiZNmqSIiAglJSVJkmbOnKkpU6Zo1qxZateunfr06aPVq1erZcuWkkrHFbz99ttatWqVOnfurMWLF+uZZ57x6nlvv/12jRkzRklJSerSpYu2bNmiKVOmnNOudevWGjBggG699Vb17t1bnTp1cps2OXz4cC1ZskRLly5Vx44d1aNHDyUnJ7tiBVAz2IwLjdYCAAD4GRUGAADgEQkDAADwiIQBAAB4RMIAAAA8ImEAAAAekTAAAACPSBgAAIBHJAwAAMAjEgYAAOARCQMAAPCIhAEAAHhEwgAAADz6/z0/ONOTWsIzAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "LG2=sklearn.linear_model.LogisticRegression(C=10.0, \n",
+ " max_iter=10,\n",
+ " random_state=np.random.seed(0))\n",
+ "LG2.fit(X_train_std,y_train)\n",
+ "#输出预测结果\n",
+ "y_LG_pred3=1/(1+np.exp(-X_test_std @ LG2.coef_.T-LG2.intercept_))\n",
+ "#转化为DataFrame便于数据操作\n",
+ "df=pd.DataFrame(y_LG_pred3)\n",
+ "#设置概率判定边界\n",
+ "y_LG_pred3=df>=.3\n",
+ "#输出结果\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_LG_pred3):.2f}')\n",
+ "print(f'precision_score: {precision_score(y_test,y_LG_pred3 ):.2f}')\n",
+ "print(f'recall_score: {recall_score(y_test, y_LG_pred3):.2f}')\n",
+ "#画出混淆矩阵\n",
+ "cm3 = confusion_matrix(y_test, y_LG_pred3, labels=LG.classes_)\n",
+ "dis_SVM = ConfusionMatrixDisplay(confusion_matrix=cm3,\n",
+ " display_labels=LG.classes_)\n",
+ "dis_SVM.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "python3.7(base)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/Jun_Fan/homework_credit_scoring_finetune_ensemble.ipynb b/2023/homework/Jun_Fan/homework_credit_scoring_finetune_ensemble.ipynb
new file mode 100644
index 00000000..627f1862
--- /dev/null
+++ b/2023/homework/Jun_Fan/homework_credit_scoring_finetune_ensemble.ipynb
@@ -0,0 +1,1135 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "jp-MarkdownHeadingCollapsed": true,
+ "tags": []
+ },
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 64,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import warnings\n",
+ "warnings.filterwarnings(\"ignore\")\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 66,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(81486, 10)"
+ ]
+ },
+ "execution_count": 69,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:查看train_test_split函数\n",
+ "import matplotlib as plt\n",
+ "import seaborn as sns\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "x_train,x_test,y_train,y_test=train_test_split(X, y, \n",
+ " test_size=.25, \n",
+ " shuffle=True, \n",
+ " random_state=np.random.seed(1234))\n",
+ "x_train.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 101322\n",
+ "1 7326\n",
+ "Name: SeriousDlqin2yrs, dtype: int64\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "# 提示:value_counts\n",
+ "print(data['SeriousDlqin2yrs'].value_counts())\n",
+ "\n",
+ "# 绘制两种类别的柱状图\n",
+ "# 提示:dataframe可以直接plot(kind='bar')\n",
+ "num_0,num_1=data['SeriousDlqin2yrs'].value_counts()\n",
+ "sns.barplot(data,y=[num_0,num_1],x=data['SeriousDlqin2yrs'].unique())\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "RevolvingUtilizationOfUnsecuredLines float64\n",
+ "age float64\n",
+ "NumberOfTime30-59DaysPastDueNotWorse float64\n",
+ "DebtRatio float64\n",
+ "MonthlyIncome float64\n",
+ "NumberOfOpenCreditLinesAndLoans float64\n",
+ "NumberOfTimes90DaysLate float64\n",
+ "NumberRealEstateLoansOrLines float64\n",
+ "NumberOfTime60-89DaysPastDueNotWorse float64\n",
+ "NumberOfDependents float64\n",
+ "age_label category\n",
+ "dtype: object"
+ ]
+ },
+ "execution_count": 71,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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vfc81iJau3athgwZovHjx+u6667TlVdeqWeffdZ9PioqSm+//bby8/M1ZswY/e53v9PixYuZcg8AANxMHVR99dVXt7oC7qZNm876HjExMe5FGM9k1KhReu+999pdHwAAsAa/GkMEAADgDT497R6Ad9XU1LjH8Eli3zIAlkUgAiys6d5l7FsGwKoIRIDFNd67zBf3Lctbs0iu4i9UGxSs/JxwSVK1s0TO0L5KGHGZydUB6C4IRAB8mq3yuLKmhiswyKaQXhGSpMqyWt22oeyMryFEAWgvAhGAbqcjIQqAtTHLDAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6BCAAAWB6zzAALYWVqAGgZgQiwEFamBoCWEYgAi/H1lakBwAyMIQIAAJZHIAIAAJZHIAIAAJZHIAIAAJbHoGrATzWdQi9JycnJstls5hQEAH6MQAT4qaZT6MsKD2pFupSSkmJyZQDgfwhEgB9rPIUeANBxjCECAACWRyACAACWRyACAACWxxgiAOjmXPV1cjgczY4zKxH4DoEIALq58uICLT9UpdgvXO5jzEoEPBGIgG6s6VpFDodDhmGYVxBMExE7sNUZiaxrBasjEAHdWNO1io7s3aHeF442uSr4Ita1gtURiIBurvFaRWWFB02uBr6Mda1gZR0KRElJSdq9e7f69Onjcby0tFSXXnqpDh7khy6A7uHEttWqy3lBklTtLFFtULDyc8JVE3aeghPHtfiavDWLZKs83q7XdLWmA625nQqr61Ag+te//qX6+vpmx6urq3XkyJFzLgoAfEVYXZlW/SJeklRZVqvAIJtCekVo9vrjOlN8sFUe16ppke16TVdrOtCa26mwunYFor///e/uP2/atElRUVHu5/X19crOztagQYM6rTgA3znbAOmWplb72m/9DVdOGl81kU5fRXGG9lXCiMtMrtBaGg+05nYqrK5dgWjq1KmSpICAAM2aNcvjXHBwsAYNGqTHH3+804oD8J2zDZBuaWq1r/3W33DlpPFVE+n0VZTbNpSZXB0AK2tXIHK5Tv+gTUxM1O7du9W3b1+vFAWgZWcbIN10ajW/9QNA23RoDFF+fn5n1wEAAGCaDk+7z87OVnZ2to4dO+a+ctRg1apV51wYAABAV+lQIHrggQf04IMPauzYserfv78CAgI6uy4AQCs6shwAgDPrUCBauXKlVq9erVtu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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)\n",
+ "#画出分布情况\n",
+ "sns.histplot(x_train['age'],bins='auto')\n",
+ "sns.histplot(x_test['age'],bins='auto')\n",
+ "#计算边界\n",
+ "low=data['age'].min()\n",
+ "upp=data['age'].max()\n",
+ "block=np.arange(low,upp,3,dtype=np.int8)\n",
+ "#进行分桶\n",
+ "x_train['age_label']=pd.cut(x_train['age'],bins=block)\n",
+ "x_test['age_label']=pd.cut(x_test['age'],bins=block)\n",
+ "x_test.dtypes"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(81486, 10)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n",
+ "#这里一开始把年龄段并入原始数据,由于年龄就是一个很好特征,第二遍跑就没把它扔进去,若想并入对应把下面注释去掉并把最后两行注释掉。\n",
+ "#对age_label列进行独热向量编码\n",
+ "age_label_vt=pd.get_dummies(x_train['age_label'], columns=x_train['age_label'].unique())\n",
+ "#合并到原来数据集中\n",
+ "#x_train=pd.concat([x_train,age_label_vt],axis=1)\n",
+ "#x_train=x_train.drop(['age_label','age'],axis=1)\n",
+ "print(x_train.shape)\n",
+ "#对测试集同样操作\n",
+ "age_label_vt=pd.get_dummies(x_test['age_label'], columns=x_test['age_label'].unique())\n",
+ "age_label_vt.head()\n",
+ "#x_test=pd.concat([x_test,age_label_vt],axis=1)\n",
+ "#x_test=x_test.drop(['age_label','age'],axis=1)\n",
+ "x_train=x_train.drop(['age_label'],axis=1)\n",
+ "x_test=x_test.drop(['age_label'],axis=1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(81486, 9)"
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "sc=StandardScaler()\n",
+ "sc.fit(x_train)\n",
+ "x_train_std=sc.transform(x_train)\n",
+ "x_test_std=sc.transform(x_test)\n",
+ "x_train_std.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[-0.01389386 1.11481892 0.39271202 -0.18026142 -0.10258655 0.22288693\n",
+ " -0.39130612 -1.20356629 0.14438634]]\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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wBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEwRIwAAwBQxAgAATBEjAADAFDECAABMESMAAMAUMQIAAEx1KEaKiooUGxursLAwJScna/fu3Rd03Lp16xQUFKQpU6Z05LQAAKAHch0j69evl9frVUFBgfbt26e4uDilpaXpxIkT5z3u6NGjevjhh3XzzTd3eFgAANDzuI6RZcuWaebMmcrKytLo0aNVXFysvn37as2aNe0e09zcrGnTpmnBggW66qqrOjUwAADoWVzFSFNTkyoqKpSamvrNNwgOVmpqqsrLy9s97le/+pUiIiJ0//33X9B5GhsbVV9f32oDAAA9k6sYOXXqlJqbmxUZGdlqf2RkpGpqato8ZufOnXrhhRe0evXqCz5PYWGhwsPDW7aYmBg3YwIAgADSpe+mOX36tO677z6tXr1agwcPvuDj8vLyVFdX17JVV1d34ZQAAMBSLzeLBw8erJCQENXW1rbaX1tbq6ioqHPWf/DBBzp69KjS09Nb9vl8vq9O3KuXDh48qKuvvvqc4zwejzwej5vREEAmPj3RegTX/vf//q/1CADQY7mKkdDQUCUkJKi0tLTl7bk+n0+lpaXKyck5Z/3IkSP17rvvtto3d+5cnT59WitWrODlFwDoBu898VfrEVwZ9fj3rEdAN3MVI5Lk9XqVmZmpxMREJSUlafny5WpoaFBWVpYkafr06Ro6dKgKCwsVFhamsWPHtjp+wIABknTOfgAAcGlyHSMZGRk6efKk8vPzVVNTo/Hjx2vr1q0tD7VWVVUpOJhf7AoAAC6M6xiRpJycnDZflpGksrKy8x67du3ajpwSAAD0UNzCAAAApogRAABgihgBAACmiBEAAGCKGAEAAKaIEQAAYIoYAQAApogRAABgihgBAACmiBEAAGCKGAEAAKaIEQAAYIoYAQAApogRAABgihgBAACmiBEAAGCKGAEAAKaIEQAAYIoYAQAA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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "#logistic regression建模\n",
+ "LG=LogisticRegression(C=10.0, \n",
+ " max_iter=10,\n",
+ " random_state=np.random.seed())\n",
+ "LG.fit(x_train_std,y_train)\n",
+ "#输出预测结果\n",
+ "y_LG_pred=LG.predict(x_test)\n",
+ "\n",
+ "print(LG.coef_)\n",
+ "sns.barplot(x=np.arange(len(LG.coef_[0])),y=np.abs(LG.coef_[0]))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "#准备网格字典\n",
+ "param_grid = {'C':[1,10,100,500],\n",
+ " 'penalty':['l1','l2']}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "best cross-validation accuracy: 0.9343445506974841\n",
+ "test set score: 0.9305279434504087\n",
+ "best parameters: {'C': 10, 'penalty': 'l2'}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 输出最好的超参数\n",
+ "# 输出最好的模型\n",
+ "\n",
+ "#创建网格实例\n",
+ "grid = GridSearchCV(LogisticRegression(), param_grid=param_grid, cv=5)\n",
+ "grid.fit(x_train_std,y_train)\n",
+ "print(\"best cross-validation accuracy:\", grid.best_score_)\n",
+ "print(\"test set score: \", grid.score(x_test_std, y_test))\n",
+ "print(\"best parameters: \", grid.best_params_)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "test_Accuracy: 0.93\n",
+ "precision_score: 0.00\n",
+ "recall_score: 0.00\n",
+ "f1_value_score: 0.00\n",
+ "roc_auc_score: 0.50\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 82,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgwAAAGyCAYAAACIrpyXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9KUlEQVR4nO3de1xVVf7/8fcB5SqgqIAkmkapJGlpEVNpTiRepjKdKc0KTW0qqNS8dvFaOV8d85ImlaU1P520Ka20LNLUTLK0qDShNE1N8ZICgnI9+/cHcfKkeTjugyD79Xw89iPP3mvv/dnGw/Phs9Zey2YYhiEAAICz8KruAAAAQM1HwgAAAFwiYQAAAC6RMAAAAJdIGAAAgEskDAAAwCUSBgAA4BIJAwAAcImEAQAAuFSnugMww263a//+/QoKCpLNZqvucAAAbjIMQ8ePH1dkZKS8vKrud9jCwkIVFxebvo6Pj4/8/Pw8ENEFyLiA7d2715DExsbGxnaBb3v37q2y74qTJ08aEWHeHokzIiLCOHnyZKXu++yzzxodO3Y06tWrZzRu3Ni47bbbjMzMTKc2nTt3Pu0e//znP53a/Pzzz0aPHj0Mf39/o3HjxsaIESOMkpISpzaffPKJceWVVxo+Pj7GJZdcYixYsOC0eObMmWM0b97c8PX1Na655hpj06ZNbv09XtAVhqCgIEnSz19drOB69K6gdrr9stjqDgGoMqUq0Qa97/j3vCoUFxcr+1CZft5ysYKDzv27Iu+4Xc077FZxcXGlqgzr1q1TcnKyrr76apWWlurxxx9X165d9f333yswMNDRbsiQIZo0aZLjc0BAgOPPZWVl6tmzpyIiIrRx40YdOHBA9957r+rWratnn31WkrRr1y717NlTDzzwgBYtWqTVq1dr8ODBatKkiRITEyVJS5Ys0fDhw5Wamqq4uDjNnDlTiYmJysrKUlhYWKWe32YYF+7iU3l5eQoJCdGxH1qa+iEAarLEyPbVHQJQZUqNEq3VO8rNzVVwcHCV3KPiu+LXH1qYThgaXrbrnGM9fPiwwsLCtG7dOnXq1EmSdOONN6p9+/aaOXPmGc/54IMP9Le//U379+9XeHi4JCk1NVWjR4/W4cOH5ePjo9GjR2vlypXaunWr47y+ffsqJydHq1atkiTFxcXp6quv1pw5cySVd+lHRUXp4Ycf1pgxYyoVP9+yAABLKDPspjepPAE5dSsqKqrU/XNzcyVJoaGhTvsXLVqkRo0aqW3btho7dqxOnDjhOJaenq7Y2FhHsiBJiYmJysvL07Zt2xxtEhISnK6ZmJio9PR0SeUVli1btji18fLyUkJCgqNNZVzQXRIAAFSWXYbsOveiesW5UVFRTvvHjx+vCRMmnP1cu11Dhw7Vddddp7Zt2zr233XXXWrevLkiIyP17bffavTo0crKytLbb78tScrOznZKFiQ5PmdnZ5+1TV5enk6ePKljx46prKzsjG0yMzMr+fQkDAAAuGXv3r1OXRK+vr4uz0lOTtbWrVu1YcMGp/3333+/48+xsbFq0qSJbrrpJu3cuVOXXHKJ54L2ABIGAIAl2GWX3eT5khQcHOzWGIaUlBStWLFC69evV9OmTc/aNi4uTpK0Y8cOXXLJJYqIiNAXX3zh1ObgwYOSpIiICMd/K/ad2iY4OFj+/v7y9vaWt7f3GdtUXKMyGMMAALCEMsMwvbnDMAylpKRo2bJlWrNmjVq0aOHynIyMDElSkyZNJEnx8fH67rvvdOjQIUebtLQ0BQcHKyYmxtFm9erVTtdJS0tTfHy8pPK5Izp06ODUxm63a/Xq1Y42lUGFAQCAKpCcnKzFixfrnXfeUVBQkGPMQUhIiPz9/bVz504tXrxYPXr0UMOGDfXtt99q2LBh6tSpk6644gpJUteuXRUTE6N77rlHU6dOVXZ2tp588kklJyc7ukIeeOABzZkzR6NGjdJ9992nNWvWaOnSpVq5cqUjluHDhyspKUkdO3bUNddco5kzZ6qgoEADBw6s9POQMAAALMFTgx4ra968eZLKX5081YIFCzRgwAD5+Pjo448/dnx5R0VFqU+fPnryyScdbb29vbVixQo9+OCDio+PV2BgoJKSkpzmbWjRooVWrlypYcOGadasWWratKnmz5/vmINBku68804dPnxY48aNU3Z2ttq3b69Vq1adNhDybJiHAajhmIcBtdn5nIdhV2YTBZn4rjh+3K4WrQ9Uaaw1Gd+yAADAJbokAACWcL67JGobEgYAgCWcy5sOfzzfyuiSAAAALlFhAABYgv23zcz5VkbCAACwhDIZKjMxDsHMubUBCQMAwBLKjPLNzPlWxhgGAADgEhUGAIAlMIbBHBIGAIAl2GVTmWymzrcyuiQAAIBLVBgAAJZgN8o3M+dbGQkDAMASykx2SZg5tzagSwIAALhEhQEAYAlUGMwhYQAAWILdsMlumHhLwsS5tQFdEgAAwCUqDAAAS6BLwhwSBgCAJZTJS2UmCutlHozlQkTCAACwBMPkGAaDMQwAAABnR4UBAGAJjGEwh4QBAGAJZYaXygwTYxgsPjU0XRIAAMAlKgwAAEuwyya7id+T7bJ2iYGEAQBgCYxhMIcuCQAA4BIVBgCAJZgf9EiXBAAAtV75GAYTi0/RJQEAAHB2VBgAAJZgN7mWBG9JAABgAYxhMIeEAQBgCXZ5MQ+DCYxhAAAALlFhAABYQplhU5mJJarNnFsbkDAAACyhzOSgxzK6JAAAAM6OCgMAwBLshpfsJt6SsPOWBAAAtR9dEubQJQEAAFyiwgAAsAS7zL3pYPdcKBckEgYAgCWYn7jJ2kV5az89AACoFCoMAABLML+WhLV/xyZhAABYgl022WVmDAMzPQIAUOtRYTDH2k8PAAAqhQoDAMASzE/cZO3fsUkYAACWYDdsspuZh8Hiq1VaO10CAACVQoUBAGAJdpNdElafuImEAQBgCeZXq7R2wmDtpwcAAJVChQEAYAllsqnMxORLZs6tDUgYAACWQJeEOdZ+egAAUClUGAAAllAmc90KZZ4L5YJEwgAAsAS6JMwhYQAAWAKLT5lj7acHAACVQoUBAGAJhmyymxjDYPBaJQAAtR9dEuZY++kBAKgiU6ZM0dVXX62goCCFhYWpV69eysrKcmpTWFio5ORkNWzYUPXq1VOfPn108OBBpzZ79uxRz549FRAQoLCwMI0cOVKlpaVObdauXaurrrpKvr6+io6O1sKFC0+LZ+7cubr44ovl5+enuLg4ffHFF249DwkDAMASKpa3NrO5Y926dUpOTtbnn3+utLQ0lZSUqGvXriooKHC0GTZsmN577z29+eabWrdunfbv36/evXs7jpeVlalnz54qLi7Wxo0b9dprr2nhwoUaN26co82uXbvUs2dPdenSRRkZGRo6dKgGDx6sDz/80NFmyZIlGj58uMaPH6+vvvpK7dq1U2Jiog4dOlTp57EZhmG49TdQg+Tl5SkkJETHfmip4CByH9ROiZHtqzsEoMqUGiVaq3eUm5ur4ODgKrlHxXfF0M9ulW+9uud8naL8Es287t1zjvXw4cMKCwvTunXr1KlTJ+Xm5qpx48ZavHix/v73v0uSMjMz1aZNG6Wnp+vaa6/VBx98oL/97W/av3+/wsPDJUmpqakaPXq0Dh8+LB8fH40ePVorV67U1q1bHffq27evcnJytGrVKklSXFycrr76as2ZM0eSZLfbFRUVpYcfflhjxoypVPx8ywIA4Ia8vDynraioqFLn5ebmSpJCQ0MlSVu2bFFJSYkSEhIcbVq3bq1mzZopPT1dkpSenq7Y2FhHsiBJiYmJysvL07Zt2xxtTr1GRZuKaxQXF2vLli1Obby8vJSQkOBoUxkkDAAAS/BUl0RUVJRCQkIc25QpU1zf227X0KFDdd1116lt27aSpOzsbPn4+Kh+/fpObcPDw5Wdne1oc2qyUHG84tjZ2uTl5enkyZM6cuSIysrKztim4hqVwVsSAABLsMtLdhO/J1ecu3fvXqcuCV9fX5fnJicna+vWrdqwYcM537+6kTAAAOCG4OBgt8YwpKSkaMWKFVq/fr2aNm3q2B8REaHi4mLl5OQ4VRkOHjyoiIgIR5s/vs1Q8RbFqW3++GbFwYMHFRwcLH9/f3l7e8vb2/uMbSquURl0SQAALKHMsJne3GEYhlJSUrRs2TKtWbNGLVq0cDreoUMH1a1bV6tXr3bsy8rK0p49exQfHy9Jio+P13fffef0NkNaWpqCg4MVExPjaHPqNSraVFzDx8dHHTp0cGpjt9u1evVqR5vKoMIAALCEc3k18o/nuyM5OVmLFy/WO++8o6CgIMd4gZCQEPn7+yskJESDBg3S8OHDFRoaquDgYD388MOKj4/XtddeK0nq2rWrYmJidM8992jq1KnKzs7Wk08+qeTkZEdXyAMPPKA5c+Zo1KhRuu+++7RmzRotXbpUK1eudMQyfPhwJSUlqWPHjrrmmms0c+ZMFRQUaODAgZV+HhIGAIAlGCZXqzTcPHfevHmSpBtvvNFp/4IFCzRgwABJ0owZM+Tl5aU+ffqoqKhIiYmJeuGFFxxtvb29tWLFCj344IOKj49XYGCgkpKSNGnSJEebFi1aaOXKlRo2bJhmzZqlpk2bav78+UpMTHS0ufPOO3X48GGNGzdO2dnZat++vVatWnXaQMizYR4GoIZjHgbUZudzHob71/1DPibmYSjOL9FLnd+s0lhrMioMAABLKJNNZSYWkDJzbm1AwgAAsAS74f44hD+eb2XU8QEAgEtUGGq5N54P02fv19feHb7y8bMrpuMJDXpiv6Kif5/KdGSfaH2bXs/pvB73HNGj/7dPkrRzm5+WzgnX1i8ClXesjsKbFqvnvUd0++AjjvZbNwXqlWeaaO9OPxWd9FLYRcXqec+v6n3/YUebsjLp/02P0Oq3GujY4bpqGF6im+84qruGHpTN2pU+VLO2cfn6x0OHdWnsCTWMKNWE+y5W+qqQ6g4LHmY3OejRzLm1AQlDLfdtej3dMuCILmt/QmWl0sJ/NdHj/S7Ry+sy5Rdgd7Tr3v+I7h35+xShvv6/H9vxbYDqNyrV6Dk/q3Fkib7fHKhZI6Pk5SXddl950uAXYNetA4+oRUyh/ALs2vZFoGaNaiq/ALt63P2rJGnp3DCteK2RRszao+atCvXjN/6aPqyZAoPK1OuU5AM43/wC7Pppm58+/G+oxr+6u7rDQRWxyya7iXEIZs6tDWpEwjB37lxNmzZN2dnZateunZ5//nldc8011R1WrfDs4p+cPj82c4/ujI3Vj9/6K/ba35dY9fU3FBpW+sfTJUmJ/Y46fW7SvFjbNwfosw9CHAlDdOxJRceedLSJiCrWZ++HaOumQEfC8P3mQMUn5iouIc/R5pPlx5WVEWD+QQETNn8SrM2fWG/UO+COaq+veGKNblReQZ63JCmofpnT/k/ebqB/XN5W93dppVefbaLCE2fPpAuOe592jVPt+M5f328OVOy1+Y59MR0LlLEhSPt2lk82snObn7Z9Eair/3r8XB8HACrtfM/0WNtUe4Xhueee05AhQxyzTaWmpmrlypV69dVXK71GNyrHbpdSx1+ky6/O18WtCx37u9x+TGFNi9UwvES7tvvrlWeaaN9OX417ZfcZr7PtywCte7eBJr/+02nH+neIUe6vdVRWatPdj2Wre//fqxN3phzSiePeGtyptby8JXuZNGDMAf219zGPPysA/BFjGMyp1oShYo3usWPHOvadbY3uoqIip3XH8/LyzkuctcWcx5vq50x/TV/+o9P+ii4DSWrRplChYSUafUe09u/2UeTFxU5td2f6aeLAlrp7eLY63Hh6ZWD6sh06WeCl7V8F6NVnIxV5cZG63J4jSVr/bn2tebuBxsz9Wc1bFWrnNn+ljr/ot8GPJA0AUJNVa8JwtjW6MzMzT2s/ZcoUTZw48XyFV6vMefwibUoL1vRlO9Q4suSsbVtfdUKStH+3r1PC8PMPvhp9xyXqfvcR3TX04BnPjWhW3r5Fm0LlHK6r/zc9wpEwvDw5UnemHNKNvXIcbQ7t89Ebz4eTMACocnaZXEvC4oMeL6j6ytixY5Wbm+vY9u7dW90h1XiGUZ4sbFwVoqlv7nB8oZ/Nzq3+kqTQsN8Ti91Zfhr192jd/I+jGjgm+89OdWK3SyXFv/+IFRV6yeblPPOJl7ehC3dycgAXEuO3tyTOdTMsnjBUa4WhUaNGbq3R7evr61idC5Uz5/Gm+mRZA01Y8JP869l19FD5//LAoDL5+hvav9tHnyxroGtuylNQgzLt+t5PL064SLHX5qtlTPk4h92Zfhr1j0vU8cbj6v3Pw45reHkbqt+wfODjuwsaKeyiYkVFl5/z3ef19FZqmG4b9Ps8DNfenKc3Zocr7KKS8i6Jrf56+8Uwde37q4Dq5BdQpsgWvyfTEVHFann5SR3P8dbhX3yqMTJ40vlerbK2qdaE4dQ1unv16iXp9zW6U1JSqjO0WmPFa40kSSP7XOq0/7EZe9T1zqOqU9fQ158Gadn8xio84aXGkSW6vkeO+p3S5fDpivrK/bWuVr8VqtVvhTr2hzct1utffC9JMuzSq1OaKHuPj7zrSJHNi3TfE/vV857fk4GHnt6n16Y20ZyxTZXzax01DC9Rj3uOqP+wM3dvAOfLZe1OatpbOx2fH5i4X5L00ZIGmj6sWXWFBdQo1b5a5ZIlS5SUlKQXX3zRsUb30qVLlZmZ6XLZTVarhBWwWiVqs/O5WuXtaQNVN/DcK0YlBcVadvMCVqusLp5YoxsAAFfokjCn2hMGSUpJSaELAgCAGqxGJAwAAFQ11pIwh4QBAGAJdEmYw0hBAADgEhUGAIAlUGEwh4QBAGAJJAzm0CUBAABcosIAALAEKgzmkDAAACzBkLlXI62+Th4JAwDAEqgwmMMYBgAA4BIVBgCAJVBhMIeEAQBgCSQM5tAlAQAAXKLCAACwBCoM5pAwAAAswTBsMkx86Zs5tzagSwIAALhEhQEAYAl22UxN3GTm3NqAhAEAYAmMYTCHLgkAAOASFQYAgCUw6NEcEgYAgCXQJWEOCQMAwBKoMJjDGAYAAOASFQYAgCUYJrskrF5hIGEAAFiCIckwzJ1vZXRJAAAAl6gwAAAswS6bbMz0eM5IGAAAlsBbEubQJQEAAFyiwgAAsAS7YZONiZvOGQkDAMASDMPkWxIWf02CLgkAAOASFQYAgCUw6NEcEgYAgCWQMJhDwgAAsAQGPZrDGAYAAOASFQYAgCXwloQ5JAwAAEsoTxjMjGHwYDAXILokAACAS1QYAACWwFsS5pAwAAAswfhtM3O+ldElAQAAXKLCAACwBLokzCFhAABYA30SppAwAACswWSFQRavMDCGAQAAuETCAACwhIqZHs1s7li/fr1uueUWRUZGymazafny5U7HBwwYIJvN5rR169bNqc3Ro0fVv39/BQcHq379+ho0aJDy8/Od2nz77be64YYb5Ofnp6ioKE2dOvW0WN588021bt1afn5+io2N1fvvv+/ew4iEAQBgERWDHs1s7igoKFC7du00d+7cP23TrVs3HThwwLH997//dTrev39/bdu2TWlpaVqxYoXWr1+v+++/33E8Ly9PXbt2VfPmzbVlyxZNmzZNEyZM0EsvveRos3HjRvXr10+DBg3S119/rV69eqlXr17aunWrW8/DGAYAAKpA9+7d1b1797O28fX1VURExBmPbd++XatWrdKXX36pjh07SpKef/559ejRQ//+978VGRmpRYsWqbi4WK+++qp8fHx0+eWXKyMjQ88995wjsZg1a5a6deumkSNHSpImT56stLQ0zZkzR6mpqZV+HioMAABrMGzmN5X/Vn/qVlRUdM4hrV27VmFhYWrVqpUefPBB/frrr45j6enpql+/viNZkKSEhAR5eXlp06ZNjjadOnWSj4+Po01iYqKysrJ07NgxR5uEhASn+yYmJio9Pd2tWEkYAACW4KkxDFFRUQoJCXFsU6ZMOad4unXrptdff12rV6/W//3f/2ndunXq3r27ysrKJEnZ2dkKCwtzOqdOnToKDQ1Vdna2o014eLhTm4rPrtpUHK8suiQAAHDD3r17FRwc7Pjs6+t7Ttfp27ev48+xsbG64oordMkll2jt2rW66aabTMfpaVQYAADWYHhgkxQcHOy0nWvC8EctW7ZUo0aNtGPHDklSRESEDh065NSmtLRUR48edYx7iIiI0MGDB53aVHx21ebPxk78GRIGAIAlnO+3JNy1b98+/frrr2rSpIkkKT4+Xjk5OdqyZYujzZo1a2S32xUXF+dos379epWUlDjapKWlqVWrVmrQoIGjzerVq53ulZaWpvj4eLfiq1SXxLvvvlvpC956661uBQAAQG2Un5/vqBZI0q5du5SRkaHQ0FCFhoZq4sSJ6tOnjyIiIrRz506NGjVK0dHRSkxMlCS1adNG3bp105AhQ5SamqqSkhKlpKSob9++ioyMlCTdddddmjhxogYNGqTRo0dr69atmjVrlmbMmOG476OPPqrOnTtr+vTp6tmzp9544w1t3rzZ6dXLyqhUwtCrV69KXcxmszkGawAAUOOcx/UgNm/erC5dujg+Dx8+XJKUlJSkefPm6dtvv9Vrr72mnJwcRUZGqmvXrpo8ebJTF8eiRYuUkpKim266SV5eXurTp49mz57tOB4SEqKPPvpIycnJ6tChgxo1aqRx48Y5zdXwl7/8RYsXL9aTTz6pxx9/XJdeeqmWL1+utm3buvU8NsNwd+6qmiMvL08hISE69kNLBQfRu4LaKTGyfXWHAFSZUqNEa/WOcnNznQYSelLFd0XUi+Pl5e93ztexnyzU3n9OrNJYazJT37KFhYWeigMAgKrloUGPVuV2wlBWVqbJkyfroosuUr169fTTTz9Jkp566im98sorHg8QAABUP7cThmeeeUYLFy7U1KlTnWaWatu2rebPn+/R4AAA8BybBzbrcjtheP311/XSSy+pf//+8vb2duxv166dMjMzPRocAAAeQ5eEKW4nDL/88ouio6NP22+3253eAwUAALWH2wlDTEyMPv3009P2/+9//9OVV17pkaAAAPA4KgymuL2WxLhx45SUlKRffvlFdrtdb7/9trKysvT6669rxYoVVREjAADmnbLi5Dmfb2FuVxhuu+02vffee/r4448VGBiocePGafv27Xrvvfd08803V0WMAACgmp3TapU33HCD0tLSPB0LAABV5tQlqs/1fCs75+WtN2/erO3bt0sqH9fQoUMHjwUFAIDHmR2HQMLgnn379qlfv3767LPPVL9+fUlSTk6O/vKXv+iNN95Q06ZNPR0jAACoZm6PYRg8eLBKSkq0fft2HT16VEePHtX27dtlt9s1ePDgqogRAADzKgY9mtkszO0Kw7p167Rx40a1atXKsa9Vq1Z6/vnndcMNN3g0OAAAPMVmlG9mzrcytxOGqKioM07QVFZW5lifGwCAGocxDKa43SUxbdo0Pfzww9q8ebNj3+bNm/Xoo4/q3//+t0eDAwAANUOlKgwNGjSQzfZ7301BQYHi4uJUp0756aWlpapTp47uu+8+9erVq0oCBQDAFCZuMqVSCcPMmTOrOAwAAKoYXRKmVCphSEpKquo4AABADXbOEzdJUmFhoYqLi532BQcHmwoIAIAqQYXBFLcHPRYUFCglJUVhYWEKDAxUgwYNnDYAAGokVqs0xe2EYdSoUVqzZo3mzZsnX19fzZ8/XxMnTlRkZKRef/31qogRAABUM7e7JN577z29/vrruvHGGzVw4EDdcMMNio6OVvPmzbVo0SL179+/KuIEAMAc3pIwxe0Kw9GjR9WyZUtJ5eMVjh49Kkm6/vrrtX79es9GBwCAh1TM9GhmszK3E4aWLVtq165dkqTWrVtr6dKlksorDxWLUQEAgNrF7YRh4MCB+uabbyRJY8aM0dy5c+Xn56dhw4Zp5MiRHg8QAACPYNCjKW6PYRg2bJjjzwkJCcrMzNSWLVsUHR2tK664wqPBAQCAmsHUPAyS1Lx5czVv3twTsQAAUGVsMrlapcciuTBVKmGYPXt2pS/4yCOPnHMwAACgZqpUwjBjxoxKXcxms1VLwvCPG29WHS/f835f4PzYX90BALUDr1WaUqmEoeKtCAAALlhMDW2K229JAAAA6zE96BEAgAsCFQZTSBgAAJZgdrZGZnoEAABwgQoDAMAa6JIw5ZwqDJ9++qnuvvtuxcfH65dffpEk/ec//9GGDRs8GhwAAB7D1NCmuJ0wvPXWW0pMTJS/v7++/vprFRUVSZJyc3P17LPPejxAAABQ/dxOGJ5++mmlpqbq5ZdfVt26dR37r7vuOn311VceDQ4AAE9heWtz3B7DkJWVpU6dOp22PyQkRDk5OZ6ICQAAz2OmR1PcrjBERERox44dp+3fsGGDWrZs6ZGgAADwOMYwmOJ2wjBkyBA9+uij2rRpk2w2m/bv369FixZpxIgRevDBB6siRgAAUM3c7pIYM2aM7Ha7brrpJp04cUKdOnWSr6+vRowYoYcffrgqYgQAwDQmbjLH7YTBZrPpiSee0MiRI7Vjxw7l5+crJiZG9erVq4r4AADwDOZhMOWcJ27y8fFRTEyMJ2MBAAA1lNsJQ5cuXWSz/flI0TVr1pgKCACAKmH21UgqDO5p37690+eSkhJlZGRo69atSkpK8lRcAAB4Fl0SpridMMyYMeOM+ydMmKD8/HzTAQEAgJrHY6tV3n333Xr11Vc9dTkAADyLeRhM8dhqlenp6fLz8/PU5QAA8CheqzTH7YShd+/eTp8Nw9CBAwe0efNmPfXUUx4LDAAA1BxuJwwhISFOn728vNSqVStNmjRJXbt29VhgAACg5nArYSgrK9PAgQMVGxurBg0aVFVMAAB4Hm9JmOLWoEdvb2917dqVVSkBABcclrc2x+23JNq2bauffvqpKmIBAAA1lNsJw9NPP60RI0ZoxYoVOnDggPLy8pw2AABqLF6pPGeVHsMwadIkPfbYY+rRo4ck6dZbb3WaItowDNlsNpWVlXk+SgAAzGIMgymVThgmTpyoBx54QJ988klVxgMAAGqgSicMhlGeWnXu3LnKggEAoKowcZM5br1WebZVKgEAqNHokjDFrYThsssuc5k0HD161FRAAACg5nErYZg4ceJpMz0CAHAhoEvCHLcShr59+yosLKyqYgEAoOrQJWFKpedhYPwCAADWVemEoeItCQAALkhmJm06h+rE+vXrdcsttygyMlI2m03Lly93DscwNG7cODVp0kT+/v5KSEjQjz/+6NTm6NGj6t+/v4KDg1W/fn0NGjRI+fn5Tm2+/fZb3XDDDfLz81NUVJSmTp16WixvvvmmWrduLT8/P8XGxur9999372HkRsJgt9vpjgAAXLDO91oSBQUFateunebOnXvG41OnTtXs2bOVmpqqTZs2KTAwUImJiSosLHS06d+/v7Zt26a0tDStWLFC69ev1/333+84npeXp65du6p58+basmWLpk2bpgkTJuill15ytNm4caP69eunQYMG6euvv1avXr3Uq1cvbd261c2/vwu4dJCXl6eQkBAlRP5Tdbx8qzscoEqU/rK/ukMAqkypUaK1eke5ubkKDg6ukntUfFe0GvqsvH39zvk6ZUWFypr5uPbu3esUq6+vr3x9z/4dZLPZtGzZMvXq1UtSeXUhMjJSjz32mEaMGCFJys3NVXh4uBYuXKi+fftq+/btiomJ0ZdffqmOHTtKklatWqUePXpo3759ioyM1Lx58/TEE08oOztbPj4+kqQxY8Zo+fLlyszMlCTdeeedKigo0IoVKxzxXHvttWrfvr1SU1Mr/fxuryUBAICVRUVFKSQkxLFNmTLF7Wvs2rVL2dnZSkhIcOwLCQlRXFyc0tPTJUnp6emqX7++I1mQpISEBHl5eWnTpk2ONp06dXIkC5KUmJiorKwsHTt2zNHm1PtUtKm4T2W59ZYEAAAXLA+9JXGmCoO7srOz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cyhcfPHFSkpK0n333afly5c7rrl06VJJUvPmzWWz2bRixQodPnxY+fn5CgoK0ogRIzRs2DC99tpr2rlzp7766is9//zzjoGEDzzwgH788UeNHDlSWVlZWrx4sRYuXOjW81566aXas2eP3njjDe3cuVOzZ88+4wBOPz8/JSUl6ZtvvtGnn36qRx55RHfccYciIiIkSRMnTtSUKVM0e/Zs/fDDD/ruu++0YMECPffcc27FA6BmI2EAfhMQEKD169erWbNm6t27t9q0aaNBgwapsLDQUXF47LHHdM899ygpKUnx8fEKCgrS7bffftbrzps3T3//+9/10EMPqXXr1hoyZIgKCgokSRdddJEmTpyoMWPGKDw8XCkpKZKkyZMn66mnntKUKVPUpk0bdevWTStXrlSLFi0klY8reOutt7R8+XK1a9dOqampevbZZ9163ltvvVXDhg1TSkqK2rdvr40bN+qpp546rV10dLR69+6tHj16qGvXrrriiiucXpscPHiw5s+frwULFig2NladO3fWwoULHbECqB1sxp+N1gIAAPgNFQYAAOASCQMAAHCJhAEAALhEwgAAAFwiYQAAAC6RMAAAAJdIGAAAgEskDAAAwCUSBgAA4BIJAwAAcImEAQAAuPT/AZvvY1xVERIYAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "\n",
+ "from sklearn.metrics import confusion_matrix,ConfusionMatrixDisplay,recall_score,precision_score,accuracy_score,f1_score,roc_auc_score\n",
+ "#将上面得到的超参数代入重新训练模型\n",
+ "LG2=LogisticRegression(penalty='l2',\n",
+ " C=10.0, \n",
+ " max_iter=10,\n",
+ " random_state=np.random.seed())\n",
+ "LG2.fit(x_train_std,y_train)\n",
+ "#输出预测结果\n",
+ "y_LG_pred=LG2.predict(x_test)\n",
+ "#计算混淆矩阵\n",
+ "cm = confusion_matrix(y_test, y_LG_pred , labels=LG.classes_)\n",
+ "#显示各种评估指标值\n",
+ "print(f'confusion_matrix: {cm}')\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_LG_pred):.2f}')\n",
+ "print(f'precision_score: {precision_score(y_test,y_LG_pred):.2f}')\n",
+ "print(f'recall_score: {recall_score(y_test, y_LG_pred):.2f}')\n",
+ "print(f'f1_value_score: {f1_score(y_test, y_LG_pred):.2f}')\n",
+ "print(f'roc_auc_score: {roc_auc_score(y_test, y_LG_pred):.2f}')\n",
+ "#可视化混淆矩阵\n",
+ "dis_LG = ConfusionMatrixDisplay(confusion_matrix=cm,\n",
+ " display_labels=LG.classes_)\n",
+ "dis_LG.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "threshold=0.1_test_Accuracy: 0.93\n",
+ "threshold=0.1_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.2_test_Accuracy: 0.93\n",
+ "threshold=0.2_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.3_test_Accuracy: 0.93\n",
+ "threshold=0.3_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.4_test_Accuracy: 0.93\n",
+ "threshold=0.4_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.5_test_Accuracy: 0.93\n",
+ "threshold=0.5_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.6_test_Accuracy: 0.93\n",
+ "threshold=0.6_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.7_test_Accuracy: 0.93\n",
+ "threshold=0.7_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.8_test_Accuracy: 0.93\n",
+ "threshold=0.8_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n",
+ "threshold=0.9_test_Accuracy: 0.93\n",
+ "threshold=0.9_confusion_matrix: [[25238 1]\n",
+ " [ 1923 0]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "# 根据predict_proba的结果和threshold的比较确定结果,再评估各种结果指标\n",
+ "\n",
+ "thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "for th in thresholds:\n",
+ " y_LG_pred=LG2.predict_proba(x_test)\n",
+ " y_LG_pred=y_LG_pred>=th\n",
+ " cm = confusion_matrix(y_test, y_LG_pred.argmax(axis=1), labels=LG.classes_)\n",
+ " print(f'threshold={th}_test_Accuracy: {accuracy_score(y_test, y_LG_pred.argmax(axis=1)):.2f}')\n",
+ " print(f'threshold={th}_confusion_matrix: {cm}')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "from sklearn.feature_selection import SelectFromModel\n",
+ "forest = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10,\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest.fit(x_train, y_train)\n",
+ "importances = forest.feature_importances_\n",
+ "indices = np.argsort(importances)[::-1]\n",
+ "x_label=[]\n",
+ "for i in range(len(indices)):\n",
+ " x_label.append(str(indices[i]))\n",
+ "\n",
+ "sns.barplot(x=x_label,y=np.sort(importances)[::-1])\n",
+ "selector = SelectFromModel(estimator=forest,prefit=True)\n",
+ "#print(selector.get_support())\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "confusion_matrix: [[24989 250]\n",
+ " [ 1810 113]]\n",
+ "test_Accuracy: 0.92\n",
+ "precision_score: 0.31\n",
+ "recall_score: 0.06\n",
+ "f1_value_score: 0.10\n",
+ "roc_auc_score: 0.52\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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57i4OKWnpys1NVXR0dHq0qWLV4MDAADVg6l1GCQpKipKUVFR3ogFAIBKY5PJp1V6LZKaqUIJw4IFCyp8wYceeuiCgwEAANVThRKGefPmVehiNputShKGP/W8UX4+/hf9fYGLwsiq6giAymNcxIkB3FZpSoUShvK7IgAAqLFYGtoUj++SAAAA1mN60iMAADUCFQZTSBgAAJZgdrVGVnoEAABwgwoDAMAaaEmYckEVhk8++UT33HOPYmNj9f3330uS/v73v+vTTz/1anAAAHgNS0Ob4nHC8M477yg+Pl5BQUH64osvVFRUJEnKzc3VM8884/UAAQBA1fM4YXjqqae0ZMkSvfrqq6pTp45z/7XXXqudO3d6NTgAALyFx1ub4/EchoyMDPXq1eus/aGhocrJyfFGTAAAeB8rPZricYUhPDxce/fuPWv/p59+qrZt23olKAAAvI45DKZ4nDCMGDFCY8aM0bZt22Sz2XT06FGtXLlS48eP18iRIysjRgAAUMU8bklMnjxZDodDN954o06fPq1evXopICBA48eP1+jRoysjRgAATGPhJnM8ThhsNpsef/xxTZgwQXv37lV+fr46duyo+vXrV0Z8AAB4B+swmHLBCzf5+/urY8eO3owFAABUUx4nDL1795bNdv6Zoh999JGpgAAAqBRmb42kwuCZbt26ubwuKSlRWlqavvnmGyUkJHgrLgAAvIuWhCkeJwzz5s075/7p06crPz/fdEAAAKD68drTKu+55x698cYb3rocAADexToMpnjtaZUpKSkKDAz01uUAAPAqbqs0x+OEYeDAgS6vDcPQsWPHtGPHDk2dOtVrgQEAgOrD44QhNDTU5bWPj4/atWunJ598Un369PFaYAAAoPrwKGGw2+0aOnSoOnfurIYNG1ZWTAAAeB93SZji0aRHX19f9enTh6dSAgBqHB5vbY7Hd0l06tRJ+/fvr4xYAABANeVxwvDUU09p/Pjx2rBhg44dO6a8vDyXDQCAaotbKi9YhecwPPnkk3rkkUd08803S5JuvfVWlyWiDcOQzWaT3W73fpQAAJjFHAZTKpwwzJgxQw888IA+/vjjyowHAABUQxVOGAyjLLW6/vrrKy0YAAAqCws3mePRbZW/9ZRKAACqNVoSpniUMFx22WVuk4bs7GxTAQEAgOrHo4RhxowZZ630CABATUBLwhyPEobB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996rAQMGOF/fcMMNevjhhy96HJs2bZLNZlNOTs55x9hsNq1bt67C15w+fbq6detmKq6DBw/KZrMpLS3N1HUAVC0SBtRK9957r2w2m2w2m/z9/RUdHa0nn3xSpaWllf7e//znPzVz5swKja3IlzwAVAc8fAq1Vt++fbV06VIVFRXp/fff16hRo1SnTh09+uijZ40tLi6Wv7+/V963UaNGXrkOAFQnVBhQawUEBCg8PFxRUVEaOXKk4uLi9O6770r6uY3w9NNPKyIiQu3atZMkHT58WHfccYcaNGigRo0a6bbbbtPBgwed17Tb7Ro3bpwaNGigxo0ba+LEifr141h+3ZIoKirSpEmTFBkZqYCAAEVHR+v111/XwYMHnQ88atiwoWw2m+69915JZY8PnzVrltq0aaOgoCB17dpV//jHP1ze5/3339dll12moKAg9e7d2yXOipo0aZIuu+wy1a1bV23bttXUqVNVUlJy1riXX35ZkZGRqlu3ru644w7l5ua6HH/ttdfUoUMHBQYGqn379nrppZc8jgVA9UbCAMsICgpScXGx83VycrIyMjKUlJSkDRs2qKSkRPHx8QoODtYnn3yizz77TPXr11ffvn2d582dO1fLli3TG2+8oU8//VTZ2dlau3btb77vX/7yF7355ptasGCBdu/erZdffln169dXZGSk3nnnHUlSRkaGjh07pvnz50uSZs2apRUrVmjJkiXatWuXxo4dq3vuuUebN2+WVJbYDBw4ULfccovS0tI0fPhwTZ482eO/k+DgYC1btkz/+9//NH/+fL366quaN2+ey5i9e/dqzZo1Wr9+vTZu3KgvvvhCDz74oPP4ypUrNW3aND399NPavXu3nnnmGU2dOlXLly/3OB4A1ZgB1EIJCQnGbbfdZhiGYTgcDiMpKckICAgwxo8f7zweFhZmFBUVOc/5+9//brRr185wOBzOfUVFRUZQUJDxwQcfGIZhGM2bNzdmz57tPF5SUmK0bNnS+V6GYRjXX3+9MWbMGMMwDCMjI8OQZCQlJZ0zzo8//tiQZJw8edK5r7Cw0Khbt66xdetWl7HDhg0z7rrrLsMwDOPRRx81Onbs6HJ80qRJZ13r1yQZa9euPe/xOXPmGN27d3e+fuKJJwxfX1/jyJEjzn3//ve/DR8fH+PYsWOGYRjGJZdcYqxatcrlOjNnzjRiY2MNwzCMAwcOGJKML7744rzvC6D6Yw4Daq0NGzaofv36KikpkcPh0N13363p06c7j3fu3Nll3sKXX36pvXv3Kjg42OU6hYWF2rdvn3Jzc3Xs2DHFxMQ4j/n5+alHjx5ntSXKpaWlydfXV9dff32F4967d69Onz6tm266yWV/cXGxrrjiCknS7t27XeKQpNjY2Aq/R7nVq1drwYIF2rdvn/Lz81VaWqqQkBCXMa1atVKLFi1c3sfhcCgjI0PBwcHat2+fhg0bphEjRjjHlJaWKjQ01ON4AFRfJAyotXr37q3FixfL399fERER8vNz/XGvV6+ey+v8/Hx1795dK1euPOtaTZs2vaAYgoKCPD4nPz9fkvTee++5fFFLZfMyvCUlJUVDhgzRjBkzFB8fr9DQUL311luaO3eux7G++uqrZyUwvr6+XosVQNUjYUCtVa9ePUVHR1d4/JVXXqnVq1erWbNmZ/2WXa558+batm2bevXqJansN+nU1FRdeeWV5xzfuXNnORwObd68WXFxcWcdL69w2O12576OHTsqICBAhw4dOm9lokOHDs4JnOU+//xz9x/yF7Zu3aqoqCg9/vjjzn3ffffdWeMOHTqko0ePKiIiwvk+Pj4+ateuncLCwhQREaH9+/dryJAhHr0/gJqFSY/AT4YMGaImTZrotttu0yeffKIDBw5o06ZNeuihh3TkyBFJ0pgxY/Tss89q3bp1Sk9P14MPPvibayi0bt1aCQkJuu+++7Ru3TrnNdesWSNJioqKks1m04YNG3TixAnl5+crODhY48eP19ixY7V8+XLt27dPO3fu1IsvvuicSPjAAw9oz549mjBhgjIyMrRq1SotW7bMo8976aWX6tChQ3rrrbe0b98+LViw4JwTOAMDA5WQkKAvv/xSn3zyiR566CHdcccdCg8PlyTNmDFDs2bN0oIFC/Ttt9/q66+/1tKlS/X88897FA+A6o2EAfhJ3bp1tWXLFrVq1UoDBw5Uhw4dNGzYMBUWFjorDo888oj+/Oc/KyEhQbGxsQoODtbtt9/+m9ddvHix/vjHP+rBBx9U+/btNWLECBUUFEiSWrRooRkzZmjy5MkKCwtTYmKiJGnmzJmaOnWqZs2apQ4dOqhv375677331KZNG0ll8wreeecdrVu3Tl27dtWSJUv0zDPPePR5b731Vo0dO1aJiYnq1q2btm7dqqlTp541Ljo6WgMHDtTNN9+sPn36qEuXLi63TQ4fPlyvvfaali5dqs6dO+v666/XsmXLnLECqB1sxvlmawEAAPyECgMAAHCLhAEAALhFwgAAANwiYQAAAG6RMAAAALdIGAAAgFskDAAAwC0SBgAA4BYJAwAAcIuEAQAAuEXCAAAA3Pp/PM16P01DcfMAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "x_train2=x_train[:][x_train.keys()[selector.get_support().T]]\n",
+ "x_test2=x_test[:][x_test.keys()[selector.get_support().T]]\n",
+ "sc=StandardScaler()\n",
+ "sc.fit(x_train2)\n",
+ "x_train_std2=sc.transform(x_train2)\n",
+ "x_test_std2=sc.transform(x_test2)\n",
+ "forest = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10,\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest.fit(x_train2, y_train)\n",
+ "y_forest_pred=forest.predict(x_test2)\n",
+ "#计算混淆矩阵\n",
+ "cm = confusion_matrix(y_test, y_forest_pred , labels=forest.classes_)\n",
+ "\n",
+ "print(f'confusion_matrix: {cm}')\n",
+ "print(f'test_Accuracy: {accuracy_score(y_test, y_forest_pred):.2f}')\n",
+ "print(f'precision_score: {precision_score(y_test,y_forest_pred):.2f}')\n",
+ "print(f'recall_score: {recall_score(y_test, y_forest_pred):.2f}')\n",
+ "print(f'f1_value_score: {f1_score(y_test, y_forest_pred):.2f}')\n",
+ "print(f'roc_auc_score: {roc_auc_score(y_test, y_forest_pred):.2f}')\n",
+ "#可视化混淆矩阵\n",
+ "dis_LG = ConfusionMatrixDisplay(confusion_matrix=cm,\n",
+ " display_labels=forest.classes_)\n",
+ "dis_LG.plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "best cross-validation accuracy: 0.9365780687761559\n",
+ "test set score: 0.9324791988807893\n",
+ "best parameters: {'RandomForest__max_depth': 7, 'RandomForest__n_estimators': 8}\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 86,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgwAAAG1CAYAAACVq6wvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/4klEQVR4nO3deVxVdf7H8fcFZVG5KCogiXuppOmkhtRoOZJYTmU6M2lOoalNBY5Lbi1uWTk/rVzStLKiGi1tSisti9HUTKpRI9OUcssVXAFB2e49vz+IWzfMCx6Q5byej8d55D3ne879XIfxfvh8vud7bIZhGAIAALgIr4oOAAAAVH4kDAAAwCMSBgAA4BEJAwAA8IiEAQAAeETCAAAAPCJhAAAAHpEwAAAAj0gYAACARyQMAADAIxIGAADKwYwZM9SlSxcFBAQoODhYffv2VUpKituYm266STabzW174IEH3MYcPHhQffr0Ua1atRQcHKxx48apoKDAbcz69et17bXXytfXV61atVJCQkKxeBYsWKBmzZrJz89PkZGR+vrrr0v1eUgYAAAoBxs2bFBcXJy+/PJLJSYmKj8/X7169VJ2drbbuOHDh+vYsWOubebMma5jDodDffr0UV5enjZv3qzXX39dCQkJmjx5smvM/v371adPH/Xo0UPJyckaNWqUhg0bpk8++cQ1ZtmyZRozZoymTJmibdu2qUOHDoqJidHx48dL/HlsVfnhU06nU0ePHlVAQIBsNltFhwMAKCXDMHT27FmFhYXJy6v8fofNyclRXl6e6ev4+PjIz8/vks49ceKEgoODtWHDBnXv3l1SYYWhY8eOmjNnzgXP+fjjj/XnP/9ZR48eVUhIiCRp0aJFmjBhgk6cOCEfHx9NmDBBq1ev1o4dO1znDRgwQOnp6VqzZo0kKTIyUl26dNH8+fMlFX5/hoeHa8SIEZo4cWLJPoBRhR06dMiQxMbGxsZWxbdDhw6V23fF+fPnjdBg7zKJMzQ01EhLSzMyMjJcW05OToni+PHHHw1Jxnfffefad+ONNxoNGjQw6tevb1x99dXGxIkTjezsbNfxSZMmGR06dHC7zr59+wxJxrZt2wzDMIxu3boZI0eOdBvz6quvGna73TAMw8jNzTW8vb2NFStWuI259957jdtvv72Ef4uGUUNVWEBAgCTpp23NZK9DdwXV051Xta/oEIByU6B8bdJHrn/Py0NeXp5Sjzv009Zmsgdc+ndF5lmnmnY64PpNv8iUKVM0derUi57rdDo1atQo3XDDDWrXrp1r/913362mTZsqLCxM27dv14QJE5SSkqL33ntPkpSamlrs/Ypep6amXnRMZmamzp8/rzNnzsjhcFxwzO7du0v8+at0wlDUhrDX8TL1QwBUZjVsNSs6BKD8GIX/uRxt5ToBNtUJuPT3carw3EOHDslut7v2+/r6ejw3Li5OO3bs0KZNm9z233///a4/t2/fXo0aNVLPnj21d+9etWzZ8pJjLQ9VOmEAAKCkHIZTDsPc+ZJkt9vdEgZP4uPjtWrVKm3cuFGNGze+6NjIyEhJ0p49e9SyZUuFhoYWu5shLS1NkhQaGur6b9G+X4+x2+3y9/eXt7e3vL29Lzim6Bolwa/lAABLcMowvZWGYRiKj4/XihUrtG7dOjVv3tzjOcnJyZKkRo0aSZKioqL03Xffud3NkJiYKLvdroiICNeYtWvXul0nMTFRUVFRkgonanbq1MltjNPp1Nq1a11jSoIKAwAA5SAuLk5Lly7V+++/r4CAANecg8DAQPn7+2vv3r1aunSpbr31VtWvX1/bt2/X6NGj1b17d11zzTWSpF69eikiIkL33HOPZs6cqdTUVD3++OOKi4tztUIeeOABzZ8/X+PHj9d9992ndevWafny5Vq9erUrljFjxig2NladO3fWddddpzlz5ig7O1tDhgwp8echYQAAWIJTTjlNnl8aCxculFR46+Svvfbaaxo8eLB8fHz03//+1/XlHR4erv79++vxxx93jfX29taqVav04IMPKioqSrVr11ZsbKyeeOIJ15jmzZtr9erVGj16tObOnavGjRtr8eLFiomJcY256667dOLECU2ePFmpqanq2LGj1qxZU2wi5MVU6XUYMjMzFRgYqDM/tGDSI6qtmLCOFR0CUG4KjHyt1/vKyMgo1byA0ij6rji0+wrTd0mEtzlSrrFWZnzLAgAAj2hJAAAs4VImLv72fCsjYQAAWIJThhwkDJeMlgQAAPCICgMAwBJoSZhDwgAAsASHYchh4sZAM+dWB7QkAACAR1QYAACW4Px5M3O+lZEwAAAswWHyLgkz51YHJAwAAEtwGDL5tMqyi6UqYg4DAADwiAoDAMASmMNgDgkDAMASnLLJIZup862MlgQAAPCICgMAwBKcRuFm5nwrI2EAAFiCw2RLwsy51QEtCQAA4BEVBgCAJVBhMIeEAQBgCU7DJqdh4i4JE+dWB7QkAACAR1QYAACWQEvCHBIGAIAlOOQlh4nCuqMMY6mKSBgAAJZgmJzDYDCHAQAA4OKoMAAALIE5DOaQMAAALMFheMlhmJjDYPGloWlJAAAAj6gwAAAswSmbnCZ+T3bK2iUGEgYAgCUwh8EcWhIAAMAjKgwAAEswP+mRlgQAANVe4RwGEw+foiUBAABwcVQYAACW4DT5LAnukgAAwAKYw2AOCQMAwBKc8mIdBhOYwwAAADyiwgAAsASHYZPDxCOqzZxbHZAwAAAswWFy0qODlgQAAMDFUWEAAFiC0/CS08RdEk7ukgAAoPqjJWEOLQkAAOARFQYAgCU4Ze5OB2fZhVIlkTAAACzB/MJN1i7KW/vTAwCAEqHCAACwBPPPkrD279gkDAAAS3DKJqfMzGFgpUcAAKo9KgzmWPvTAwCAEqHCAACwBPMLN1n7d2wSBgCAJTgNm5xm1mGw+NMqrZ0uAQCAEqHCAACwBKfJloTVF24iYQAAWIL5p1VaO2Gw9qcHAAAlQoUBAGAJDtnkMLH4kplzqwMSBgCAJdCSMMfanx4AAJQIFQYAgCU4ZK6t4Ci7UKokEgYAgCXQkjCHhAEAYAk8fMoca396AABQIiQMAABLMGST08RmlHL+w4wZM9SlSxcFBAQoODhYffv2VUpKituYnJwcxcXFqX79+qpTp4769++vtLQ0tzEHDx5Unz59VKtWLQUHB2vcuHEqKChwG7N+/Xpde+218vX1VatWrZSQkFAsngULFqhZs2by8/NTZGSkvv7661J9HhIGAIAlFLUkzGylsWHDBsXFxenLL79UYmKi8vPz1atXL2VnZ7vGjB49Wh9++KHeeecdbdiwQUePHlW/fv1+idnhUJ8+fZSXl6fNmzfr9ddfV0JCgiZPnuwas3//fvXp00c9evRQcnKyRo0apWHDhumTTz5xjVm2bJnGjBmjKVOmaNu2berQoYNiYmJ0/PjxEn8em2EYRqn+BiqRzMxMBQYG6swPLWQPIPdB9RQT1rGiQwDKTYGRr/V6XxkZGbLb7eXyHkXfFeM295FvnZqXfJ3crHzNun71Jcd64sQJBQcHa8OGDerevbsyMjLUsGFDLV26VH/5y18kSbt371bbtm2VlJSkrl276uOPP9af//xnHT16VCEhIZKkRYsWacKECTpx4oR8fHw0YcIErV69Wjt27HC914ABA5Senq41a9ZIkiIjI9WlSxfNnz9fkuR0OhUeHq4RI0Zo4sSJJYqfb1kAgCUUPd7azCYVJiC/3nJzc0v0/hkZGZKkoKAgSdLWrVuVn5+v6Oho15g2bdqoSZMmSkpKkiQlJSWpffv2rmRBkmJiYpSZmamdO3e6xvz6GkVjiq6Rl5enrVu3uo3x8vJSdHS0a0xJkDAAACzB8fPTKs1skhQeHq7AwEDXNmPGDI/v7XQ6NWrUKN1www1q166dJCk1NVU+Pj6qW7eu29iQkBClpqa6xvw6WSg6XnTsYmMyMzN1/vx5nTx5Ug6H44Jjiq5REtxWCQBAKRw6dMitJeHr6+vxnLi4OO3YsUObNm0qz9DKFQkDAMASft1WuNTzJclut5dqDkN8fLxWrVqljRs3qnHjxq79oaGhysvLU3p6uluVIS0tTaGhoa4xv72boeguil+P+e2dFWlpabLb7fL395e3t7e8vb0vOKboGiVBSwIAYAlOeZneSsMwDMXHx2vFihVat26dmjdv7na8U6dOqlmzptauXeval5KSooMHDyoqKkqSFBUVpe+++87tbobExETZ7XZFRES4xvz6GkVjiq7h4+OjTp06uY1xOp1au3ata0xJUGEAAKAcxMXFaenSpXr//fcVEBDgmi8QGBgof39/BQYGaujQoRozZoyCgoJkt9s1YsQIRUVFqWvXrpKkXr16KSIiQvfcc49mzpyp1NRUPf7444qLi3O1Qh544AHNnz9f48eP13333ad169Zp+fLlWr16tSuWMWPGKDY2Vp07d9Z1112nOXPmKDs7W0OGDCnx5yFhAABYgsOwyWGiJVHacxcuXChJuummm9z2v/baaxo8eLAkafbs2fLy8lL//v2Vm5urmJgYvfDCC66x3t7eWrVqlR588EFFRUWpdu3aio2N1RNPPOEa07x5c61evVqjR4/W3Llz1bhxYy1evFgxMTGuMXfddZdOnDihyZMnKzU1VR07dtSaNWuKTYS8GNZhACo51mFAdXY512H4x8b+ptdheLH7u+Uaa2VGhQEAYAmGyadVGjx8CgAA4OKoMAAALMEhmxylfIDUb8+3MhIGAIAlOA2ZXIehDIOpgmhJAAAAj6gwVHNvPx+sLz6qq0N7fOXj51RE53Ma+thRhbf65WEp4/q30vakOm7n3XrPSY38v8Ou18cP19TzjzTWt18EyK+2Qzf/9Yzue/SovH/+CXpmVBMlLg8q9v5Nrjqvl9cXPv/9zWdC9e/n3FcVa9wyR698vrusPi5wQe0is/TXh07oyvbnVD+0QFPva6akNYFuY8Jb5Wjo48d0TdcsedeQfvrBV9OHN9OJIz6/uZqhJ/+9X13+dPaC10Hl5TQ56dHMudVBpUgYFixYoFmzZik1NVUdOnTQ888/r+uuu66iw6oWtifV0W2DT+qqjufkKJAS/tVIjw5sqZc37JZfLadr3C2DTurecb88hMTX/5djDoc06d4WqtewQLM/+FGnj9fQrH82lXdNQ/c9ckyS9OATh3Xfo0d/OafApgdvbq3uf85wi6dp6/P617K9rtfe3hav8eGy8Kvl1L6dfvrkrSBNefVAseONmubquZV7tObtIL35TIjOnfVW09Y5ysspXr6+c/hJVd2b0a3NKZucJuYhmDm3OqjwhGHZsmUaM2aMFi1apMjISM2ZM0cxMTFKSUlRcHBwRYdX5T29dJ/b64fnHNRd7dvrx+3+at8127Xf199QUHDBBa+xbUOADv7gp38t26l6DQvUUtK944/plafCdM/DqarpY6i23ana9l+SjM0fByor3Vu9Bpxyu5a3t373fYDysuUzu7Z89vv3zQ+emKqv19n1ypNhrn3Hfir+QKEWV59X/3+c0IhbrtTb335fLrEClVWF11eee+45DR8+XEOGDFFERIQWLVqkWrVq6dVXX63o0Kql7ExvSVJAXYfb/s/eq6e/Xt1O9/dorVefbqScc79k0t9vqa1mbXJUr+EvX/Sdbzqrc2e99VOK3wXfZ81bQfpDt7MKaZzvtv/Ifh8N/MPViu3aVv+Ka6Ljhy99ERWgLNhshq7rmakj+3z11NK9WrZ9p+au+lFRvd2rY77+Tk1c8JMWPHaFzpzg57YqKlrp0cxmZRWaMOTl5Wnr1q2Kjo527fPy8lJ0dLSSkpIqMLLqyemUFk25Qld3yVKzNjmu/T3uPKPx83/SzP/s0YARx7X23XqaOaKp6/iZEzVUr6H7F3/dBvmuY791KrWG/veZXb3vPu22v8212Ro756CeWrJXI/51WKkHffXwnVfqXFaF562wsLoNClSrjlN3xR/Xls/semRgC32xxq7Jiw+ofdcs17h/TD2i77fUVtInzFmoqormMJjZrKxCWxInT56Uw+EotpZ1SEiIdu8uPhEuNzdXubm/TNbLzMws9xirk/mPNtZPu/317Mof3fbf+vdf2gbN2+YoKDhfE/7WSkcP+CisWV6p3yfxnSDVsTt0/W9+Q+vyp7OuP7eIyFGbP5zTPddFaOMHdYslF8DlYvv5OyDpE7tWvNxQkrRvp78iOp9Tn3tP6bsv66hrrwx1vCFLD/W6qgIjBSpWlUqXZsyYocDAQNcWHh5e0SFVGfMfvUJfJdo18z971DAs/6Jj21x7TpJ09EBhD7dew4JiJdj0kzVdx37NMKRP3q6vnn85rZo+F58ZVifQocYtcl3vA1SEzNPeKsiXfvrBvb126EdfBV9RmDB3vCFLjZrl6b3dO/TRwW/10cFvJUmTXj6gmf/Zc9ljxqVxyianYWJj0mPFadCggby9vZWWlua2Py0tTaGhocXGP/LIIxozZozrdWZmJkmDB4YhLXjsCm1eE6hZ/9mj0CaeKwZ7d/hLkoKCCxOLiM7ZenteiNJP1lDdBoUJwraNAaoV4FCTq3Lczt2eVEdH9/uq90DPFYPz2V46+pOPeva/eAIDlKeCfC/98G0tNW6Z67b/iha5On648JbKZfOD9fFS99uGX/rsB704NUxffmq9hxBVVYbJuyQMEoaK4+Pjo06dOmnt2rXq27evJMnpdGrt2rWKj48vNt7X19f1/G+UzPxHG+uzFfU09bV98q/j1Onjhf+T1w5wyNff0NEDPvpsRT1d1zNTAfUc2v+9n16ceoXad81Si4jCZODaG8+qyVU5mjmiiYY+flRnTtRUwv+F6rbBJ+Xj615F+OStILW5NtttjkSRl6aFqWuvDAU3ztep1Bp685lG8vaSbrrzTPn/RcDS/Go5FNb8l2Q5NDxPLa4+r7Pp3jpxxEfvvBCsRxf9pB1f1ta3m+uoc4+z6npzpsb9paUk6cyJmhec6Hj8iI/SDvFvUlVRVCkwc76VVfhtlWPGjFFsbKw6d+6s6667TnPmzFF2draGDBlS0aFVC6tebyBJGtf/Srf9D88+qF53nVaNmoa++TxAKxY3VM45LzUMy9cfb03XwFG/VH28vaUn3tin5yeGa/RtV8mvllPRfz2t2HHH3K6ZnemlTavr6oHph3UhJ4/V1IyHmunsGW8F1i/Q1V2yNWfVD6pb33HB8UBZuarDec1695f1Px6YVrhmyKfL6unZ0U20eU2g5k28QgPij+vB6Ud0eF/hok07v67ze5cELMdmGBW/BMn8+fNdCzd17NhR8+bNU2RkpMfzip5xfuaHFrIHVKnpGECJxYR1rOgQgHJTYORrvd5XRkaG7Pbyae8UfVfcmThENWv/duXOksvPztOKm18r11grswqvMEhSfHz8BVsQAACUFVoS5vBrOQAA8KhSVBgAAChvPEvCHBIGAIAl0JIwh5YEAADwiAoDAMASqDCYQ8IAALAEEgZzaEkAAACPqDAAACyBCoM5JAwAAEswZO7WyApfFrmCkTAAACyBCoM5zGEAAAAeUWEAAFgCFQZzSBgAAJZAwmAOLQkAAOARFQYAgCVQYTCHhAEAYAmGYZNh4kvfzLnVAS0JAADgERUGAIAlOGUztXCTmXOrAxIGAIAlMIfBHFoSAADAIyoMAABLYNKjOSQMAABLoCVhDgkDAMASqDCYwxwGAADgERUGAIAlGCZbElavMJAwAAAswZBkGObOtzJaEgAAwCMqDAAAS3DKJhsrPV4yEgYAgCVwl4Q5tCQAAIBHVBgAAJbgNGyysXDTJSNhAABYgmGYvEvC4rdJ0JIAAAAeUWEAAFgCkx7NIWEAAFgCCYM5JAwAAEtg0qM5zGEAAAAeUWEAAFgCd0mYQ8IAALCEwoTBzByGMgymCqIlAQAAPKLCAACwBO6SMIeEAQBgCcbPm5nzrYyWBAAA8IgKAwDAEmhJmEPCAACwBnoSppAwAACswWSFQRavMDCHAQCAcrBx40bddtttCgsLk81m08qVK92ODx48WDabzW3r3bu325jTp09r0KBBstvtqlu3roYOHaqsrCy3Mdu3b1e3bt3k5+en8PBwzZw5s1gs77zzjtq0aSM/Pz+1b99eH330Uak/DwkDAMASilZ6NLOVRnZ2tjp06KAFCxb87pjevXvr2LFjru2tt95yOz5o0CDt3LlTiYmJWrVqlTZu3Kj777/fdTwzM1O9evVS06ZNtXXrVs2aNUtTp07VSy+95BqzefNmDRw4UEOHDtU333yjvn37qm/fvtqxY0epPg8tCQCAJVzuSY+33HKLbrnllouO8fX1VWho6AWP7dq1S2vWrNH//vc/de7cWZL0/PPP69Zbb9UzzzyjsLAwLVmyRHl5eXr11Vfl4+Ojq6++WsnJyXruuedcicXcuXPVu3dvjRs3TpI0ffp0JSYmav78+Vq0aFGJPw8VBgAAKsj69esVHBys1q1b68EHH9SpU6dcx5KSklS3bl1XsiBJ0dHR8vLy0ldffeUa0717d/n4+LjGxMTEKCUlRWfOnHGNiY6OdnvfmJgYJSUllSpWKgwAAGswbOYmLv58bmZmpttuX19f+fr6lvpyvXv3Vr9+/dS8eXPt3btXjz76qG655RYlJSXJ29tbqampCg4OdjunRo0aCgoKUmpqqiQpNTVVzZs3dxsTEhLiOlavXj2lpqa69v16TNE1SoqEAQBgCWX1tMrw8HC3/VOmTNHUqVNLfb0BAwa4/ty+fXtdc801atmypdavX6+ePXteeqDlhIQBAIBSOHTokOx2u+v1pVQXLqRFixZq0KCB9uzZo549eyo0NFTHjx93G1NQUKDTp0+75j2EhoYqLS3NbUzRa09jfm/uxO9hDgMAwBqMMtgk2e12t62sEobDhw/r1KlTatSokSQpKipK6enp2rp1q2vMunXr5HQ6FRkZ6RqzceNG5efnu8YkJiaqdevWqlevnmvM2rVr3d4rMTFRUVFRpYqvRBWGDz74oMQXvP3220sVAAAAl8PlvksiKytLe/bscb3ev3+/kpOTFRQUpKCgIE2bNk39+/dXaGio9u7dq/Hjx6tVq1aKiYmRJLVt21a9e/fW8OHDtWjRIuXn5ys+Pl4DBgxQWFiYJOnuu+/WtGnTNHToUE2YMEE7duzQ3LlzNXv2bNf7jhw5UjfeeKOeffZZ9enTR2+//ba2bNnidutlSZQoYejbt2+JLmaz2eRwOEoVAAAA1dGWLVvUo0cP1+sxY8ZIkmJjY7Vw4UJt375dr7/+utLT0xUWFqZevXpp+vTpbhWLJUuWKD4+Xj179pSXl5f69++vefPmuY4HBgbq008/VVxcnDp16qQGDRpo8uTJbms1XH/99Vq6dKkef/xxPfroo7ryyiu1cuVKtWvXrlSfx2YYZqaAVKzMzEwFBgbqzA8tZA+gu4LqKSasY0WHAJSbAiNf6/W+MjIy3OYFlKWi74omL02Wl7/fJV/HeT5HB+9/olxjrcxMTXrMycmRn9+l/+UDAHC58LRKc0r9a7nD4dD06dN1xRVXqE6dOtq3b58kadKkSXrllVfKPEAAAMpEGU16tKpSJwxPPfWUEhISNHPmTLeVpdq1a6fFixeXaXAAAKByKHXC8MYbb+ill17SoEGD5O3t7drfoUMH7d69u0yDAwCg7NjKYLOuUs9hOHLkiFq1alVsv9PpdLsPFACASsVsW4GWROlERETo888/L7b/P//5j/7whz+USVAAAKByKXWFYfLkyYqNjdWRI0fkdDr13nvvKSUlRW+88YZWrVpVHjECAGAeFQZTSl1huOOOO/Thhx/qv//9r2rXrq3Jkydr165d+vDDD3XzzTeXR4wAAJhX9LRKM5uFXdI6DN26dVNiYmJZxwIAACqpS164acuWLdq1a5ekwnkNnTp1KrOgAAAoa2X1eGurKnXCcPjwYQ0cOFBffPGF6tatK0lKT0/X9ddfr7fffluNGzcu6xgBADCPOQymlHoOw7Bhw5Sfn69du3bp9OnTOn36tHbt2iWn06lhw4aVR4wAAKCClbrCsGHDBm3evFmtW7d27WvdurWef/55devWrUyDAwCgzJiduMikx9IJDw+/4AJNDofD9XxuAAAqG5tRuJk538pK3ZKYNWuWRowYoS1btrj2bdmyRSNHjtQzzzxTpsEBAFBmePiUKSWqMNSrV0822y+lmOzsbEVGRqpGjcLTCwoKVKNGDd13333q27dvuQQKAAAqTokShjlz5pRzGAAAlDPmMJhSooQhNja2vOMAAKB8cVulKZe8cJMk5eTkKC8vz22f3W43FRAAAKh8Sj3pMTs7W/Hx8QoODlbt2rVVr149tw0AgEqJSY+mlDphGD9+vNatW6eFCxfK19dXixcv1rRp0xQWFqY33nijPGIEAMA8EgZTSt2S+PDDD/XGG2/opptu0pAhQ9StWze1atVKTZs21ZIlSzRo0KDyiBMAAFSgUlcYTp8+rRYtWkgqnK9w+vRpSdIf//hHbdy4sWyjAwCgrPB4a1NKnTC0aNFC+/fvlyS1adNGy5cvl1RYeSh6GBUAAJVN0UqPZjYrK3XCMGTIEH377beSpIkTJ2rBggXy8/PT6NGjNW7cuDIPEAAAVLxSz2EYPXq068/R0dHavXu3tm7dqlatWumaa64p0+AAACgzrMNgiql1GCSpadOmatq0aVnEAgAAKqkSJQzz5s0r8QX/+c9/XnIwAACUF5tMPq2yzCKpmkqUMMyePbtEF7PZbCQMAABUQyVKGIruiqis/nJ9D9Xw8qnoMIBycqKiAwCqBx4+ZYrpOQwAAFQJTHo0pdS3VQIAAOuhwgAAsAYqDKaQMAAALMHsao2s9AgAAODBJSUMn3/+uf7+978rKipKR44ckSS9+eab2rRpU5kGBwBAmeHx1qaUOmF49913FRMTI39/f33zzTfKzc2VJGVkZOjpp58u8wABACgTJAymlDphePLJJ7Vo0SK9/PLLqlmzpmv/DTfcoG3btpVpcAAAoHIo9aTHlJQUde/evdj+wMBApaenl0VMAACUOSY9mlPqCkNoaKj27NlTbP+mTZvUokWLMgkKAIAyV7TSo5nNwkqdMAwfPlwjR47UV199JZvNpqNHj2rJkiUaO3asHnzwwfKIEQAA85jDYEqpWxITJ06U0+lUz549de7cOXXv3l2+vr4aO3asRowYUR4xAgCAClbqhMFms+mxxx7TuHHjtGfPHmVlZSkiIkJ16tQpj/gAACgTzGEw55JXevTx8VFERERZxgIAQPlhaWhTSp0w9OjRQzbb70/8WLdunamAAABA5VPqhKFjx45ur/Pz85WcnKwdO3YoNja2rOICAKBsmWxJUGEopdmzZ19w/9SpU5WVlWU6IAAAygUtCVPK7OFTf//73/Xqq6+W1eUAAEAlUmaPt05KSpKfn19ZXQ4AgLJFhcGUUicM/fr1c3ttGIaOHTumLVu2aNKkSWUWGAAAZYnbKs0pdcIQGBjo9trLy0utW7fWE088oV69epVZYAAAoPIoVcLgcDg0ZMgQtW/fXvXq1SuvmAAAQCVTqkmP3t7e6tWrF0+lBABUPTxLwpRS3yXRrl077du3rzxiAQCg3BTNYTCzWVmpE4Ynn3xSY8eO1apVq3Ts2DFlZma6bQAAoPop8RyGJ554Qg8//LBuvfVWSdLtt9/utkS0YRiy2WxyOBxlHyUAAGXB4lUCM0qcMEybNk0PPPCAPvvss/KMBwCA8sE6DKaUOGEwjMK/qRtvvLHcggEAAJVTqW6rvNhTKgEAqMxYuMmcUiUMV111lcek4fTp06YCAgCgXNCSMKVUCcO0adOKrfQIAACqv1IlDAMGDFBwcHB5xQIAQLmhJWFOiRMG5i8AAKo0WhKmlHjhpqK7JAAAgPWUOGFwOp20IwAAVddlfpbExo0bddtttyksLEw2m00rV650D8cwNHnyZDVq1Ej+/v6Kjo7Wjz/+6Dbm9OnTGjRokOx2u+rWrauhQ4cqKyvLbcz27dvVrVs3+fn5KTw8XDNnziwWyzvvvKM2bdrIz89P7du310cffVS6D6NLWBoaAICq6HI/SyI7O1sdOnTQggULLnh85syZmjdvnhYtWqSvvvpKtWvXVkxMjHJyclxjBg0apJ07dyoxMVGrVq3Sxo0bdf/997uOZ2ZmqlevXmratKm2bt2qWbNmaerUqXrppZdcYzZv3qyBAwdq6NCh+uabb9S3b1/17dtXO3bsKOXfXxXuNWRmZiowMFA9GwxVDS+fig4HKBeOEycqOgSg3BQY+Vqv95WRkSG73V4u71H0XdF61NPy9vW75Os4cnOUMufRS4rVZrNpxYoV6tu3r6TC6kJYWJgefvhhjR07VpKUkZGhkJAQJSQkaMCAAdq1a5ciIiL0v//9T507d5YkrVmzRrfeeqsOHz6ssLAwLVy4UI899phSU1Pl41P4PThx4kStXLlSu3fvliTdddddys7O1qpVq1zxdO3aVR07dtSiRYtK/BmoMAAAUAq/fehibm5uqa+xf/9+paamKjo62rUvMDBQkZGRSkpKkiQlJSWpbt26rmRBkqKjo+Xl5aWvvvrKNaZ79+6uZEGSYmJilJKSojNnzrjG/Pp9isYUvU9JkTAAAKyhjOYwhIeHKzAw0LXNmDGj1KGkpqZKkkJCQtz2h4SEuI6lpqYWmztYo0YNBQUFuY250DV+/R6/N6boeEmVah0GAACqqrJah+HQoUNuLQlfX1+TkVUNVBgAACgFu93utl1KwhAaGipJSktLc9uflpbmOhYaGqrjx4+7HS8oKNDp06fdxlzoGr9+j98bU3S8pEgYAADWcJlvq7yY5s2bKzQ0VGvXrnXty8zM1FdffaWoqChJUlRUlNLT07V161bXmHXr1snpdCoyMtI1ZuPGjcrPz3eNSUxMVOvWrVWvXj3XmF+/T9GYovcpKRIGAIAlXO7bKrOyspScnKzk5GRJhRMdk5OTdfDgQdlsNo0aNUpPPvmkPvjgA3333Xe69957FRYW5rqTom3bturdu7eGDx+ur7/+Wl988YXi4+M1YMAAhYWFSZLuvvtu+fj4aOjQodq5c6eWLVumuXPnasyYMa44Ro4cqTVr1ujZZ5/V7t27NXXqVG3ZskXx8fGl+jzMYQAAoBxs2bJFPXr0cL0u+hKPjY1VQkKCxo8fr+zsbN1///1KT0/XH//4R61Zs0Z+fr/c+rlkyRLFx8erZ8+e8vLyUv/+/TVv3jzX8cDAQH366aeKi4tTp06d1KBBA02ePNltrYbrr79eS5cu1eOPP65HH31UV155pVauXKl27dqV6vOwDgNQybEOA6qzy7kOQ9s48+sw7FpwaeswVAdUGAAA1sDDp0xhDgMAAPCICgMAwBJsP29mzrcyEgYAgDXQkjCFhAEAYAlltdKjVTGHAQAAeESFAQBgDbQkTCFhAABYh8W/9M2gJQEAADyiwgAAsAQmPZpDwgAAsAbmMJhCSwIAAHhEhQEAYAm0JMwhYQAAWAMtCVNoSQAAAI+oMAAALIGWhDkkDAAAa6AlYQoJAwDAGkgYTGEOAwAA8IgKAwDAEpjDYA4JAwDAGmhJmEJLAgAAeESFAQBgCTbDkM249DKBmXOrAxIGAIA10JIwhZYEAADwiAoDAMASuEvCHBIGAIA10JIwhZYEAADwiAoDAMASaEmYQ8IAALAGWhKmkDAAACyBCoM5zGEAAAAeUWEAAFgDLQlTSBgAAJZh9baCGbQkAACAR1QYAADWYBiFm5nzLYyEAQBgCdwlYQ4tCQAA4BEVBgCANXCXhCkkDAAAS7A5Czcz51sZLQkAAOARFQaLaXftGfUf/JNatc1U/eA8TR91jZI+C3YbE948W0NG/aj2nc7Iu4ahg3vr6KmHr9GJVD8Fh51XwsdfXPDaT49tr02JIZKkhqE5intsl67pckY557313w/ClDCvpZwOclRcXnfFp+mGWzMU3ipXeTle+n5LLb3yVCMd3uvnGjPzP3vU4fpst/NWv1Ff8yY2liQF1CvQxPkH1bzteQXUcyjjVA0lfWLXazMa6VyW92X9PDCBloQpFZowbNy4UbNmzdLWrVt17NgxrVixQn379q3IkKo9P3+H9qfU0acrwzRp9vZix0Mbn9OshC36dEWY/r2whc5l1VDTltnKyyv8oj+Z6qdBf+rmdk7vvxxR/9iftGVTfUmSl5ehafO/0ZmTvhob20VBDXL18JM75Siw6fXnW5X/hwR+5ZqobH2Y0EA/JNeSdw1Dgyce09Nv7dPwG1sr9/wvX/Yf/TtIb8wKdb3OPf9Lcms4paRP7Er4v1BlnKqhsOa5in/6iALqHta/4ppe1s+DS8ddEuZUaMKQnZ2tDh066L777lO/fv0qMhTL2PJFA235osHvHo8dsVdbNtXXq3OudO1LPVzL9Wen06Yzp3zdzrn+T8f1+achyjlf+ON0bdQphbfI1qP3X6v0077alxKgN19oqSEjf9SShS1UUECVAZfPY4NauL1+dlQTLd+xU1dec147vqrj2p973ktnTtS84DWyMmpo1Ru//P/m+BEfffh6ff31wRPlEzTKB+swmFKh/3LfcsstevLJJ3XnnXdWZBj4mc1mqEu3kzryUy1NX7hNSz/boNn//lpRPY7/7jmt2maqZZssfboizLWvTYcMHfixjtJP/5JYbN1cX7UDHGrSKqtcPwPgSW27Q5J0Nt29ldCj3xkt37FDL65L0ZBHjsnX//dnuAWF5OuGWzK0Pal2ucYKVCZVag5Dbm6ucnNzXa8zMzMrMJrqp25QnmrVduiv9x3QG/Nb6rU5V6rTDaf02HPbNXFYJ+3YWq/YOb3uPKqDe2tr17d1Xfvq1c9T+mkft3HppwpfB9XP075y/RTA77PZDD0w7Yh2fF1LP6X4u/Z/tqKejh+uqVNpNdW8bY6GPnZMjVvmavqwZm7nT3zhJ0XFZMjP31DSp3bNHht+mT8BzKAlYU6VShhmzJihadOmVXQY1Zbt53rTl5811Mp/F/Zl96UEqG2HdN3618PFEgYfX4duuiVVb73c/HKHClyS+KePqGmbHD3c130uzcdL6rv+fGC3v04fr6GZ7+xTo6a5OvbTL5WyF6eEaclzIbqiRa7ue+SY/jHlqOY/2viyxQ+TmPRoSpVqJj/yyCPKyMhwbYcOHarokKqVzDM1VZBv08F97mXWQ/trKzg0p9j4P958XL7+Dq39sJHb/jOnfFQ3KM9tX936ha9Pn3KvPACXS9xThxV5c6bG/6WlTh67+M/h7m2F83bCmuW67T9zoqYO7fHTl58Gau6Exrpt8CkFBeeXW8xAZVKlEgZfX1/Z7Xa3DWWnoMBLP+y0q3Gzc277r2h6TseP+RUb36vvEX21vqEyz7j/47v720A1uzJLgb9KGv7Q9ZSyz3rr4N46v70MUM4MxT11WNf3ztD4v7ZU2iFfj2e0bFeYIJ8+fuFJkJJksxX+t6aPxX/trEKKWhJmNiurUi0JmOfnX6CwJuddr0OuOK8Wrc/qbEZNnUj107uvN9XEmd/pu631tP1/9dTphlOK7H5SE4Z1crtOo/BzatcpXVPiOhZ7j21J9XVoX22NfWqHXp19peo1yNO98Xu1alm4CvKrVI6KaiD+6SPqcecZTR3SXOezvFSvYWFFIPust/JyvNSoaa563Jmur9cG6OyZGmoecV7/mHpU25Nqa/+uwnkOXf6UqXoNC5SS7K+cbG81bZ2jYZOOasfXtZR2mKpZlcFdEqZUaMKQlZWlPXv2uF7v379fycnJCgoKUpMmTSowsurryqsz9X+vbHO9vn/cj5KkxPcbafbkq5W0Lljzn2yjv913QA9MSNHhA7X01MPt9f03dd2u06vvUZ1M89W2pPr6LafTpqkjOirusd169o3/Kfe8t/77YSO9+UKLYmOB8nbb4FOSpGfe2+u2/5lR4UpcHqSCfJv+0O2s7hx2Qn61nDpxtKY2fRSot+aEuMbm5XjplkGn9I+pOarpY+jE0Zr64uNALZsfIsAqbIZRcSnT+vXr1aNHj2L7Y2NjlZCQ4PH8zMxMBQYGqmeDoarhRZaP6slxgnv9UX0VGPlar/eVkZFRbm3mou+KqFueUI2axdurJVWQn6OkjyeXa6yVWYVWGG666SZVYL4CALAS7pIwhYYyAADwiEmPAABLYOEmc0gYAADW4DQKNzPnWxgJAwDAGpjDYApzGAAAgEdUGAAAlmCTyTkMZRZJ1UTCAACwBlZ6NIWWBAAA8IgKAwDAErit0hwSBgCANXCXhCm0JAAAKAdTp06VzWZz29q0aeM6npOTo7i4ONWvX1916tRR//79lZaW5naNgwcPqk+fPqpVq5aCg4M1btw4FRQUuI1Zv369rr32Wvn6+qpVq1YlehbTpSBhAABYgs0wTG+ldfXVV+vYsWOubdOmTa5jo0eP1ocffqh33nlHGzZs0NGjR9WvXz/XcYfDoT59+igvL0+bN2/W66+/roSEBE2ePNk1Zv/+/erTp4969Oih5ORkjRo1SsOGDdMnn3xi7i/rAmhJAACswfnzZub8UqpRo4ZCQ0OL7c/IyNArr7yipUuX6k9/+pMk6bXXXlPbtm315ZdfqmvXrvr000/1/fff67///a9CQkLUsWNHTZ8+XRMmTNDUqVPl4+OjRYsWqXnz5nr22WclSW3bttWmTZs0e/ZsxcTEmPiwxVFhAACgFDIzM9223Nzc3x37448/KiwsTC1atNCgQYN08OBBSdLWrVuVn5+v6Oho19g2bdqoSZMmSkpKkiQlJSWpffv2CgkJcY2JiYlRZmamdu7c6Rrz62sUjSm6RlkiYQAAWEJZtSTCw8MVGBjo2mbMmHHB94uMjFRCQoLWrFmjhQsXav/+/erWrZvOnj2r1NRU+fj4qG7dum7nhISEKDU1VZKUmprqliwUHS86drExmZmZOn/+vOm/s1+jJQEAsIYyukvi0KFDstvtrt2+vr4XHH7LLbe4/nzNNdcoMjJSTZs21fLly+Xv728ikIpBhQEAYA1FKz2a2STZ7Xa37fcSht+qW7eurrrqKu3Zs0ehoaHKy8tTenq625i0tDTXnIfQ0NBid00UvfY0xm63l3lSQsIAAMBlkJWVpb1796pRo0bq1KmTatasqbVr17qOp6Sk6ODBg4qKipIkRUVF6bvvvtPx48ddYxITE2W32xUREeEa8+trFI0pukZZImEAAFhC0UqPZrbSGDt2rDZs2KADBw5o8+bNuvPOO+Xt7a2BAwcqMDBQQ4cO1ZgxY/TZZ59p69atGjJkiKKiotS1a1dJUq9evRQREaF77rlH3377rT755BM9/vjjiouLc1U1HnjgAe3bt0/jx4/X7t279cILL2j58uUaPXp0Wf/1MYcBAGARl/nhU4cPH9bAgQN16tQpNWzYUH/84x/15ZdfqmHDhpKk2bNny8vLS/3791dubq5iYmL0wgsvuM739vbWqlWr9OCDDyoqKkq1a9dWbGysnnjiCdeY5s2ba/Xq1Ro9erTmzp2rxo0ba/HixWV+S6Uk2Qyj6j5+KzMzU4GBgerZYKhqePlUdDhAuXCcOFHRIQDlpsDI13q9r4yMDLeJhGWp6LvixqjHVaOG3yVfp6AgRxuSnizXWCszKgwAAEuwOQs3M+dbGQkDAMAaLnNLorph0iMAAPCICgMAwBp4vLUpJAwAAEu41CdO/vp8K6MlAQAAPKLCAACwBiY9mkLCAACwBkOSmVsjrZ0vkDAAAKyBOQzmMIcBAAB4RIUBAGANhkzOYSizSKokEgYAgDUw6dEUWhIAAMAjKgwAAGtwSrKZPN/CSBgAAJbAXRLm0JIAAAAeUWEAAFgDkx5NIWEAAFgDCYMptCQAAIBHVBgAANZAhcEUEgYAgDVwW6UpJAwAAEvgtkpzmMMAAAA8osIAALAG5jCYQsIAALAGpyHZTHzpO62dMNCSAAAAHlFhAABYAy0JU0gYAAAWYTJhkLUTBloSAADAIyoMAABroCVhCgkDAMAanIZMtRW4SwIAAODiqDAAAKzBcBZuZs63MBIGAIA1MIfBFBIGAIA1MIfBFOYwAAAAj6gwAACsgZaEKSQMAABrMGQyYSizSKokWhIAAMAjKgwAAGugJWEKCQMAwBqcTkkm1lJwWnsdBloSAADAIyoMAABroCVhCgkDAMAaSBhMoSUBAAA8osIAALAGloY2hYQBAGAJhuGUYeKJk2bOrQ5IGAAA1mAY5qoEzGEAAAC4OCoMAABrMEzOYbB4hYGEAQBgDU6nZDMxD8HicxhoSQAAAI+oMAAArIGWhCkkDAAASzCcThkmWhJWv62SlgQAAPCICgMAwBpoSZhCwgAAsAanIdlIGC4VLQkAAOARFQYAgDUYhiQz6zBYu8JAwgAAsATDacgw0ZIwSBgAALAAwylzFQZuqwQAALgoKgwAAEugJWEOCQMAwBpoSZhSpROGomyvwJlXwZEA5cdh5Fd0CEC5KVDhz/fl+O29QPmm1m0qitWqqnTCcPbsWUnShtNvVnAkAAAzzp49q8DAwHK5to+Pj0JDQ7Up9SPT1woNDZWPj08ZRFX12Iwq3JRxOp06evSoAgICZLPZKjocS8jMzFR4eLgOHToku91e0eEAZYqf78vPMAydPXtWYWFh8vIqv3n4OTk5ysszX4328fGRn59fGURU9VTpCoOXl5caN25c0WFYkt1u5x9UVFv8fF9e5VVZ+DU/Pz/LftGXFW6rBAAAHpEwAAAAj0gYUCq+vr6aMmWKfH19KzoUoMzx8w38vio96REAAFweVBgAAIBHJAwAAMAjEgYAAOARCQMAAPCIhAEltmDBAjVr1kx+fn6KjIzU119/XdEhAWVi48aNuu222xQWFiabzaaVK1dWdEhApUPCgBJZtmyZxowZoylTpmjbtm3q0KGDYmJidPz48YoODTAtOztbHTp00IIFCyo6FKDS4rZKlEhkZKS6dOmi+fPnSyp8jkd4eLhGjBihiRMnVnB0QNmx2WxasWKF+vbtW9GhAJUKFQZ4lJeXp61btyo6Otq1z8vLS9HR0UpKSqrAyAAAlwsJAzw6efKkHA6HQkJC3PaHhIQoNTW1gqICAFxOJAwAAMAjEgZ41KBBA3l7eystLc1tf1pamkJDQysoKgDA5UTCAI98fHzUqVMnrV271rXP6XRq7dq1ioqKqsDIAACXS42KDgBVw5gxYxQbG6vOnTvruuuu05w5c5Sdna0hQ4ZUdGiAaVlZWdqzZ4/r9f79+5WcnKygoCA1adKkAiMDKg9uq0SJzZ8/X7NmzVJqaqo6duyoefPmKTIysqLDAkxbv369evToUWx/bGysEhISLn9AQCVEwgAAADxiDgMAAPCIhAEAAHhEwgAAADwiYQAAAB6RMAAAAI9IGAAAgEckDAAAwCMSBsCkwYMHq2/fvq7XN910k0aNGnXZ41i/fr1sNpvS09N/d4zNZtPKlStLfM2pU6eqY8eOpuI6cOCAbDabkpOTTV0HQMUiYUC1NHjwYNlsNtlsNvn4+KhVq1Z64oknVFBQUO7v/d5772n69OklGluSL3kAqAx4lgSqrd69e+u1115Tbm6uPvroI8XFxalmzZp65JFHio3Ny8uTj49PmbxvUFBQmVwHACoTKgyotnx9fRUaGqqmTZvqwQcfVHR0tD744ANJv7QRnnrqKYWFhal169aSpEOHDulvf/ub6tatq6CgIN1xxx06cOCA65oOh0NjxoxR3bp1Vb9+fY0fP16/XV39ty2J3NxcTZgwQeHh4fL19VWrVq30yiuv6MCBA67nF9SrV082m02DBw+WVPg00BkzZqh58+by9/dXhw4d9J///MftfT766CNdddVV8vf3V48ePdziLKkJEyboqquuUq1atdSiRQtNmjRJ+fn5xca9+OKLCg8PV61atfS3v/1NGRkZbscXL16stm3bys/PT23atNELL7xQ6lgAVG4kDLAMf39/5eXluV6vXbtWKSkpSkxM1KpVq5Sfn6+YmBgFBATo888/1xdffKE6deqod+/ervOeffZZJSQk6NVXX9WmTZt0+vRprVix4qLve++99+qtt97SvHnztGvXLr344ouqU6eOwsPD9e6770qSUlJSdOzYMc2dO1eSNGPGDL3xxhtatGiRdu7cqdGjR+vvf/+7NmzYIKkwsenXr59uu+02JScna9iwYZo4cWKp/04CAgKUkJCg77//XnPnztXLL7+s2bNnu43Zs2ePli9frg8//FBr1qzRN998o4ceesh1fMmSJZo8ebKeeuop7dq1S08//bQmTZqk119/vdTxAKjEDKAaio2NNe644w7DMAzD6XQaiYmJhq+vrzF27FjX8ZCQECM3N9d1zptvvmm0bt3acDqdrn25ubmGv7+/8cknnxiGYRiNGjUyZs6c6Tqen59vNG7c2PVehmEYN954ozFy5EjDMAwjJSXFkGQkJiZeMM7PPvvMkGScOXPGtS8nJ8eoVauWsXnzZrexQ4cONQYOHGgYhmE88sgjRkREhNvxCRMmFLvWb0kyVqxY8bvHZ82aZXTq1Mn1esqUKYa3t7dx+PBh176PP/7Y8PLyMo4dO2YYhmG0bNnSWLp0qdt1pk+fbkRFRRmGYRj79+83JBnffPPN774vgMqPOQyotlatWqU6deooPz9fTqdTd999t6ZOneo63r59e7d5C99++6327NmjgIAAt+vk5ORo7969ysjI0LFjx9we6V2jRg117ty5WFuiSHJysry9vXXjjTeWOO49e/bo3Llzuvnmm9325+Xl6Q9/+IMkadeuXcUeLR4VFVXi9yiybNkyzZs3T3v37lVWVpYKCgpkt9vdxjRp0kRXXHGF2/s4nU6lpKQoICBAe/fu1dChQzV8+HDXmIKCAgUGBpY6HgCVFwkDqq0ePXpo4cKF8vHxUVhYmGrUcP9xr127ttvrrKwsderUSUuWLCl2rYYNG15SDP7+/qU+JysrS5K0evVqty9qqXBeRllJSkrSoEGDNG3aNMXExCgwMFBvv/22nn322VLH+vLLLxdLYLy9vcssVgAVj4QB1Vbt2rXVqlWrEo+/9tprtWzZMgUHBxf7LbtIo0aN9NVXX6l79+6SCn+T3rp1q6699toLjm/fvr2cTqc2bNig6OjoYseLKhwOh8O1LyIiQr6+vjp48ODvVibatm3rmsBZ5Msvv/T8IX9l8+bNatq0qR577DHXvp9++qnYuIMHD+ro0aMKCwtzvY+Xl5dat26tkJAQhYWFad++fRo0aFCp3h9A1cKkR+BngwYNUoMGDXTHHXfo888/1/79+7V+/Xr985//1OHDhyVJI0eO1L/+9S+tXLlSu3fv1kMPPXTRNRSaNWum2NhY3XfffVq5cqXrmsuXL5ckNW3aVDabTatWrdKJEyeUlZWlgIAAjR07VqNHj9brr7+uvXv3atu2bXr++eddEwkfeOAB/fjjjxo3bpxSUlK0dOlSJSQklOrzXnnllTp48KDefvtt7d27V/PmzbvgBE4/Pz/Fxsbq22+/1eeff65//vOf+tvf/qbQ0FBJ0rRp0zRjxgzNmzdPP/zwg7777ju99tpreu6550oVD4DKjYQB+FmtWrW0ceNGNWnSRP369VPbtm01dOhQ5eTkuCoODz/8sO655x7FxsYqKipKAQEBuvPOOy963YULF+ovf/mLHnroIbVp00bDhw9Xdna2JOmKK67QtGnTNHHiRIWEhCg+Pl6SNH36dE2aNEkzZsxQ27Zt1bt3b61evVrNmzeXVDiv4N1339XKlSvVoUMHLVq0SE8//XSpPu/tt9+u0aNHKz4+Xh07dtTmzZs1adKkYuNatWqlfv366dZbb1WvXr10zTXXuN02OWzYMC1evFivvfaa2rdvrxtvvFEJCQmuWAFUDzbj92ZrAQAA/IwKAwAA8IiEAQAAeETCAAAAPCJhAAAAHpEwAAAAj0gYAACARyQMAADAIxIGAADgEQkDAADwiIQBAAB4RMIAAAA8ImEAAAAe/T/L5jvPcEzAtAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 随机森林\n",
+ "#下面模型都没有剪特征\n",
+ "from sklearn.pipeline import Pipeline\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "from sklearn.preprocessing import MinMaxScaler\n",
+ "\n",
+ "#用pipline将标准化操作与随机森林模型组合起来\n",
+ "pipe = Pipeline([(\"scaler\", MinMaxScaler()), (\"RandomForest\", RandomForestClassifier())])\n",
+ "#给出网格交叉验证的超参数及它们的取值(由于时间关系,这里只简单计算了一下。)\n",
+ "param_grid = {'RandomForest__n_estimators': [7,8,9],'RandomForest__max_depth':[5,6,7]}\n",
+ "#网格搜索\n",
+ "grid2 = GridSearchCV(pipe, param_grid=param_grid, cv=5)\n",
+ "grid2.fit(x_train, y_train)\n",
+ "#给出预测\n",
+ "y_froest_pred=grid2.predict(x_test)\n",
+ "#求出混淆矩阵\n",
+ "cm2 = confusion_matrix(y_test, y_froest_pred )\n",
+ "dis_forest = ConfusionMatrixDisplay(confusion_matrix=cm2)\n",
+ "#显示具体参数\n",
+ "print(\"best cross-validation accuracy:\", grid2.best_score_)\n",
+ "print(\"test set score: \", grid2.score(x_test, y_test))\n",
+ "print(\"best parameters: \", grid2.best_params_)\n",
+ "dis_forest.plot()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "best cross-validation accuracy: 0.9317\n",
+ "test set score: 0.9306383918709963\n",
+ "best parameters: {'svm__C': 100, 'svm__kernel': 'rbf'}\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 88,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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sa5jAQEB6tix4zltiRKpqany9/dXly5dSh33nj17dPr0af3pT39y219YWKj27dtLknbv3u0WhyTFxcWV+j1KvPPOO5o9e7b27t2r3NxcFRcXKzQ01G1MgwYNVK9ePbf3cTqdSk9PV0hIiPbu3asBAwZo4MCBrjHFxcUKCwsrczwAKi4SBlRaXbt21bx582S32xUdHa2AAPcf92rVqrm9zs3NVYcOHbRkyZJzrlW7du2LiiE4OLjM5+Tm5kqSVq1a5fZFLZ2dl+EtycnJ6tu3r6ZMmaKEhASFhYXp7bff1nPPPVfmWF999dVzEhh/f3+vxQrA90gYUGlVq1ZNTZs2LfX4a665Ru+8847q1Klzzm/ZJerWrastW7aoc+fOks7+Jp2SkqJrrrnmvONbt24tp9OpDRs2KD4+/pzjJRUOh8Ph2teyZUsFBgbq4MGDf1iZaNGihWsCZ4mvvvrK84f8jc2bN6thw4Z68sknXft++OGHc8YdPHhQR44cUXR0tOt9/Pz81KxZM0VGRio6Olr79u1T3759y/T+AC4vTHoEftG3b1/VqlVLd955p7744gvt379f69ev19/+9jcdPnxYkjRs2DD94x//0IoVK5SWlqbHHnvsgmsoNGrUSImJiXrooYe0YsUK1zWXLVsmSWrYsKFsNptWrlyp48ePKzc3VyEhIRo1apRGjBihN954Q3v37tW2bdv04osvuiYSPvroo/r+++81evRopaena+nSpVq0aFGZPu+VV16pgwcP6u2339bevXs1e/bs807gDAoKUmJior755ht98cUX+tvf/qa7775bUVFRkqQpU6Zo+vTpmj17tv773//q22+/1cKFC/X888+XKR4AFRsJA/CLqlWrauPGjWrQoIHuuusutWjRQgMGDFB+fr6r4vD444/rgQceUGJiouLi4hQSEqI///nPF7zuvHnz9Je//EWPPfaYmjdvroEDByovL0+SVK9ePU2ZMkXjxo1TZGSkhgwZIkmaNm2aJk6cqOnTp6tFixbq3r27Vq1apcaNG0s6O6/gvffe04oVK9S2bVvNnz9fzzzzTJk+7x133KERI0ZoyJAhateunTZv3qyJEyeeM65p06a666671KNHD3Xr1k1t2rRxu23y4Ycf1oIFC7Rw4UK1bt1aXbp00aJFi1yxAqgcbMYfzdYCAAD4BRUGAADgEQkDAADwiIQBAAB4RMIAAAA8ImEAAAAekTAAAACPSBgAAIBHJAwAAMAjEgYAAOARCQMAAPCIhAEAAHj0/44gU9wkXXRMAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "\n",
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "#用pipline将标准化操作与支持向量机模型组合起来\n",
+ "pipe = Pipeline([(\"scaler\", MinMaxScaler()), (\"svm\", SVC())])\n",
+ "#给出网格交叉验证的超参数及它们的取值\n",
+ "param_grid = {'svm__kernel': ['linear','rbf'],'svm__C':[0.1,1,10,100]}\n",
+ "#网格搜索\n",
+ "grid_svm = GridSearchCV(pipe, param_grid=param_grid, cv=5)\n",
+ "grid_svm.fit(x_train[:10000], y_train[:10000])\n",
+ "#给出预测\n",
+ "y_svm_pred=grid_svm.predict(x_test)\n",
+ "#求出混淆矩阵\n",
+ "cm_svm = confusion_matrix(y_test, y_svm_pred)\n",
+ "dis_svm = ConfusionMatrixDisplay(confusion_matrix=cm_svm)\n",
+ "#显示具体参数\n",
+ "print(\"best cross-validation accuracy:\", grid_svm.best_score_)\n",
+ "print(\"test set score: \", grid_svm.score(x_test, y_test))\n",
+ "print(\"best parameters: \", grid_svm.best_params_)\n",
+ "dis_svm.plot()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 89,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "best cross-validation accuracy: 0.9305\n",
+ "test set score: 0.9290184817023783\n",
+ "best parameters: {'knn__n_neighbors': 8, 'knn__p': 1}\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 89,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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sa5jAQEB6tix4zltiRKpqany9/dXly5dSh33nj17dPr0af3pT39y219YWKj27dtLknbv3u0WhyTFxcWV+j1KvPPOO5o9e7b27t2r3NxcFRcXKzQ01G1MgwYNVK9ePbf3cTqdSk9PV0hIiPbu3asBAwZo4MCBrjHFxcUKCwsrczwAKi4SBlRaXbt21bx582S32xUdHa2AAPcf92rVqrm9zs3NVYcOHbRkyZJzrlW7du2LiiE4OLjM5+Tm5kqSVq1a5fZFLZ2dl+EtycnJ6tu3r6ZMmaKEhASFhYXp7bff1nPPPVfmWF999dVzEhh/f3+vxQrA90gYUGlVq1ZNTZs2LfX4a665Ru+8847q1Klzzm/ZJerWrastW7aoc+fOks7+Jp2SkqJrrrnmvONbt24tp9OpDRs2KD4+/pzjJRUOh8Ph2teyZUsFBgbq4MGDf1iZaNGihWsCZ4mvvvrK84f8jc2bN6thw4Z68sknXft++OGHc8YdPHhQR44cUXR0tOt9/Pz81KxZM0VGRio6Olr79u1T3759y/T+AC4vTHoEftG3b1/VqlVLd955p7744gvt379f69ev19/+9jcdPnxYkjRs2DD94x//0IoVK5SWlqbHHnvsgmsoNGrUSImJiXrooYe0YsUK1zWXLVsmSWrYsKFsNptWrlyp48ePKzc3VyEhIRo1apRGjBihN954Q3v37tW2bdv04osvuiYSPvroo/r+++81evRopaena+nSpVq0aFGZPu+VV16pgwcP6u2339bevXs1e/bs807gDAoKUmJior755ht98cUX+tvf/qa7775bUVFRkqQpU6Zo+vTpmj17tv773//q22+/1cKFC/X888+XKR4AFRsJA/CLqlWrauPGjWrQoIHuuusutWjRQgMGDFB+fr6r4vD444/rgQceUGJiouLi4hQSEqI///nPF7zuvHnz9Je//EWPPfaYmjdvroEDByovL0+SVK9ePU2ZMkXjxo1TZGSkhgwZIkmaNm2aJk6cqOnTp6tFixbq3r27Vq1apcaNG0s6O6/gvffe04oVK9S2bVvNnz9fzzzzTJk+7x133KERI0ZoyJAhateunTZv3qyJEyeeM65p06a666671KNHD3Xr1k1t2rRxu23y4Ycf1oIFC7Rw4UK1bt1aXbp00aJFi1yxAqgcbMYfzdYCAAD4BRUGAADgEQkDAADwiIQBAAB4RMIAAAA8ImEAAAAekTAAAACPSBgAAIBHJAwAAMAjEgYAAOARCQMAAPCIhAEAAHj0/44gU9wkXXRMAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# K最近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "#用pipline将标准化操作与 K最近邻组合起来\n",
+ "pipe = Pipeline([(\"scaler\", MinMaxScaler()), (\"knn\", KNeighborsClassifier())])\n",
+ "#给出网格交叉验证的超参数及它们的取值\n",
+ "param_grid = {'knn__n_neighbors': [5,6,7,8],'knn__p':[1,2,3]}\n",
+ "#网格搜索\n",
+ "grid_knn = GridSearchCV(pipe, param_grid=param_grid, cv=5)\n",
+ "grid_knn.fit(x_train[:10000], y_train[:10000])\n",
+ "#给出预测\n",
+ "y_knn_pred=grid_knn.predict(x_test)\n",
+ "#求出混淆矩阵\n",
+ "cm_knn = confusion_matrix(y_test, y_knn_pred)\n",
+ "dis_knn = ConfusionMatrixDisplay(confusion_matrix=cm_svm)\n",
+ "#显示具体参数\n",
+ "print(\"best cross-validation accuracy:\", grid_knn.best_score_)\n",
+ "print(\"test set score: \", grid_knn.score(x_test, y_test))\n",
+ "print(\"best parameters: \", grid_knn.best_params_)\n",
+ "dis_knn.plot()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "python3.7(base)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/Meng_Xiaofeng/homework-matplotlib.ipynb b/2023/homework/Meng_Xiaofeng/homework-matplotlib.ipynb
index a77a2a4f..02aab147 100644
--- a/2023/homework/Meng_Xiaofeng/homework-matplotlib.ipynb
+++ b/2023/homework/Meng_Xiaofeng/homework-matplotlib.ipynb
@@ -473,7 +473,7 @@
" \n",
" # flowers = ['setosa', 'versicolor', 'virginica']\n",
" # flower_color = ['g', 'r', 'k']\n",
- " for i in range(0, len(data.species)-1):\n",
+ " for i in range(0, len(data.species)):\n",
" if (data.species[i] == 'setosa'):\n",
" ax.scatter(x_data[i], y_data[i], color='g') # 绿色点代表 setosa\n",
" if (data.species[i] == 'versicolor'):\n",
diff --git a/2023/homework/PingShen/homework_credit_scoring.ipynb b/2023/homework/PingShen/homework_credit_scoring.ipynb
new file mode 100644
index 00000000..6ec26829
--- /dev/null
+++ b/2023/homework/PingShen/homework_credit_scoring.ipynb
@@ -0,0 +1,1134 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 1\n",
+ "1 0\n",
+ "2 0\n",
+ "3 0\n",
+ "4 0\n",
+ " ..\n",
+ "112910 0\n",
+ "112911 0\n",
+ "112912 0\n",
+ "112913 0\n",
+ "112914 0\n",
+ "Name: SeriousDlqin2yrs, Length: 108648, dtype: int64"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10), (76053,), (32595,))"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True, random_state=0)#70%的训练集,30%的测试集\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9329344991563123"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here \n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "#创建模型\n",
+ "lr= LogisticRegression(C=100, random_state=1,max_iter=1000)#C:逆正则化参数,越大,权重系数越小\n",
+ "# 训练模型\n",
+ "lr.fit(X_train, y_train) \n",
+ "#评估模型\n",
+ "lr.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.935020708697653"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "#创建模型\n",
+ "tree = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)\n",
+ "# 训练模型\n",
+ "tree.fit(X_train, y_train) \n",
+ "#评估模型\n",
+ "tree.score(X_test, y_test)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9327197422917626"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "#创建模型\n",
+ "forest = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10, # The number of trees in the forest.\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "# 训练模型\n",
+ "forest.fit(X_train, y_train)\n",
+ "#评估模型\n",
+ "forest.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# ## your code here\n",
+ "# from sklearn.svm import SVC\n",
+ "# #创建模型:线性模型\n",
+ "# svm1 = SVC(kernel='linear', random_state=0, C=10.0)\n",
+ "# # 训练模型\n",
+ "# svm1.fit(X_train, y_train) \n",
+ "# #评估模型\n",
+ "# svm1.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9333640128854118"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.svm import SVC\n",
+ "#创建模型:核支持向量机,高斯核\n",
+ "svm = SVC(kernel='rbf', random_state=0, C=1.0,gamma=0.2)\n",
+ "# 训练模型\n",
+ "svm.fit(X_train, y_train) \n",
+ "#评估模型\n",
+ "svm.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9321061512501917"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "#创建模型\n",
+ "knn = KNeighborsClassifier(n_neighbors=5, p=2, metric='minkowski')\n",
+ "# 训练模型\n",
+ "knn.fit(X_train, y_train) \n",
+ "#评估模型\n",
+ "knn.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9329344991563123"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "## your code here\n",
+ "#在测试集上预测\n",
+ "lr_pred = lr.predict(X_test)\n",
+ "#计算准确度 \n",
+ "lr.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.935020708697653"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#在测试集上预测\n",
+ "tree_pred = tree.predict(X_test)\n",
+ "#计算准确度 \n",
+ "tree.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9327197422917626"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#在测试集上预测\n",
+ "forest_pred = forest.predict(X_test)\n",
+ "#计算准确度 \n",
+ "forest.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9333640128854118"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#在测试集上预测\n",
+ "svm_pred =svm.predict(X_test)\n",
+ "#计算准确度 \n",
+ "svm.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9321061512501917"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#在测试集上预测\n",
+ "knn_pred = knn.predict(X_test)\n",
+ "#计算准确度 \n",
+ "knn.score(X_test, y_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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+c/1V3/1Vzpy5Ih++9vf6vjx45f1eG1tberRo4diYmKu8kovLioqSvv27ZNlWTpx4oQqKipUVFSk1atX64MPPpDH47nsx3a73V2ar6io0NChQ/XUU08pPj5emzdv1iOPPKKoqChNmDDhstZgWZba29sVGsp/soEuswDccpqamixJ1vbt2887c+LECSs3N9fq06ePFRkZaT3wwANWTU2Nffy5556z7rrrLuv111+3+vfvbzkcDuvs2bPWiBEjrH/6p3+y544fP255vV7r9ttvt8LDw62xY8dan332WYfH+ably5dbffv2ta+///771r333mv17NnTcrlcVnp6unXgwAHLsixr9erVlsvl6rD+I0eOWLGxsdbDDz9s33bu2o4cOWJlZWVZt912m9WvXz/rrbfesvr27WstX77cnpFkbdy40bIsy9q/f78lydqwYYM1cuRIKzw83Bo6dKhVUVFx3p+jZVnW97//fesf/uEf7MdwOBzW7t27g2b+8z//07rzzjuts2fPWu+//74lySopKbFSUlKsHj16WNu2bbNqamqskSNHWr169bIiIyOtu+++u8PjAAjGS1fALahXr17q1auX3n33XQUCgQ7HLcvS+PHj5fP5tGXLFlVXV+vuu+/WqFGjgnZ8vvjiC/3iF7/Qhg0bVFNT0+lz5eTkaM+ePdq0aZMqKytlWZa+//3vq62t7ZLWeubMGU2ePFkjRozQRx99pMrKSs2aNeuiv7AxLi5ODz/8sDZt2nTe32Cdk5OjAwcOaNu2bfrVr36lV199VY2NjRdd07PPPqvCwkLV1NRo4MCBeuihh3TmzJnzzvv9fnunq1+/fho9erRWr14dNLN69Wrl5OQEndeTTz6poqIi1dXVaejQoXr44Yd1xx13aPfu3aqurtbTTz/NN30DF9PdpQWge/zqV7+yoqOjrdtuu81KT0+3FixYYH344YeWZVnWb3/7WysqKsr6v//7v6D7/PVf/7W1atUqy7K+2onp0aOH1djYGDTzzV2Tzz77zJJkffDBB/bxL7/80goPD7d+8Ytf2I9zoR2dY8eOXXD36Xw7OpZlWStXrrQkWUeOHOmwtn379lmSrKqqKnu+rq7OknTRHZ2f/exn9vG9e/dakqy6urpO1/DLX/7SCgsLs2pra+3b3n77bSs6Otr++dbU1FgOh8Pav3+/ZVmWvaPz7rvvBj1WZGSktWbNmk6fB0Dn2NEBblFTp07V4cOHtWnTJmVmZmr79u26++67tWbNGlVXV+vUqVPq3bu3vfvTq1cv7d+/X3/84x/tx+jbt6/69Olz3ueoq6tTaGioUlNT7dt69+6tpKQk1dXVXdI6Y2JilJOTo8zMTE2YMEE//elP1dDQcEn3tf7/b7jpbPfn67Xdc8899m1/8zd/o9tvv/2ijzt06FD7zwkJCZLU6U7Q9u3blZOTo9dee03f/e537dsnT56s0NBQbdy4UZL0xhtv6IEHHlC/fv2C7v/NtUnS/Pnz9dhjj2n06NFavHhx0P8tAHSO0AFuYbfddpvGjBmjf/u3f1NFRYVycnL03HPP6ezZs0pISFBNTU3QZd++ffrnf/5n+/4REREXfHzrPL9Kz7IsOz6+9a1vdZg792Wt1atXq7KyUunp6Xr77bc1cOBAVVVVXfT86urqFBUVpd69e593bRd7Cawz33y56Ov7nz17Nmhmx44dmjBhgpYtW6ZHHnkk6FhYWJi8Xq9Wr16t1tZWrV+/Xo8++miH5zn357tw4ULt3btX48eP17Zt2zR48GA7lgB0jtABYBs8eLBaWlp09913y+fzKTQ0VN/5zneCLrGxsV16vDNnzmjnzp32bceOHdNnn32mQYMGSZL69Okjn88XFDudvd/ne9/7nhYsWKCKigolJydr/fr1F3zuxsZGrV+/XpMnT9a3vtXxP3WDBg3SmTNntGfPHvu2ffv26cSJE5d8fuezfft2jR8/XosXL9asWbM6nXnsscf03nvv6dVXX1VbW5umTJlySY89cOBA/ehHP1JpaammTJnS4b0+AIIROsAt6NixY3rwwQf11ltv6aOPPtL+/fv1y1/+UkuWLNGkSZM0evRopaWlafLkyfrNb36jAwcOqKKiQv/yL/8SFAYXM2DAAE2aNEm5ubkqLy/Xhx9+qL//+7/Xt7/9bU2aNEnSV1/id/ToUS1ZskR//OMf9corr2jr1q32Y+zfv18LFixQZWWl/vznP6u0tDQolKSvdmd8Pp8aGhpUV1enN954Q+np6XK5XFq8eHGna0tKStLYsWOVm5urnTt3qrq6Wo899pjCw8Mv86f6la8jJy8vT1OnTpXP55PP5+vwsf1BgwZp2LBheuqpp/TQQw9d9HlPnz6tuXPnavv27frzn/+sDz74QLt37w76OQDoiNABbkG9evVSamqqli9frvvvv1/Jycn613/9V+Xm5mrFihVyOBzasmWL7r//fj366KMaOHCgfvjDH+rAgQOKj4/v0nOtXr1aKSkpysrKUlpamizL0pYtW+yXfwYNGqRXX31Vr7zyiu666y7t2rVLhYWF9v179uypTz/9VFOnTtXAgQM1a9YszZ07V7Nnz7ZnmpublZCQoG9/+9tKS0vTqlWrNGPGDP3hD3+w30NzvrUlJiZqxIgRmjJlimbNmqW4uLgu/jSDrVmzRn/5y19UVFSkhIQE+9LZjs3MmTPV2tra6ctW5woJCdGxY8f0yCOPaODAgZo2bZrGjRunH//4x1e0XsB0Dut8L6IDwC2oX79+ys/Pvy6/xuL5559XcXGxPv7442v+XMCtih0dALjOTp06pd27d+u//uu/lJeX193LAYxG6ADAdTZ37lzdd999GjFixCW9bAXg8vHSFQAAMBY7OgAAwFiEDgAAMBahAwAAjEXoAAAAYxE6AADAWIQOAAAwFqEDAACMRegAAABj/T+VuqUyqDbNbQAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "y_test.value_counts().plot(kind='bar')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'lr')"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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TqeeeOIJ3XbbbQ3aBAYGmo4TwIWDpAGtVkhIiLp27epx+2uvvVYlJSXy9fXV5Zdffs42PXr0UG5urn75y1+69uXm5v7gNbt166agoCC9++67uu+++xoc9/f3l3T6L/MzoqOjdemll+qrr77SXXfddc7r9uzZU8uXL1d1dbUrMfmxOM5l586dqqur07PPPqs2bU4Pb3rttdcatKurq9POnTv1s5/9TJK0d+9eHTt2TFdeeaWk05/b3r17vfqsAVycSBqA7wwePFgpKSkaNWqUZs+erfj4eH3zzTdau3atRo0apT59+ujXv/61xowZoz59+uj666/XihUrtHv3bnXp0uWc1wwMDNTDDz+sadOmyd/fX/3791dZWZl2796tcePGKSoqSkFBQcrJyVHHjh0VGBgou92uGTNmaNKkSQoLC9OwYcPkcDi0c+dOlZeXa/LkyUpPT9f06dM1btw4/ed//qf279+vZ555xqv3e8UVV6iurk4vvPCChg8frg8++EB/+tOfGrTz8/PTxIkT9fzzz8vPz08PPfSQ+vbt60oiHnvsMaWlpSkuLk7//u//rjZt2ujjjz/WJ598oieffNL7/yMAXLCYPQF8x2azae3atbrhhht07733qnv37rrzzju1f/9+12yHO+64Q4899pgefvhhJSUl6cCBA/rVr371o9f9/e9/rylTpuixxx5Tjx49dMcdd6i0tFTS6fECzz//vBYvXqzY2FiNHDlSknTffffpL3/5i5YuXarExEQNGDBAS5cudU3RvOSSS7R69Wrt2bNHvXv31vTp0zV79myv3u8111yjuXPnavbs2UpISNCKFSuUnZ3doF1wcLAefvhhpaenKyUlRUFBQVq5cqXr+JAhQ/T3v/9d69ev13XXXae+fftq7ty56tSpk1fxALjw2Yym6BwFAACtHpUGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgEZIGAADgkf8HdtYZUMWwN9EAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import ConfusionMatrixDisplay, confusion_matrix\n",
+ "import matplotlib.pyplot as plt\n",
+ "cm = confusion_matrix(y_test,lr_pred,labels=lr.classes_)\n",
+ "\n",
+ "cm_display = ConfusionMatrixDisplay(cm,display_labels=lr.classes_).plot()\n",
+ "plt.title('lr')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0, 1])"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "lr.classes_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Xr3g5OSE4cOHo7i42Gz7zp07ER4eDicnJ3Tr1g0LFixAXV2d1fkQUcvGooFkw9nZGbW1teLrn376CVu3bsUHH3wgDg+MHDkSWq0Wu3fvRl5eHu655x4MHToUly5dAgBs3boVr7zyChYuXIhjx47Bz8+vwZf5jV544QUsXrwYL730Ek6ePIktW7bA19cXQP0XPwB89tlnKCkpwYcffggAWL9+PebNm4eFCxeisLAQixYtwksvvYSNGzcCAKqqqhAXF4egoCDk5eVh/vz5SEtLs/ozsbOzw5tvvomCggJs3LgRe/fuxdy5c81irl69ioULF2Ljxo346quvUFFRgfHjx4vbP/30U0ycOBEpKSk4efIk1q1bh4yMDLEwIqI2RCBqgyZNmiSMGTNGfH348GHBy8tLSEhIEARBEF555RXB0dFRKCsrE2M+//xzwd3dXbh27ZrZsbp37y6sW7dOEARBiIqKEqZNm2a2PSIiQujTp89Nz11RUSGoVCph/fr1N83z1KlTAgDh+PHjZusDAgKELVu2mK179dVXhaioKEEQBGHdunWCp6enUFVVJW5fu3btTY/1e126dBFWrlz5h9u3bt0qeHl5ia83bNggABByc3PFdYWFhQIA4fDhw4IgCML9998vLFq0yOw4mzZtEvz8/MTXAIRt27b94XmJqHXgnAZqsz7++GO0a9cOdXV1qK2txZgxY/DWW2+J27t06YIOHTqIr/Py8lBZWQkvLy+z41RXV+Pnn38GABQWFmLatGlm26OiorBv376b5lBYWAiDwYChQ4danHd5eTmKi4sxZcoUJCcni+vr6urE+RKFhYXo06cPXFxczPKw1r59+7Bo0SKcPHkSFRUVqKurw7Vr11BVVQVXV1cAgIODA/r37y/uc9ddd6F9+/YoLCzEvffei7y8PBw9etSss2A0GnHt2jVcvXrVLEciat1YNFCb9eCDD2Lt2rVwdHSEv79/g4mO178UrzOZTPDz88P+/fsbHKuxlx06OztbvY/JZAJQP0QRERFhts3e3h4AINjgifZnzpzBn/70J0ybNg2vvvoqPD09kZOTgylTppgN4wD1l0ze6Po6k8mEBQsWYOzYsQ1inJycJOdJRC0HiwZqs1xdXdGjRw+L4++55x5otVo4ODiga9euN40JDg5Gbm4uHn30UXFdbm7uHx6zZ8+ecHZ2xueff44nnniiwXalUgmg/i/z63x9fdGxY0f88ssvmDBhwk2PGxISgk2bNqG6ulosTG6Vx80cO3YMdXV1WL58Oezs6qc3bd26tUFcXV0djh07hnvvvRcAUFRUhMuXL+Ouu+4CUP+5FRUVWfVZE1HrxKKB6DfDhg1DVFQU4uPjsXjxYgQFBeH8+fPYvXs34uPj0b9/fzz99NOYNGkS+vfvj/vuuw+bN2/GiRMn0K1bt5se08nJCc899xzmzp0LpVKJQYMGoby8HCdOnMCUKVPg4+MDZ2dnZGVloVOnTnBycoJarcb8+fORkpICd3d3xMbGwmAw4NixY9DpdJg9ezYSExMxb948TJkyBX/7299w+vRpLFu2zKr32717d9TV1eGtt97CqFGj8NVXX+Htt99uEOfo6IhZs2bhzTffhKOjI2bOnInIyEixiHj55ZcRFxeHgIAA/OUvf4GdnR2+/fZbfPfdd3jttdes/z+CiFosXj1B9BuFQoHdu3fjgQcewOOPP45evXph/PjxOH36tHi1w7hx4/Dyyy/jueeeQ3h4OM6cOYOnnnrqlsd96aWXMGfOHLz88ssIDg7GuHHjUFZWBqB+vsCbb76JdevWwd/fH2PGjAEAPPHEE3jnnXeQkZGBsLAwDB48GBkZGeIlmu3atcPOnTtx8uRJ9OvXD/PmzcPixYuter99+/bFihUrsHjxYoSGhmLz5s1IT09vEOfi4oLnnnsOiYmJiIqKgrOzMzIzM8XtMTEx+Pjjj5GdnY0BAwYgMjISK1asQJcuXazKh4haPoVgi8FRIiIiavPYaSAiIiKLsGggIiIii7BoICIiIouwaCAiIiKLsGggIiIii7BoICIiIouwaCAiIiKLsGggIiIii7BoICIiIouwaCAiIiKLsGggIiIii7BoICIiIov8PxuJPuHH4w6JAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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IykpCU5OToiOjgYAqNVqzJgxA/Pnz4eHhwfc3d2RkJCA/v37Y/To0QCAfv36YezYsYiNjcWGDRsAALNmzUJkZCQCAgIAAGFhYQgMDERMTAxWrFiB69evIyEhAbGxsZatnACLBiIikgkjjLj1E15uf74lrly5gpiYGBQUFECtVmPAgAFIS0vDmDFjAAALFixAZWUl5syZA51Oh5CQEOzbt89kUujq1athZ2eHyZMno7KyEqNGjUJKSgpsbW3FmK1btyIuLg5hYWEAgAkTJmDt2rXicVtbW+zZswdz5szB8OHD4ejoiOjoaKxcudLin0G7vk9DaWkp1Go1dD/14ERI6rDCtfe0dgpELaZOqMVB7IJer7f4r15zNXxX5P94l+TVE759f23RXNs6ftMSERGRWTg8QUREsiB1MqM1JkK2dywaiIhIFowQYGDRIAmHJ4iIiMgs7DQQEZEscHhCOhYNREQkCwZBgEHCgkEp53YUHJ4gIiIis7DTQEREsmD8bZNyvtyxaCAiIlkwSFw9IeXcjoJFAxERyYJBqN+knC93nNNAREREZmGngYiIZIFzGqRj0UBERLJghAIGKCSdL3ccniAiIiKzsNNARESyYBTqNynnyx2LBiIikgWDxOEJKed2FByeICIiIrOw00BERLLAToN0LBqIiEgWjIICRkHC6gkJ53YUHJ4gIiIis7DTQEREssDhCelYNBARkSwYYAODhAa7wYq5tFcsGoiISBYEiXMaBM5p4JwGIiIiMg87DUREJAuc0yAdiwYiIpIFg2ADgyBhTgNvI83hCSIiIjIPOw1ERCQLRihglPC3shFsNbBoICIiWeCcBuk4PEFERERmYaeBiIhkQfpESA5PsGggIiJZqJ/TIOGBVRye4PAEERERmYedBiIikgWjxGdPcPUEiwYiIpIJzmmQjkUDERHJghE2vE+DRJzTQERERGZhp4GIiGTBIChgkPB4aynndhQsGoiISBYMEidCGjg8weEJIiIiMg87DUREJAtGwQZGCasnjFw9waKBiIjkgcMT0nF4goiIiMzCTgMREcmCEdJWQBitl0q7xaKBiIhkQfrNndic50+AiIiIzMJOAxERyYL0Z0/w72wWDUREJAtGKGCElDkNvCMkiwYiIpIFdhqk40+AiIiIzMJOAxERyYL0mzvx72z+BIiISBaMgkLyZonk5GQMGTIE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5s2bh+joaCxatAgzZszAiy++iAsXLmDlypUWfd6ePXuirq4Ob7/9NsaPH49vvvkG77zzTqM4e3t7zJ07F2+99Rbs7e3xzDPPYOjQoWIRsXjxYkRGRsLX1xd/+ctfYGNjg++//x4//PADXn31Vcv/H0FEbRZXTxD9RqFQYO/evXjwwQfx5JNPok+fPpg6dSouXLggrnaYMmUKFi9ejOeffx7BwcG4ePEi/v73v9/yui+99BLmz5+PxYsXo1+/fpgyZQqKiooA1M8XeOutt7BhwwZotVpMnDgRADBz5kz8+9//RkpKCvr3748RI0YgJSVFXKLZqVMn7N69G2fOnMGgQYOwaNEiLF++3KLPe88992DVqlVYvnw5goKCsHXrViQnJzeKc3JywvPPP4/o6GiEhobC0dERqamp4vHw8HB8+umnSE9Px5AhQzB06FCsWrUKfn5+FuVDRG2fQrDG4CgRERF1eOw0EBERkVlYNBAREZFZWDQQERGRWVg0EBERkVlYNBAREZFZWDQQERGRWVg0EBERkVlYNBAREZFZWDQQERGRWVg0EBERkVlYNBAREZFZWDQQERGRWf4fbveDXgodAv8AAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAHFCAYAAABxS8rQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMyklEQVR4nO3deVxU5f4H8M+wDYswgggDibgjBC6hIVppqSBXVLKuFkVqhpUml5+SLVbaIqTmUnk1r5WYadjNtEUjya1IcEGpVLLMBUwQ1GFYRJaZ5/cHcW4jljMckOV83q/Xef2ac57zzPfMj+t85/s8zzkqIYQAERER0Q1YNXcARERE1DowaSAiIiKzMGkgIiIiszBpICIiIrMwaSAiIiKzMGkgIiIiszBpICIiIrMwaSAiIiKzMGkgIiIiszBpIEXZtGkTbr31Vjg4OEClUiE7O7u5QzKRmJiIrVu3NncYDTZ58mR06dKlucMgoibCpIEUo6ioCDExMejevTtSU1ORkZGBXr16NXdYJlp70kBEbZtNcwdAdLP88ssvqK6uxsMPP4yhQ4fK7u/KlStwdHRshMiaX0VFBezt7aFSqZo7FCJqwVhpIEWYPHky7rjjDgDAxIkToVKpMGzYMADA559/jtDQUDg6OsLZ2RkjR45ERkaGyfnz58+HSqXC4cOHcf/998PV1RXdu3cHAAghsHLlSvTr1w8ODg5wdXXF/fffj1OnTpn0ceTIEURGRsLDwwNqtRre3t4YPXo0zp07BwBQqVQoLy/HunXroFKpTGI0h0qlwlNPPYXVq1ejV69eUKvVCAgIQEpKikm75ORkqFQq7NixA48++ig6duwIR0dHVFZWAqgdwgkNDYWTkxPatWuH8PBwHDlypN77JScnw8/PD2q1Gv7+/vjggw/MjpWIWicmDaQIL774Iv79738DqB0CyMjIwMqVK7Fx40aMGzcOLi4u+Oijj/Dee+9Bp9Nh2LBhSE9Pr9fP+PHj0aNHD/z3v//FO++8AwB4/PHHER8fjxEjRmDr1q1YuXIljh07hsGDB+PChQsAgPLycowcORIXLlzAv//9b6SlpWH58uXo3LkzSktLAQAZGRlwcHDAP/7xD2RkZEgxWuLzzz/HW2+9hVdeeQWffPIJfH198eCDD+KTTz6p1/bRRx+Fra0t1q9fj08++QS2trZITEzEgw8+iICAAHz88cdYv349SktLceedd+L48ePSucnJyZgyZQr8/f2xefNmvPDCC3j11Vexa9cui+IlolZGECnE7t27BQDx3//+VwghhMFgEN7e3iIoKEgYDAapXWlpqfDw8BCDBw+W9s2bN08AEC+99JJJnxkZGQKAWLJkicn+vLw84eDgIObMmSOEEOLQoUMCgNi6devfxujk5CQmTZrUoOsDIBwcHERBQYG0r6amRvTu3Vv06NFD2rd27VoBQDzyyCMm5+fm5gobGxsxc+ZMk/2lpaVCq9WKCRMmCCH+97nddtttwmg0Su3OnDkjbG1tha+vb4PiJ6KWj5UGUqwTJ07g/PnziImJgZXV//6n0K5dO9x3333IzMzElStXTM657777TF5/+eWXUKlUePjhh1FTUyNtWq0Wffv2xZ49ewAAPXr0gKurK5555hm88847Jr/aG9Pw4cPh6ekpvba2tsbEiRNx8uRJaRjkr67l66+/Rk1NDR555BGTa7G3t8fQoUOla6n73KKjo03mQPj6+mLw4MFNcl1E1DIwaSDFunTpEgDAy8ur3jFvb28YjUbodDqT/de2vXDhAoQQ8PT0hK2trcmWmZmJixcvAgA0Gg327t2Lfv364fnnn8ett94Kb29vzJs3D9XV1Y12TVqt9i/31V3v310LAAwcOLDetWzatEm6lrp+/u69iKht4uoJUqwOHToAAPLz8+sdO3/+PKysrODq6mqy/9rVBe7u7lCpVPjuu++gVqvr9fPnfUFBQUhJSYEQAj/++COSk5PxyiuvwMHBAc8++2xjXBIKCgr+cl/d9da53rUAkOZC/JW6fv7uvYiobWKlgRTLz88Pt9xyCzZu3AghhLS/vLwcmzdvllZU/J3IyEgIIfD7779jwIAB9bagoKB656hUKvTt2xfLli1D+/btcfjwYemYWq1GRUVFg69p586dUsUAAAwGAzZt2oTu3bujU6dOf3tueHg4bGxs8Ntvv133WgYMGACg9nPz8vLCRx99ZPK5nT17Fvv27Wtw7ETU8rHSQIplZWWFRYsW4aGHHkJkZCQef/xxVFZWYvHixSguLsbrr79+wz6GDBmCadOmYcqUKTh06BDuuusuODk5IT8/H+np6QgKCsKTTz6JL7/8EitXrkRUVBS6desGIQQ+/fRTFBcXY+TIkVJ/QUFB2LNnD7744gt4eXnB2dkZfn5+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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAHFCAYAAABxS8rQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHuElEQVR4nO3de1xUdf4/8NdwGy7CyEUYJpHwhhjkBRXRNjEVZEVF21WXIjXFXExildUtv+tlVyHT1NLVTFtxDcV+X/OWxkIplileSEqU6IaKCYKKgyJymTm/P8zzdcR0hjMjl/N6Ph7n8XDOeZ8z7yFz3rw/n/M5CkEQBBARERE9glVTJ0BEREQtA4sGIiIiMgqLBiIiIjIKiwYiIiIyCosGIiIiMgqLBiIiIjIKiwYiIiIyCosGIiIiMgqLBiIiIjIKiwYiMtmTTz6JSZMmNXUaRPSYsWggIiIio7BoIJKRW7duNXUKRNSCsWggAlBeXo5p06bBx8cHSqUS7dq1w8CBA/HZZ58hMTERTk5OqKysbHDe+PHj4eXlhbq6OgB32vZRUVH45JNP0KtXLzg4OCAgIACffPIJACA1NRUBAQFwcnJCv379cPLkSZPyzM7OhkKhwIcffohZs2ZBrVbDwcEBgwYNwqlTpwxiJ02ahDZt2uD06dMIDw+Hs7MzhgwZAgCora3F4sWL0a1bN/HzTp48GeXl5QbXqKurw5w5c6BWq+Ho6IhnnnkGx48fNylnImo9WDQQAYiNjcWuXbswf/58ZGZmYuPGjRg6dCiuXr2Kl19+Gbdu3cJHH31kcM7169exe/duvPjii7C1tRX3f/PNN3j99dcxd+5cfPzxx1CpVBg7diwWLFiAjRs3Ijk5GWlpadBqtYiKikJ1dbXJ+b7xxhv4+eefsXHjRmzcuBGXLl1CWFgYfv75Z4O42tpajBo1Cs899xx2796NRYsWQa/XY/To0XjzzTcRExODffv24c0330RWVhbCwsIM8omLi8Py5cvx0ksvYffu3Xj++ecxduxYVFRUmJwzEbUCAhEJbdq0ERITE3/zeO/evYUBAwYY7Fu7dq0AQDh9+rS4z9fXV3BwcBAuXrwo7svLyxMACN7e3kJVVZW4f9euXQIAYc+ePUbnefDgQQGA0Lt3b0Gv14v7z507J9ja2gpTp04V902cOFEAIPz73/82uMa2bdsEAMKOHTsM9p84cUIAIKxdu1YQBEEoKCgQAAh/+ctfDOLS0tIEAMLEiRONzpuIWgd2GogA9OvXD6mpqVi8eDFycnLE4Ya7Jk+ejCNHjqCwsFDct2nTJvTt2xeBgYEGsT179sQTTzwhvg4ICAAAhIWFwdHRscH+8+fPm5xvTEwMFAqF+NrX1xcDBgzAwYMHG8Q+//zzBq8/+eQTtG3bFiNHjkR9fb249ezZE2q1GtnZ2QAgXuuFF14wOH/cuHGwsbExOWciavlYNBAB2L59OyZOnIiNGzciNDQUbm5ueOmll1BaWgrgzhenUqlEamoqAODs2bM4ceIEJk+e3OBabm5uBq/t7Oweuv/27dsm56tWqx+47+rVqwb7HB0d4eLiYrDv8uXLuH79Ouzs7GBra2uwlZaW4sqVKwAgXuv+97KxsYG7u7vJORNRy8dfF4gAeHh4YNWqVVi1ahUuXLiAPXv24G9/+xvKysqQkZEBV1dXjB49Gv/5z3+wePFibNq0Cfb29vjTn/7UJPneLWbu33f/l/m93Yi7PDw84O7ujoyMjAde29nZGQDEa5WWlhp0Turr6xsUJ0QkD+w0EN2nQ4cOePXVVzFs2DB8/fXX4v7Jkyfj0qVL2L9/Pz788EOMGTMGbdu2bZIct23bBkEQxNfnz5/HkSNHEBYW9shzo6KicPXqVeh0OvTp06fB5u/vDwDitdLS0gzO/+ijj1BfX2+2z0JELQc7DSR7Wq0WgwcPRkxMDLp16wZnZ2ecOHECGRkZGDt2rBgXHh6O9u3bIz4+HqWlpQ8cmnhcysrKMGbMGMTFxUGr1WLBggWwt7fH66+//shzJ0yYgLS0NPz+97/Ha6+9hn79+sHW1hYXL17EwYMHMXr0aIwZMwYBAQF48cUXsWrVKtja2mLo0KHIz8/H8uXLGwx5EJE8sGgg2bO3t0dISAi2bNmCc+fOoa6uDh06dMDcuXMxZ84cMc7KygovvfQSkpOT4ePjI6550BSSk5PFORWVlZXo168f0tPT0alTp0eea21tjT179uCdd97Bli1bkJKSAhsbG7Rv3x6DBg1CUFCQGPvBBx/Ay8sLqampePfdd9GzZ0/s2LEDEyZMsOTHI6JmSiHc2+MkomYtOzsbgwcPxv/7f/8Pf/jDH5o6HSKSGc5pICIiIqNweIKoGRAEATqd7qEx1tbWjykbIqIHY9FA1AwcOnQIgwcPfmjMpk2bMGnSJHBEkYiaCuc0EDUDN27cMFht8kH8/Py4qBIRNSkWDURERGQUToQkIiIio7ToOQ16vR6XLl2Cs7PzA5fLJSKi5k0QBNy4cQMajQZWVpb7Pfb27duora2VfB07OzvY29ubIaOWqUUXDZcuXYKPj09Tp0FERBIVFxejffv2Frn27du34efbBqVlD79DyRhqtRpFRUWyLRxadNFw98E6579+Ei5tONJCrdOYrkGPDiJqoepRh8PYL/57bgm1tbUoLdPhfO6TcHFu/HdF5Q09fIPPoba21qiiYd26dVi3bh3OnTsHAHjqqacwf/58REZGArjTZVm0aBHef/99VFRUICQkBP/617/w1FNPideoqalBUlIStm3bhurqagwZMgRr1641KLAqKiqQkJCAPXv2AABGjRqF1atXGzwb58KFC5gxYwYOHDgABwcHxMTEYPny5eLTdo3VoouGu0MSLm2sJP1FIGrObBS2TZ0CkeX8OhX/cQwxt3FWoI1z499HD9PObd++Pd5880107twZALB582aMHj0ap06dwlNPPYW33noLK1asQGpqKrp27YrFixdj2LBhKCwsFIuoxMRE7N27F+np6XB3d8fs2bMRFRWF3Nxcce2WmJgYXLx4UXxy7bRp0xAbG4u9e/cCAHQ6HUaMGIF27drh8OHDuHr1KiZOnAhBELB69WqTPlOLvnuisrISKpUKFd93ZNFArVaEpmdTp0BkMfVCHbKxG1qt1mIPQrv7XVFW6Cu50+Dpf15Srm5ubli2bBlefvllaDQaJCYmYu7cuQDudBW8vLywdOlSvPLKK9BqtWjXrh22bNmC8ePHA/i/Yfn9+/cjIiICBQUF6N69O3JychASEgIAyMnJQWhoKL777jv4+/vj008/RVRUFIqLi6HRaAAA6enpmDRpEsrKykz6LPymJSIiWdBDkLwBd4qQe7eamppHvrdOp0N6ejqqqqoQGhqKoqIilJaWIjw8XIxRKpUYNGgQjhw5AgDIzc1FXV2dQYxGo0FgYKAYc/ToUahUKrFgAID+/ftDpVIZxAQGBooFAwBERESgpqYGubm5Jv0MWTQQERGZwMfHByqVStxSUlJ+M/b06dNo06YNlEolpk+fjp07d6J79+4oLS0FAHh5eRnEe3l5icdKS0thZ2cHV1fXh8Z4eno2eF9PT0+DmPvfx9XVFXZ2dmKMsVr0nAYiIiJj6aGHXuL5wJ07Pe5t6SuVyt88x9/fH3l5ebh+/Tp27NiBiRMn4tChQ+Lx++dyCILwyPkd98c8KL4xMcZgp4GIiGRBJwiSNwBwcXEx2B5WNNjZ2aFz587o06cPUlJS0KNHD7zzzjtQq9UA0OA3/bKyMrEroFarUVtbi4qKiofGXL58ucH7lpeXG8Tc/z4VFRWoq6tr0IF4FBYNREREj4kgCKipqYGfnx/UajWysrLEY7W1tTh06BAGDBgAAAgODoatra1BTElJCfLz88WY0NBQaLVaHD9+XIw5duwYtFqtQUx+fj5KSkrEmMzMTCiVSgQHB5uUP4cniIhIFu6dzNjY803xxhtvIDIyEj4+Prhx4wbS09ORnZ2NjIwMKBQKJCYmIjk5GV26dEGXLl2QnJwMR0dHxMTEAABUKhWmTJmC2bNnw93dHW5ubkhKSkJQUBCGDh0KAAgICMDw4cMRFxeH9evXA7hzy2VUVBT8/f0BAOHh4ejevTtiY2OxbNkyXLt2DUlJSYiLizP5LhAWDUREJAt6CNA9xqLh8uXLiI2NRUlJCVQqFZ5++mlkZGRg2LBhAIA5c+aguroa8fHx4uJOmZmZBgtdrVy5EjY2Nhg3bpy4uFNqaqq4RgMApKWlISEhQbzLYtSoUVizZo143NraGvv27UN8fDwGDhxosLiTqbhOA1Ezx3UaqDV7nOs0FH3nDWcJ3xU3bujh163Eork2d+w0EBGRLDzu4YnWiEUDERHJwr13QDT2fLljT5+IiIiMwk4DERHJgv7XTcr5cseigYiIZEEn8e4JKee2FiwaiIhIFnTCnU3K+XLHOQ1ERERkFHYaiIhIFjinQToWDUREJAt6KKCDaU91vP98uePwBBERERmFnQYiIpIFvXBnk3K+3LFoICIiWdBJHJ6Qcm5rweEJIiIiMgo7DUREJAvsNEjHooGIiGRBLyigFyTcPSHh3NaCwxNERERkFHYaiIhIFjg8IR2LBiIikgUdrKCT0GDXmTGXlopFAxERyYIgcU6DwDkNnNNARERExmGngYiIZIFzGqRj0UBERLKgE6ygEyTMaeAy0hyeICIiIuOw00BERLKghwJ6Cb8r68FWA4sGIiKSBc5pkI7DE0RERGQUdhqIiEgWpE+E5PAEiwYiIpKFO3MaJDywisMTHJ4gIiIi47DTQEREsqCX+OwJ3j3BooGIiGSCcxqkY9FARESyoIcV12mQiHMaiIiIyCjsNBARkSzoBAV0Eh5vLeXc1oJFAxERyYJO4kRIHYcnODxBRERExmGngYiIZEEvWEEv4e4JPe+eYNFARETywOEJ6Tg8QUREREZhp4GIiGRBD2l3QOjNl0qLxaKBiIhkQfriTmzO8ydARERERmGngYiIZEH6syf4ezaLBiIikgU9FNBDypwGrgjJooGIiGSBnQbp+BMgIiIio7DTQEREsiB9cSf+ns2igYiIZEEvKKCXsk4Dn3LJsomIiIiMw04DERHJgl7i8AQXd2KngYiIZOLuUy6lbKZISUlB37594ezsDE9PT0RHR6OwsNAgZtKkSVAoFAZb//79DWJqamowc+ZMeHh4wMnJCaNGjcLFixcNYioqKhAbGwuVSgWVSoXY2Fhcv37dIObChQsYOXIknJyc4OHhgYSEBNTW1pr0mVg0EBERWcChQ4cwY8YM5OTkICsrC/X19QgPD0dVVZVB3PDhw1FSUiJu+/fvNziemJiInTt3Ij09HYcPH8bNmzcRFRUFnU4nxsTExCAvLw8ZGRnIyMhAXl4eYmNjxeM6nQ4jRoxAVVUVDh8+jPT0dOzYsQOzZ8826TNxeIKIiGRBBwV0EhZoMvXcjIwMg9ebNm2Cp6cncnNz8eyzz4r7lUol1Gr1A6+h1WrxwQcfYMuWLRg6dCgA4MMPP4SPjw8+++wzREREoKCgABkZGcjJyUFISAgAYMOGDQgNDUVhYSH8/f2RmZmJs2fPori4GBqNBgDw9ttvY9KkSViyZAlcXFyM+kzsNBARkSyYa3iisrLSYKupqTHq/bVaLQDAzc3NYH92djY8PT3RtWtXxMXFoaysTDyWm5uLuro6hIeHi/s0Gg0CAwNx5MgRAMDRo0ehUqnEggEA+vfvD5VKZRATGBgoFgwAEBERgZqaGuTm5hr9M2TRQEREZAIfHx9x7oBKpUJKSsojzxEEAbNmzcIzzzyDwMBAcX9kZCTS0tJw4MABvP322zhx4gSee+45sRApLS2FnZ0dXF1dDa7n5eWF0tJSMcbT07PBe3p6ehrEeHl5GRx3dXWFnZ2dGGMMDk8QEZEs6GD6EMP95wNAcXGxQTtfqVQ+8txXX30V3377LQ4fPmywf/z48eKfAwMD0adPH/j6+mLfvn0YO3bsb15PEAQoFP/3We79s5SYR2GngYiIZMFcwxMuLi4G26OKhpkzZ2LPnj04ePAg2rdv/9BYb29v+Pr64ocffgAAqNVq1NbWoqKiwiCurKxM7Byo1Wpcvny5wbXKy8sNYu7vKFRUVKCurq5BB+JhWDQQEZEs3H1glZTNFIIg4NVXX8XHH3+MAwcOwM/P75HnXL16FcXFxfD29gYABAcHw9bWFllZWWJMSUkJ8vPzMWDAAABAaGgotFotjh8/LsYcO3YMWq3WICY/Px8lJSViTGZmJpRKJYKDg43+TByeICIisoAZM2Zg69at2L17N5ydncXf9FUqFRwcHHDz5k0sXLgQzz//PLy9vXHu3Dm88cYb8PDwwJgxY8TYKVOmYPbs2XB3d4ebmxuSkpIQFBQk3k0REBCA4cOHIy4uDuvXrwcATJs2DVFRUfD39wcAhIeHo3v37oiNjcWyZctw7do1JCUlIS4uzug7JwB2GoiISCYEKKCXsAkmzodYt24dtFotwsLC4O3tLW7bt28HAFhbW+P06dMYPXo0unbtiokTJ6Jr1644evQonJ2dxeusXLkS0dHRGDduHAYOHAhHR0fs3bsX1tbWYkxaWhqCgoIQHh6O8PBwPP3009iyZYt43NraGvv27YO9vT0GDhyIcePGITo6GsuXLzfpMykEQRBMOqMZqayshEqlQsX3HeHizPqHWqcITc+mToHIYuqFOmRjN7RarUm/8Zri7nfFX4+MgLKNbaOvU3OzDssG7LNors0dv2mJiIjIKJzTQEREssBHY0vHooGIiGRBJ/Epl1LObS34EyAiIiKjsNNARESywOEJ6Vg0EBGRLOhhBb2EBruUc1sL/gSIiIjIKOw0EBGRLOgEBXQShhiknNtasGggIiJZ4JwG6Vg0EBGRLAj3PKmysefLHX8CREREZBR2GoiISBZ0UEBn4kOn7j9f7lg0EBGRLOgFafMS9C328Y7mw+EJIiIiMgqLhlZq72Z3TB/ijzFdgzCmaxASR3bBiQPOjz5Rgi/3qRA3qBuinnwacYO64atPVb8Zm77aExGanlg3/wmL5kRkjMCQm1i0uQhbvz6D/176BqHDtU2dElmA/teJkFI2uWvyn8DatWvh5+cHe3t7BAcH48svv2zqlFqFdt51ePmNS1j96fdY/en36DHwBhZO9sO5QvtGXS9zuxv++nzn3zx+9qQjkqc/iSF/uIa1WYUY8odrWPLKk/jua8cGsYV5Dtj/oTv8ulc3Khcic7N31OPnM/b41zwWsa2ZHgrJm9w1adGwfft2JCYmYt68eTh16hR+97vfITIyEhcuXGjKtFqF/uGV6DfkBtp3qkH7TjWY/LdS2Dvp8V3unS/xuloFNv7TGzG9u2NUpyAkjOiCb460afT77dzQDr2fvYEJM8vQoUsNJswsQ89nbmDnhnYGcdVVVlj6qi8SlxXDWaWT9BmJzOXkQRdsfssbX33atqlTIWrWmrRoWLFiBaZMmYKpU6ciICAAq1atgo+PD9atW9eUabU6Oh2Qvastam5ZIaBPFQDg7b/44MwJJ7y+7jze+7wQv4u6jnkvdMQvP9s16j0Kcp0QPOiGwb4+YTdw9qSTwb41b7RHvyGV6P3szcZ9GCKiRrq7IqSUTe6a7O6J2tpa5Obm4m9/+5vB/vDwcBw5cqSJsmpdigrskTiyC2prrODgpMf8D4rg27UGl87ZIXuXK9Jyz8BdXQ8A+OOfy3HyoAv+u90dL79eYvJ7VZTboK1HncG+th51qCj/v79i2bva4sfTDli9/3tpH4yIqBGkzkvgnIYmLBquXLkCnU4HLy8vg/1eXl4oLS194Dk1NTWoqakRX1dWVlo0x5aufacarM0qRFWlNQ7va4vlr/li2cc/4HyhPQRBgZefCTCIr6u1govrnSKi7KIt4sK6icd0OgV0dQqM7hwk7nvu+Qq8tvSi+FrRoAhX4O4QYNkvtlg3/wkkb/sJdva8b4mIqCVq8nUaFPd90wiC0GDfXSkpKVi0aNHjSKtVsLUT8IRfLQCga49qFOY5YtfGdugx8CasrAWsyfgeVtaGX+AOTnoAgLu6DmuzCsX9X+1vi8P7VZi75ry4z8lZL/7ZtV09KsptDa51/YoNXD3uFCE/fuuI61ds8epwf/G4XqfA6Rwn7NnkgU/OfQNrazN9cCKiB9BD4rMnOBGy6YoGDw8PWFtbN+gqlJWVNeg+3PX6669j1qxZ4uvKykr4+PhYNM/Wpq7WCp0Dq6HXKXD9qg2CQqoeGGdtA7HgAIC2HvVQ2gsG++4VEFyFr79wxthp5eK+3EPO6P7rHIqev7uB9Qe+Mzjn7b90gE/n2xg3o4wFAxFZnCDxDgiBRUPTFQ12dnYIDg5GVlYWxowZI+7PysrC6NGjH3iOUqmEUql8XCm2aP9O8Ubf5yrRTlOH6ptWyN7dFt8eaYPFaT+hfacaPDf2GpYldMC0BZfQObAa2mvWyDvsDL+AavQbcuPRb3Cf6KnlSBrbBdvXeCI0Qouj/1Xh1JfOWLHrBwCAYxs9nux22+Ace0c9nF11DfYTPW72jjpo7imI1T616PhUNW5ct0b5L42bHEzND59yKV2TDk/MmjULsbGx6NOnD0JDQ/H+++/jwoULmD59elOm1SpcL7fBspm+uFZmA0dnHfwCbmNx2k8IHnTnroXZKy9g6yo13l+kwdVSW7i46hAQXIV+Qxo3T+SpvrfwxrpzSF3qjf8sU8PbtxZvvHcO3XrfMufHIrKIrj2qsWzHT+Lr6YsuAQAyt7vi7b90aKq0iJodhSAITTorbe3atXjrrbdQUlKCwMBArFy5Es8++6xR51ZWVkKlUqHi+45wceasVmqdIjQ9mzoFIoupF+qQjd3QarVwcXGxyHvc/a4YkzUZtk6N7xzVVdVi57BNFs21uWvyiZDx8fGIj49v6jSIiKiV4/CEdPz1nIiIiIzS5J0GIiKix0Hq8yN4yyWLBiIikgkOT0jH4QkiIiIyCjsNREQkC+w0SMeigYiIZIFFg3QcniAiIiKjsNNARESywE6DdCwaiIhIFgRIu22ySZdPbiZYNBARkSyw0yAd5zQQERGRUdhpICIiWWCnQToWDUREJAssGqTj8AQREREZhZ0GIiKSBXYapGPRQEREsiAICggSvvilnNtacHiCiIiIjMJOAxERyYIeCkmLO0k5t7Vg0UBERLLAOQ3ScXiCiIiIjMJOAxERyQInQkrHooGIiGSBwxPSsWggIiJZYKdBOs5pICIisoCUlBT07dsXzs7O8PT0RHR0NAoLCw1iBEHAwoULodFo4ODggLCwMJw5c8YgpqamBjNnzoSHhwecnJwwatQoXLx40SCmoqICsbGxUKlUUKlUiI2NxfXr1w1iLly4gJEjR8LJyQkeHh5ISEhAbW2tSZ+JRQMREcmC8OvwRGM3UzsNhw4dwowZM5CTk4OsrCzU19cjPDwcVVVVYsxbb72FFStWYM2aNThx4gTUajWGDRuGGzduiDGJiYnYuXMn0tPTcfjwYdy8eRNRUVHQ6XRiTExMDPLy8pCRkYGMjAzk5eUhNjZWPK7T6TBixAhUVVXh8OHDSE9Px44dOzB79myTPpNCEATBpDOakcrKSqhUKlR83xEuzqx/qHWK0PRs6hSILKZeqEM2dkOr1cLFxcUi73H3u6LX/86CtaOy0dfR3arBqT+saHSu5eXl8PT0xKFDh/Dss89CEARoNBokJiZi7ty5AO50Fby8vLB06VK88sor0Gq1aNeuHbZs2YLx48cDAC5dugQfHx/s378fERERKCgoQPfu3ZGTk4OQkBAAQE5ODkJDQ/Hdd9/B398fn376KaKiolBcXAyNRgMASE9Px6RJk1BWVmb05+E3LRER0WOg1WoBAG5ubgCAoqIilJaWIjw8XIxRKpUYNGgQjhw5AgDIzc1FXV2dQYxGo0FgYKAYc/ToUahUKrFgAID+/ftDpVIZxAQGBooFAwBERESgpqYGubm5Rn8GToQkIiJZ0EMBhRlWhKysrDTYr1QqoVQ+vIMhCAJmzZqFZ555BoGBgQCA0tJSAICXl5dBrJeXF86fPy/G2NnZwdXVtUHM3fNLS0vh6enZ4D09PT0NYu5/H1dXV9jZ2YkxxmCngYiIZOHu3RNSNgDw8fERJxyqVCqkpKQ88r1fffVVfPvtt9i2bVuDYwqFYSEjCEKDfQ0/i2HMg+IbE/Mo7DQQERGZoLi42GAOwKO6DDNnzsSePXvwxRdfoH379uJ+tVoN4E4XwNvbW9xfVlYmdgXUajVqa2tRUVFh0G0oKyvDgAEDxJjLly83eN/y8nKD6xw7dszgeEVFBerq6hp0IB6GnQYiIpIFKXdO3LswlIuLi8H2W0WDIAh49dVX8fHHH+PAgQPw8/MzOO7n5we1Wo2srCxxX21tLQ4dOiQWBMHBwbC1tTWIKSkpQX5+vhgTGhoKrVaL48ePizHHjh2DVqs1iMnPz0dJSYkYk5mZCaVSieDgYKN/huw0EBGRLAjCnU3K+aaYMWMGtm7dit27d8PZ2VmcO6BSqeDg4ACFQoHExEQkJyejS5cu6NKlC5KTk+Ho6IiYmBgxdsqUKZg9ezbc3d3h5uaGpKQkBAUFYejQoQCAgIAADB8+HHFxcVi/fj0AYNq0aYiKioK/vz8AIDw8HN27d0dsbCyWLVuGa9euISkpCXFxcSbdCcKigYiIyALWrVsHAAgLCzPYv2nTJkyaNAkAMGfOHFRXVyM+Ph4VFRUICQlBZmYmnJ2dxfiVK1fCxsYG48aNQ3V1NYYMGYLU1FRYW1uLMWlpaUhISBDvshg1ahTWrFkjHre2tsa+ffsQHx+PgQMHwsHBATExMVi+fLlJn4nrNBA1c1yngVqzx7lOQ/f0OZLXaTg74S2L5trcsdNARESywGdPSMeigYiIZEEvKKDgUy4lYU+fiIiIjMJOAxERycLjvnuiNWLRQEREsnCnaJAyp8GMybRQHJ4gIiIio7DTQEREssC7J6Rj0UBERLIg/LpJOV/uODxBRERERmGngYiIZIHDE9KxaCAiInng+IRkLBqIiEgeJHYawE4D5zQQERGRcdhpICIiWeCKkNKxaCAiIlngREjpODxBRERERmGngYiI5EFQSJvMyE4DiwYiIpIHzmmQjsMTREREZBR2GoiISB64uJNkRhUN7777rtEXTEhIaHQyRERElsK7J6QzqmhYuXKlURdTKBQsGoiIiFopo4qGoqIiS+dBRERkeRxikKTREyFra2tRWFiI+vp6c+ZDRERkEXeHJ6Rscmdy0XDr1i1MmTIFjo6OeOqpp3DhwgUAd+YyvPnmm2ZPkIiIyCwEM2wyZ3LR8Prrr+Obb75BdnY27O3txf1Dhw7F9u3bzZocERERNR8m33K5a9cubN++Hf3794dC8X+tmu7du+Onn34ya3JERETmo/h1k3K+vJlcNJSXl8PT07PB/qqqKoMigoiIqFnhOg2SmTw80bdvX+zbt098fbdQ2LBhA0JDQ82XGRERETUrJncaUlJSMHz4cJw9exb19fV45513cObMGRw9ehSHDh2yRI5ERETSsdMgmcmdhgEDBuCrr77CrVu30KlTJ2RmZsLLywtHjx5FcHCwJXIkIiKS7u5TLqVsMteoZ08EBQVh8+bN5s6FiIiImrFGFQ06nQ47d+5EQUEBFAoFAgICMHr0aNjY8PlXRETUPPHR2NKZ/C2fn5+P0aNHo7S0FP7+/gCA77//Hu3atcOePXsQFBRk9iSJiIgk45wGyUye0zB16lQ89dRTuHjxIr7++mt8/fXXKC4uxtNPP41p06ZZIkciIiJqBkzuNHzzzTc4efIkXF1dxX2urq5YsmQJ+vbta9bkiIiIzEbqZEZOhDS90+Dv74/Lly832F9WVobOnTubJSkiIiJzUwjSN7kzqtNQWVkp/jk5ORkJCQlYuHAh+vfvDwDIycnBP/7xDyxdutQyWRIREUnFOQ2SGVU0tG3b1mCJaEEQMG7cOHGf8OuU0pEjR0Kn01kgTSIiImpqRhUNBw8etHQeRERElsU5DZIZVTQMGjTI0nkQERFZFocnJGv0aky3bt3ChQsXUFtba7D/6aeflpwUERERNT+NejT25MmT8emnnz7wOOc0EBFRs8ROg2Qm33KZmJiIiooK5OTkwMHBARkZGdi8eTO6dOmCPXv2WCJHIiIi6QQzbDJncqfhwIED2L17N/r27QsrKyv4+vpi2LBhcHFxQUpKCkaMGGGJPImIiKiJmdxpqKqqgqenJwDAzc0N5eXlAO48+fLrr782b3ZERETmwkdjS9aoFSELCwsBAD179sT69evxyy+/4L333oO3t7fZEyQiIjIHrggpncnDE4mJiSgpKQEALFiwABEREUhLS4OdnR1SU1PNnR8RERE1EyYXDS+88IL45169euHcuXP47rvv0KFDB3h4eJg1OSIiIrPh3ROSNXqdhrscHR3Ru3dvc+RCREREzZhRRcOsWbOMvuCKFSsanQwREZGlKCBtXoKp0yC/+OILLFu2DLm5uSgpKcHOnTsRHR0tHp80aRI2b95scE5ISAhycnLE1zU1NUhKSsK2bdtQXV2NIUOGYO3atWjfvr0YU1FRgYSEBHHZg1GjRmH16tVo27atGHPhwgXMmDEDBw4cgIODA2JiYrB8+XLY2dmZ9JmMKhpOnTpl1MXufagVERGRnFVVVaFHjx6YPHkynn/++QfGDB8+HJs2bRJf3/8lnpiYiL179yI9PR3u7u6YPXs2oqKikJubC2trawBATEwMLl68iIyMDADAtGnTEBsbi7179wK4s+jiiBEj0K5dOxw+fBhXr17FxIkTIQgCVq9ebdJnahUPrPrjs0NhY2VatUTUcpQ2dQJErcNjfmBVZGQkIiMjHxqjVCqhVqsfeEyr1eKDDz7Ali1bMHToUADAhx9+CB8fH3z22WeIiIhAQUEBMjIykJOTg5CQEADAhg0bEBoaisLCQvj7+yMzMxNnz55FcXExNBoNAODtt9/GpEmTsGTJEri4uBj9mUy+5ZKIiKhFMtOKkJWVlQZbTU1No1PKzs6Gp6cnunbtiri4OJSVlYnHcnNzUVdXh/DwcHGfRqNBYGAgjhw5AgA4evQoVCqVWDAAQP/+/aFSqQxiAgMDxYIBACIiIlBTU4Pc3FyT8mXRQEREZAIfHx+oVCpxS0lJadR1IiMjkZaWhgMHDuDtt9/GiRMn8Nxzz4lFSGlpKezs7ODq6mpwnpeXF0pLS8WYuwsu3svT09MgxsvLy+C4q6sr7OzsxBhjSb57goiIqEUw0y2XxcXFBi19pVLZqMuNHz9e/HNgYCD69OkDX19f7Nu3D2PHjv3tNATBYA7hg+YTNibGGOw0EBGRLJhrRUgXFxeDrbFFw/28vb3h6+uLH374AQCgVqtRW1uLiooKg7iysjKxc6BWq3H58uUG1yovLzeIub+jUFFRgbq6ugYdiEdh0UBERNQMXL16FcXFxeIjGYKDg2Fra4usrCwxpqSkBPn5+RgwYAAAIDQ0FFqtFsePHxdjjh07Bq1WaxCTn58vruYMAJmZmVAqlQgODjYpx0YVDVu2bMHAgQOh0Whw/vx5AMCqVauwe/fuxlyOiIjI8h7zo7Fv3ryJvLw85OXlAQCKioqQl5eHCxcu4ObNm0hKSsLRo0dx7tw5ZGdnY+TIkfDw8MCYMWMAACqVClOmTMHs2bPx+eef49SpU3jxxRcRFBQk3k0REBCA4cOHIy4uDjk5OcjJyUFcXByioqLg7+8PAAgPD0f37t0RGxuLU6dO4fPPP0dSUhLi4uJMunMCaETRsG7dOsyaNQu///3vcf36deh0OgBA27ZtsWrVKlMvR0RE9Hg85qLh5MmT6NWrF3r16gXgzkKJvXr1wvz582FtbY3Tp09j9OjR6Nq1KyZOnIiuXbvi6NGjcHZ2Fq+xcuVKREdHY9y4cRg4cCAcHR2xd+9ecY0GAEhLS0NQUBDCw8MRHh6Op59+Glu2bBGPW1tbY9++fbC3t8fAgQMxbtw4REdHY/ny5aZ9IAAKQRBM+jF0794dycnJiI6OhrOzM7755ht07NgR+fn5CAsLw5UrV0xOorEqKyuhUqkwVD2N6zRQq1VfwnUaqPWqF+qQjd3QarUm/9ZrrLvfFU/+cwms7O0bfR397ds49/d5Fs21uTP57omioiKxarqXUqlEVVWVWZIiIiIyN6mPt+ajsRsxPOHn5yeOz9zr008/Rffu3c2RExERkfndXRFSyiZzJnca/vrXv2LGjBm4ffs2BEHA8ePHsW3bNqSkpGDjxo2WyJGIiEg6PhpbMpOLhsmTJ6O+vh5z5szBrVu3EBMTgyeeeALvvPMOJkyYYIkciYiIqBlo1IqQcXFxiIuLw5UrV6DX6x+4hCUREVFzwjkN0klaRtrDw8NceRAREVkWhyckM7lo8PPze+ha1T///LOkhIiIiKh5MrloSExMNHhdV1eHU6dOISMjA3/961/NlRcREZF5SRyeYKehEUXDa6+99sD9//rXv3Dy5EnJCREREVkEhyckM9sDqyIjI7Fjxw5zXY6IiIiaGUkTIe/1v//7v3BzczPX5YiIiMyLnQbJTC4aevXqZTARUhAElJaWory8HGvXrjVrckRERObCWy6lM7loiI6ONnhtZWWFdu3aISwsDN26dTNXXkRERNTMmFQ01NfX48knn0RERATUarWlciIiIqJmyKSJkDY2Nvjzn/+MmpoaS+VDRERkGYIZNpkz+e6JkJAQnDp1yhK5EBERWczdOQ1SNrkzeU5DfHw8Zs+ejYsXLyI4OBhOTk4Gx59++mmzJUdERETNh9FFw8svv4xVq1Zh/PjxAICEhATxmEKhgCAIUCgU0Ol05s+SiIjIHNgtkMToomHz5s148803UVRUZMl8iIiILIPrNEhmdNEgCHd+Wr6+vhZLhoiIiJovk+Y0POzplkRERM0ZF3eSzqSioWvXro8sHK5duyYpISIiIovg8IRkJhUNixYtgkqlslQuRERE1IyZVDRMmDABnp6elsqFiIjIYjg8IZ3RRQPnMxARUYvG4QnJjF4R8u7dE0RERCRPRnca9Hq9JfMgIiKyLHYaJDN5GWkiIqKWiHMapGPRQERE8sBOg2QmP+WSiIiI5ImdBiIikgd2GiRj0UBERLLAOQ3ScXiCiIiIjMJOAxERyQOHJyRj0UBERLLA4QnpODxBRERERmGngYiI5IHDE5KxaCAiInlg0SAZhyeIiIjIKOw0EBGRLCh+3aScL3csGoiISB44PCEZiwYiIpIF3nIpHec0EBERkVHYaSAiInng8IRkLBqIiEg++MUvCYcniIiIyCjsNBARkSxwIqR0LBqIiEgeOKdBMg5PEBERkVHYaSAiIlng8IR07DQQEZE8CGbYTPDFF19g5MiR0Gg0UCgU2LVrl2E6goCFCxdCo9HAwcEBYWFhOHPmjEFMTU0NZs6cCQ8PDzg5OWHUqFG4ePGiQUxFRQViY2OhUqmgUqkQGxuL69evG8RcuHABI0eOhJOTEzw8PJCQkIDa2lrTPhBYNBAREVlEVVUVevTogTVr1jzw+FtvvYUVK1ZgzZo1OHHiBNRqNYYNG4YbN26IMYmJidi5cyfS09Nx+PBh3Lx5E1FRUdDpdGJMTEwM8vLykJGRgYyMDOTl5SE2NlY8rtPpMGLECFRVVeHw4cNIT0/Hjh07MHv2bJM/E4cniIhIFh738ERkZCQiIyMfeEwQBKxatQrz5s3D2LFjAQCbN2+Gl5cXtm7dildeeQVarRYffPABtmzZgqFDhwIAPvzwQ/j4+OCzzz5DREQECgoKkJGRgZycHISEhAAANmzYgNDQUBQWFsLf3x+ZmZk4e/YsiouLodFoAABvv/02Jk2ahCVLlsDFxcXoz8ROAxERyYOZhicqKysNtpqaGpNTKSoqQmlpKcLDw8V9SqUSgwYNwpEjRwAAubm5qKurM4jRaDQIDAwUY44ePQqVSiUWDADQv39/qFQqg5jAwECxYACAiIgI1NTUIDc316S8WTQQEZE8mKlo8PHxEecPqFQqpKSkmJxKaWkpAMDLy8tgv5eXl3istLQUdnZ2cHV1fWiMp6dng+t7enoaxNz/Pq6urrCzsxNjjMXhCSIiIhMUFxcbtPSVSmWjr6VQKAxeC4LQYN/97o95UHxjYozBTgMREcnC3TkNUjYAcHFxMdgaUzSo1WoAaPCbfllZmdgVUKvVqK2tRUVFxUNjLl++3OD65eXlBjH3v09FRQXq6uoadCAehUUDERHJw2O+5fJh/Pz8oFarkZWVJe6rra3FoUOHMGDAAABAcHAwbG1tDWJKSkqQn58vxoSGhkKr1eL48eNizLFjx6DVag1i8vPzUVJSIsZkZmZCqVQiODjYpLw5PEFERGQBN2/exI8//ii+LioqQl5eHtzc3NChQwckJiYiOTkZXbp0QZcuXZCcnAxHR0fExMQAAFQqFaZMmYLZs2fD3d0dbm5uSEpKQlBQkHg3RUBAAIYPH464uDisX78eADBt2jRERUXB398fABAeHo7u3bsjNjYWy5Ytw7Vr15CUlIS4uDiT7pwAWDQQEZFMKAQBCqHx7QJTzz158iQGDx4svp41axYAYOLEiUhNTcWcOXNQXV2N+Ph4VFRUICQkBJmZmXB2dhbPWblyJWxsbDBu3DhUV1djyJAhSE1NhbW1tRiTlpaGhIQE8S6LUaNGGawNYW1tjX379iE+Ph4DBw6Eg4MDYmJisHz58sb8DCT8BJtYZWUlVCoVhqqnwcbKrqnTIbKI+hLTZjcTtST1Qh2ysRtardbk33qNdfe7oueLS2BtZ9/o6+hqbyPvw3kWzbW545wGIiIiMgqHJ4iISBb4wCrpWDQQEZE8SL0DgkUDhyeIiIjIOOw0EBGRLHB4QjoWDUREJA8cnpCMRQMREckCOw3ScU4DERERGYWdBiIikgcOT0jGooGIiGSDQwzScHiCiIiIjMJOAxERyYMg3NmknC9zLBqIiEgWePeEdByeICIiIqOw00BERPLAuyckY9FARESyoNDf2aScL3ccniAiIiKjsNMgM3+c/DMGDL6M9k9WobbGGgXftsWmd7vil/NOYsyAwZcx/PlidA6ohKptHWb+KRQ/f+8iHvf0rsamT7544PVT5vbA4c/UAIDxL/+Evs9cgZ9/JerrrDA+bIhlPxyRRFETr+CPfy6Hm2cdzn9vj/fma5B/vE1Tp0XmwuEJyZq00/DFF19g5MiR0Gg0UCgU2LVrV1OmIwtBva9h3//rgNmT+uN/4oNhbS1g8b9OQmlfL8YoHXQo+KYtUld3feA1rly2x4vhYQbbh+91QvUta5z8ykOMs7EVcPgzL+z/Xx+Lfy4iqQaNqsD0RZew7V1PxId3Rf4xJyxOK0K7J2qbOjUyk7t3T0jZ5K5JOw1VVVXo0aMHJk+ejOeff74pU5GN+TP7GLxeuTAQ2z4/iM4BlThzyg0AcHC/BsCdjsKD6PUKVFxVGuwLDSvDl5lq3K7+v79Saes7AwCGjvzFbPkTWcrYaVfw321uyNjqDgB4b8ETCA67gaiXrmJTincTZ0dmwXUaJGvSoiEyMhKRkZFNmYLsObWpAwDcrLRt9DU6d9OiU7cbWLc0wFxpET1WNrZ6dHn6Frav8TTYn3vIGd37VDVRVkTNT4ua01BTU4OamhrxdWVlZRNm0xoIiJtViPxTbXH+J+dGXyU8+hdc+NkJBd+6mjE3osfHxU0Haxvg+hXDfxKvl9vA1bP+N86iloaLO0nXou6eSElJgUqlEjcfH46VS/HnuQV4sssNvPVGj0Zfw06pw6DhJcjc3d6MmRE1jfu7zwoFOPmtNRHMsMlciyoaXn/9dWi1WnErLi5u6pRarOl/LUDIs+V4/ZW+uFpm3+jrDBxyGUp7HT7/RGPG7Iger8pr1tDVA67tDLsKKo96VJS3qIYskUW1qKJBqVTCxcXFYCNTCZg+5yxCn7uMN6b3weVLjpKuFj76Io4d8kTldTsz5Uf0+NXXWeGHbx3R+9kbBvt7P3sDZ086/cZZ1NLw7gnpWELLTPzfCjBoeAn+OasXqm/ZwNX9zhyRqps2qK2xBgC0camFp/o23NrdOfaE752JYBVXlQZ3TXi3r0Jg7wosTOj9wPdqp66Gs0sd2qmrYWUloGPXO3NQLhU7GtxlQdQcfPy+B/76bjG+/9YBBSed8PsXr8LziTrs+497U6dG5sK7JyRr0n+5b968iR9//FF8XVRUhLy8PLi5uaFDhw5NmFnrNeKPd4Z0lm44YbB/5cJAfLb3CQBA/0Hl+MvCfPHY3978FgCQtr4Ttr7fWdw/bPQvuFpmj69zPPAgL07/EUNHXhJfr9529M71pvXF6Vw3M3waIvM5tMcVzq46vPCXy3DzrMf5Qnv8z4t+KPuFXTSiuxSC0HSlU3Z2NgYPHtxg/8SJE5GamvrI8ysrK6FSqTBUPQ02Vvwfm1qn+pLSpk6ByGLqhTpkYze0Wq3FhpzvfleERv4DNraNn8NVX3cbRz+db9Fcm7sm7TSEhYWhCWsWIiKSEy4jLVmLmghJRERETYez0YiISBa4uJN0LBqIiEge9MKdTcr5MseigYiI5IFzGiTjnAYiIiIyCjsNREQkCwpInNNgtkxaLhYNREQkD1wRUjIOTxAREZFR2GkgIiJZ4C2X0rFoICIieeDdE5JxeIKIiIiMwk4DERHJgkIQoJAwmVHKua0FiwYiIpIH/a+blPNljsMTREREZBR2GoiISBY4PCEdiwYiIpIH3j0hGYsGIiKSB64IKRnnNBAREZFR2GkgIiJZ4IqQ0rFoICIieeDwhGQcniAiIiKjsGggIiJZUOilb6ZYuHAhFAqFwaZWq8XjgiBg4cKF0Gg0cHBwQFhYGM6cOWNwjZqaGsycORMeHh5wcnLCqFGjcPHiRYOYiooKxMbGQqVSQaVSITY2FtevX2/sj+mhWDQQEZE83B2ekLKZ6KmnnkJJSYm4nT59Wjz21ltvYcWKFVizZg1OnDgBtVqNYcOG4caNG2JMYmIidu7cifT0dBw+fBg3b95EVFQUdDqdGBMTE4O8vDxkZGQgIyMDeXl5iI2Nlfaz+g2c00BERGQhNjY2Bt2FuwRBwKpVqzBv3jyMHTsWALB582Z4eXlh69ateOWVV6DVavHBBx9gy5YtGDp0KADgww8/hI+PDz777DNERESgoKAAGRkZyMnJQUhICABgw4YNCA0NRWFhIfz9/c36edhpICIieRDMsAGorKw02Gpqan7zLX/44QdoNBr4+flhwoQJ+PnnnwEARUVFKC0tRXh4uBirVCoxaNAgHDlyBACQm5uLuro6gxiNRoPAwEAx5ujRo1CpVGLBAAD9+/eHSqUSY8yJRQMREcnC3WWkpWwA4OPjI84fUKlUSElJeeD7hYSE4D//+Q/++9//YsOGDSgtLcWAAQNw9epVlJaWAgC8vLwMzvHy8hKPlZaWws7ODq6urg+N8fT0bPDenp6eYow5cXiCiIjIBMXFxXBxcRFfK5XKB8ZFRkaKfw4KCkJoaCg6deqEzZs3o3///gAAhUJhcI4gCA323e/+mAfFG3OdxmCngYiI5MFMEyFdXFwMtt8qGu7n5OSEoKAg/PDDD+I8h/u7AWVlZWL3Qa1Wo7a2FhUVFQ+NuXz5coP3Ki8vb9DFMAcWDUREJA8CAL2ETeLaTjU1NSgoKIC3tzf8/PygVquRlZUlHq+trcWhQ4cwYMAAAEBwcDBsbW0NYkpKSpCfny/GhIaGQqvV4vjx42LMsWPHoNVqxRhz4vAEERHJwuN+NHZSUhJGjhyJDh06oKysDIsXL0ZlZSUmTpwIhUKBxMREJCcno0uXLujSpQuSk5Ph6OiImJgYAIBKpcKUKVMwe/ZsuLu7w83NDUlJSQgKChLvpggICMDw4cMRFxeH9evXAwCmTZuGqKgos985AbBoICIisoiLFy/iT3/6E65cuYJ27dqhf//+yMnJga+vLwBgzpw5qK6uRnx8PCoqKhASEoLMzEw4OzuL11i5ciVsbGwwbtw4VFdXY8iQIUhNTYW1tbUYk5aWhoSEBPEui1GjRmHNmjUW+UwKQWi5i2lXVlZCpVJhqHoabKzsmjodIouoLzH/DGii5qJeqEM2dkOr1RpMLjSnu98Vz/X8G2ysjZt/8CD1uhocyHvTork2d+w0EBGRPPCBVZJxIiQREREZhZ0GIiKSBz0AKUsXmPjAqtaIRQMREcnC4757ojXi8AQREREZhZ0GIiKSB06ElIxFAxERyQOLBsk4PEFERERGYaeBiIjkgZ0GyVg0EBGRPPCWS8lYNBARkSzwlkvpOKeBiIiIjMJOAxERyQPnNEjGooGIiORBLwAKCV/8ehYNHJ4gIiIio7DTQERE8sDhCclYNBARkUxILBrAooHDE0RERGQUdhqIiEgeODwhGYsGIiKSB70ASUMMvHuCwxNERERkHHYaiIhIHgT9nU3K+TLHooGIiOSBcxokY9FARETywDkNknFOAxERERmFnQYiIpIHDk9IxqKBiIjkQYDEosFsmbRYHJ4gIiIio7DTQERE8sDhCclYNBARkTzo9QAkrLWg5zoNHJ4gIiIio7DTQERE8sDhCclYNBARkTywaJCMwxNERERkFHYaiIhIHriMtGQsGoiISBYEQQ9BwpMqpZzbWrBoICIieRAEad0CzmngnAYiIiIyDjsNREQkD4LEOQ3sNLBoICIimdDrAYWEeQmc08DhCSIiIjIOOw1ERCQPHJ6QjEUDERHJgqDXQ5AwPMFbLjk8QUREREZip4GIiOSBwxOSsWggIiJ50AuAgkWDFByeICIiIqOw00BERPIgCACkrNPATgOLBiIikgVBL0CQMDwhsGjg8AQREcmEoJe+NcLatWvh5+cHe3t7BAcH48svvzTzB3t8WDQQERFZyPbt25GYmIh58+bh1KlT+N3vfofIyEhcuHChqVNrFBYNREQkC4JekLyZasWKFZgyZQqmTp2KgIAArFq1Cj4+Pli3bp0FPqHlsWggIiJ5eMzDE7W1tcjNzUV4eLjB/vDwcBw5csScn+yxadETIe9OSqnX1zZxJkSWUy/UNXUKRBZTjzt/vx/HJMN61Ela2+lurpWVlQb7lUollEplg/grV65Ap9PBy8vLYL+XlxdKS0sbn0gTatFFw40bNwAA2WWpTZsIERFJcuPGDahUKotc287ODmq1GodL90u+Vps2beDj42Owb8GCBVi4cOFvnqNQKAxeC4LQYF9L0aKLBo1Gg+LiYjg7O7fY/wAtTWVlJXx8fFBcXAwXF5emTofIrPj3+/ETBAE3btyARqOx2HvY29ujqKgItbXSu9IP+sJ/UJcBADw8PGBtbd2gq1BWVtag+9BStOiiwcrKCu3bt2/qNGTJxcWF/6hSq8W/34+XpToM97K3t4e9vb3F3+dednZ2CA4ORlZWFsaMGSPuz8rKwujRox9rLubSoosGIiKi5mzWrFmIjY1Fnz59EBoaivfffx8XLlzA9OnTmzq1RmHRQEREZCHjx4/H1atX8Y9//AMlJSUIDAzE/v374evr29SpNQqLBjKJUqnEggULfnMMj6gl499vsoT4+HjEx8c3dRpmoRC4mDYREREZgYs7ERERkVFYNBAREZFRWDQQERGRUVg0EBERkVFYNJDRWtMz4Ynu9cUXX2DkyJHQaDRQKBTYtWtXU6dE1CyxaCCjtLZnwhPdq6qqCj169MCaNWuaOhWiZo23XJJRQkJC0Lt3b4NnwAcEBCA6OhopKSlNmBmReSkUCuzcuRPR0dFNnQpRs8NOAz1Sa3wmPBERmY5FAz1Sa3wmPBERmY5FAxmtNT0TnoiITMeigR6pNT4TnoiITMeigR7p3mfC3ysrKwsDBgxooqyIiOhx41MuySit7ZnwRPe6efMmfvzxR/F1UVER8vLy4Obmhg4dOjRhZkTNC2+5JKOtXbsWb731lvhM+JUrV+LZZ59t6rSIJMvOzsbgwYMb7J84cSJSU1Mff0JEzRSLBiIiIjIK5zQQERGRUVg0EBERkVFYNBAREZFRWDQQERGRUVg0EBERkVFYNBAREZFRWDQQERGRUVg0EEm0cOFC9OzZU3w9adIkREdHP/Y8zp07B4VCgby8vN+MefLJJ7Fq1Sqjr5mamoq2bdtKzk2hUGDXrl2Sr0NETYtFA7VKkyZNgkKhgEKhgK2tLTp27IikpCRUVVVZ/L3feecdo1cRNOaLnoioueCzJ6jVGj58ODZt2oS6ujp8+eWXmDp1KqqqqrBu3boGsXV1dbC1tTXL+6pUKrNch4iouWGngVotpVIJtVoNHx8fxMTE4IUXXhBb5HeHFP7973+jY8eOUCqVEAQBWq0W06ZNg6enJ1xcXPDcc8/hm2++Mbjum2++CS8vLzg7O2PKlCm4ffu2wfH7hyf0ej2WLl2Kzp07Q6lUokOHDliyZAkAwM/PDwDQq1cvKBQKhIWFiedt2rQJAQEBsLe3R7du3bB27VqD9zl+/Dh69eoFe3t79OnTB6dOnTL5Z7RixQoEBQXByckJPj4+iI+Px82bNxvE7dq1C127doW9vT2GDRuG4uJig+N79+5FcHAw7O3t0bFjRyxatAj19fUm50NEzRuLBpINBwcH1NXVia9//PFHfPTRR9ixY4c4PDBixAiUlpZi//79yM3NRe/evTFkyBBcu3YNAPDRRx9hwYIFWLJkCU6ePAlvb+8GX+b3e/3117F06VL8/e9/x9mzZ7F161Z4eXkBuPPFDwCfffYZSkpK8PHHHwMANmzYgHnz5mHJkiUoKChAcnIy/v73v2Pz5s0AgKqqKkRFRcHf3x+5ublYuHAhkpKSTP6ZWFlZ4d1330V+fj42b96MAwcOYM6cOQYxt27dwpIlS7B582Z89dVXqKysxIQJE8Tj//3vf/Hiiy8iISEBZ8+exfr165GamioWRkTUighErdDEiROF0aNHi6+PHTsmuLu7C+PGjRMEQRAWLFgg2NraCmVlZWLM559/Lri4uAi3b982uFanTp2E9evXC4IgCKGhocL06dMNjoeEhAg9evR44HtXVlYKSqVS2LBhwwPzLCoqEgAIp06dMtjv4+MjbN261WDfP//5TyE0NFQQBEFYv3694ObmJlRVVYnH161b98Br3cvX11dYuXLlbx7/6KOPBHd3d/H1pk2bBABCTk6OuK+goEAAIBw7dkwQBEH43e9+JyQnJxtcZ8uWLYK3t7f4GoCwc+fO33xfImoZOKeBWq1PPvkEbdq0QX19Perq6jB69GisXr1aPO7r64t27dqJr3Nzc3Hz5k24u7sbXKe6uho//fQTAKCgoADTp083OB4aGoqDBw8+MIeCggLU1NRgyJAhRuddXl6O4uJiTJkyBXFxceL++vp6cb5EQUEBevToAUdHR4M8THXw4EEkJyfj7NmzqKysRH19PW7fvo2qqio4OTkBAGxsbNCnTx/xnG7duqFt27YoKChAv379kJubixMnThh0FnQ6HW7fvo1bt24Z5EhELRuLBmq1Bg8ejHXr1sHW1hYajabBRMe7X4p36fV6eHt7Izs7u8G1GnvboYODg8nn6PV6AHeGKEJCQgyOWVtbAwAEMzzR/vz58/j973+P6dOn45///Cfc3Nxw+PBhTJkyxWAYB7hzy+T97u7T6/VYtGgRxo4d2yDG3t5ecp5E1HywaKBWy8nJCZ07dzY6vnfv3igtLYWNjQ2efPLJB8YEBAQgJycHL730krgvJyfnN6/ZpUsXODg44PPPP8fUqVMbHLezswNw5zfzu7y8vPDEE0/g559/xgsvvPDA63bv3h1btmxBdXW1WJg8LI8HOXnyJOrr6/H222/DyurO9KaPPvqoQVx9fT1OnjyJfv36AQAKCwtx/fp1dOvWDcCdn1thYaFJP2siaplYNBD9aujQoQgNDUV0dDSWLl0Kf39/XLp0Cfv370d0dDT69OmD1157DRMnTkSfPn3wzDPPIC0tDWfOnEHHjh0feE17e3vMnTsXc+bMgZ2dHQYOHIjy8nKcOXMGU6ZMgaenJxwcHJCRkYH27dvD3t4eKpUKCxcuREJCAlxcXBAZGYmamhqcPHkSFRUVmDVrFmJiYjBv3jxMmTIF//M//4Nz585h+fLlJn3eTp06ob6+HqtXr8bIkSPx1Vdf4b333msQZ2tri5kzZ+Ldd9+Fra0tXn31VfTv318sIubPn4+oqCj4+Pjgj3/8I6ysrPDtt9/i9OnTWLx4sen/IYio2eLdE0S/UigU2L9/P5599lm8/PLL6Nq1KyZMmIBz586JdzuMHz8e8+fPx9y5cxEcHIzz58/jz3/+80Ov+/e//x2zZ8/G/PnzERAQgPHjx6OsrAzAnfkC7777LtavXw+NRoPRo0cDAKZOnYqNGzciNTUVQUFBGDRoEFJTU8VbNNu0aYO9e/fi7Nmz6NWrF+bNm4elS5ea9Hl79uyJFStWYOnSpQgMDERaWhpSUlIaxDk6OmLu3LmIiYlBaGgoHBwckJ6eLh6PiIjAJ598gqysLPTt2xf9+/fHihUr4Ovra1I+RNT8KQRzDI4SERFRq8dOAxERERmFRQMREREZhUUDERERGYVFAxERERmFRQMREREZhUUDERERGYVFAxERERmFRQMREREZhUUDERERGYVFAxERERmFRQMREREZhUUDERERGeX/A+wXqliWGf7nAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "preds=[lr_pred,tree_pred,forest_pred,svm_pred,knn_pred]\n",
+ "titles=['lr_pred','tree_pred','forest_pred','svm_pred','knn_pred']\n",
+ "for i in range(len(preds)):\n",
+ "\n",
+ " cm = confusion_matrix(y_test,preds[i],labels=[0,1])#混淆矩阵\n",
+ " cm_display = ConfusionMatrixDisplay(cm,display_labels=[0,1]).plot()#画图\n",
+ " plt.title(\"%s\"%(titles[i]))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "阈值为0.5的准确率: 0.9329344991563123\n",
+ "阈值为0.3的准确率: 0.933087896916705\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'threshold:0.3')"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg0AAAHFCAYAAABxS8rQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMSklEQVR4nO3deVxU9f4/8NewDYswsggDiYgbQuCGBmilpYIkKtk39VKkppjX7ZKQZZZpJbhr6dXMSsz0or9baqaRpGmZ4EJioUSLGyabisMiDsPM+f1BntuI6QwHBDmvZ4/zeDDnfM6Z90zIvOf9WY5CEAQBRERERHdh0dQBEBER0f2BSQMRERGZhEkDERERmYRJAxEREZmESQMRERGZhEkDERERmYRJAxEREZmESQMRERGZhEkDERERmYRJA7UYhw8fxrx583Dt2jWj/e3bt0dUVFTTBHUbDR3PuXPnoFAokJKScte28+bNg0KhMPnaq1atQteuXaFUKuHr64v58+dDp9OZHNPtttTUVJOfn4iaF6umDoCooRw+fBjz58/HuHHj0Lp166YO5763YMECvP7663jllVcQHh6OY8eO4bXXXsMff/yB999/36RrTJ8+HTExMUb7Onfu3BjhEtE9wKSB6A6qqqpga2tr1rfzluDKlSt4++23ERcXh6SkJADAgAEDoNPp8NprryE+Ph4BAQF3vU67du0QGhra2OES0T3C7glqEebNm4eXXnoJAODr6yuWwg8cOCC2SUtLQ69evWBnZ4euXbvio48+MrpGSkoKFAoF9u7di+effx5t2rSBvb09tFotAGDr1q0ICwuDg4MDWrVqhYiICJw4ccLoGmfOnMGYMWPg5eUFpVIJDw8PDBw4ENnZ2XVivls8AJCTk4MRI0bA2dkZtra26NGjBzZu3GjSe7J792706NFD7FpYunSpSefdjO3GjRsYP3680f7x48dDEATs2LHD5GsRUcvBpIFahIkTJ2L69OkAgM8++wwZGRnIyMhAr169AAAnT55EQkICXnzxRezcuRPdunXDhAkT8O2339a51vPPPw9ra2ts2rQJ//3vf2FtbY2kpCT84x//QEBAALZt24ZNmzahvLwcjzzyCE6fPi2e+8QTTyArKwuLFy9Geno61q5di549e9YZZ2FKPHl5eejbty9OnTqFd999F5999hkCAgIwbtw4LF68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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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IiMjTdZHRkbiyJEjzZQVERHdaywa6K6uXLkCg8EALy8vk/VeXl4oLi5upqyIiOheY9FAZrv98eOCIPCR5EREMsKige7Kw8MD1tbWdboKJSUldboPRETUerFooLuys7NDaGgoMjMzTdZnZmaif//+zZQVERHdazbNnQDdH2bPno34+Hj07dsXERER+Mc//oELFy5g6tSpzZ0akWQ3btzAL7/8Ir4uKChAbm4u3Nzc0KFDh2bMjKhl4SWXZLa1a9di2bJlKCoqQnBwMFatWoVHH320udMikuzAgQN47LHH6qwfP348UlNT731CRC0UiwYiIiIyC+c0EBERkVlYNBAREZFZWDQQERGRWVg0EBERkVlYNBAREZFZWDQQERGRWVg0EBERkVlYNBBJlJycjF69eomvJ0yYgNjY2Huex7lz56BQKJCbm/unMR07dsTq1avNPmZqairatm0rOTeFQoGdO3dKPg4RNS8WDdQqTZgwAQqFAgqFAra2tujUqRPmzJmDioqKJn/vd955x+y7CJrzRU9E1FLw2RPUag0bNgwbN25ETU0NvvnmG0yePBkVFRVYt25dndiamhrY2to2yvuqVKpGOQ4RUUvDTgO1WkqlEmq1Gr6+voiLi8PTTz8ttshrhxT+9a9/oVOnTlAqlRAEAVqtFlOmTIGnpydcXFzw+OOP47vvvjM57ltvvQUvLy84Oztj0qRJqKqqMtl++/CE0WjE0qVL0aVLFyiVSnTo0AGLFy8GAPj7+wMAevfuDYVCgUGDBon7bdy4Ed27d4e9vT26deuGtWvXmrzPsWPH0Lt3b9jb26Nv3744efKkxZ/RypUrERISAicnJ/j6+mLatGm4ceNGnbidO3ciICAA9vb2GDp0KAoLC0227969G6GhobC3t0enTp2waNEi6PV6i/MhopaNRQPJhoODA2pqasTXv/zyC7Zv345PP/1UHB4YPnw4iouLsXfvXuTk5KBPnz4YPHgwrl27BgDYvn07Fi5ciMWLF+PEiRPw9vau82V+u3nz5mHp0qV47bXXcPr0aWzduhVeXl4Abn3xA8BXX32FoqIifPbZZwCADRs2YP78+Vi8eDHy8/ORkpKC1157DZs2bQIAVFRUICYmBoGBgcjJyUFycjLmzJlj8WdiZWWFd999F3l5edi0aRP279+PuXPnmsTcvHkTixcvxqZNm/Df//4XZWVlGDdunLj9yy+/xDPPPINZs2bh9OnTWL9+PVJTU8XCiIhaEYGoFRo/frwwatQo8fXRo0cFd3d3YcyYMYIgCMLChQsFW1tboaSkRIzZt2+f4OLiIlRVVZkcq3PnzsL69esFQRCEiIgIYerUqSbbw8LChJ49e9b73mVlZYJSqRQ2bNhQb54FBQUCAOHkyZMm6319fYWtW7earHvjjTeEiIgIQRAEYf369YKbm5tQUVEhbl+3bl29x/ojPz8/YdWqVX+6ffv27YK7u7v4euPGjQIAITs7W1yXn58vABCOHj0qCIIgPPLII0JKSorJcTZv3ix4e3uLrwEIO3bs+NP3JaL7A+c0UKv1n//8B23atIFer0dNTQ1GjRqF9957T9zu5+eHdu3aia9zcnJw48YNuLu7mxynsrISv/76KwAgPz8fU6dONdkeERGBr7/+ut4c8vPzodPpMHjwYLPzLi0tRWFhISZNmoSEhARxvV6vF+dL5Ofno2fPnnB0dDTJw1Jff/01UlJScPr0aZSVlUGv16OqqgoVFRVwcnICANjY2KBv377iPt26dUPbtm2Rn5+Phx56CDk5OTh+/LhJZ8FgMKCqqgo3b940yZGI7m8sGqjVeuyxx7Bu3TrY2trCx8enzkTH2i/FWkajEd7e3jhw4ECdYzX0skMHBweL9zEajQBuDVGEhYWZbLO2tgYACI3wRPvz58/jL3/5C6ZOnYo33ngDbm5uOHz4MCZNmmQyjAPcumTydrXrjEYjFi1ahNGjR9eJsbe3l5wnEbUcLBqo1XJyckKXLl3Mju/Tpw+Ki4thY2ODjh071hvTvXt3ZGdn49lnnxXXZWdn/+kxu3btCgcHB+zbtw+TJ0+us93Ozg7ArV/mtby8vPDAAw/g7NmzePrpp+s9blBQEDZv3ozKykqxMLlTHvU5ceIE9Ho93n77bVhZ3ZretH379jpxer0eJ06cwEMPPQQAOHPmDK5fv45u3boBuPW5nTlzxqLPmojuTywaiH43ZMgQREREIDY2FkuXLkVgYCAuXbqEvXv3IjY2Fn379sWLL76I8ePHo2/fvnj44YexZcsWnDp1Cp06dar3mPb29njppZcwd+5c2NnZYcCAASgtLcWpU6cwadIkeHp6wsHBAenp6Wjfvj3s7e2hUqmQnJyMWbNmwcXFBdHR0dDpdDhx4gQ0Gg1mz56NuLg4zJ8/H5MmTcKrr76Kc+fOYcWKFRadb+fOnaHX6/Hee+9hxIgR+O9//4sPPvigTpytrS1mzpyJd999F7a2tpgxYwbCw8PFImLBggWIiYmBr68vnnrqKVhZWeH777/HDz/8gDfffNPy/xBE1GLx6gmi3ykUCuzduxePPvooJk6ciICAAIwbNw7nzp0Tr3YYO3YsFixYgJdeegmhoaE4f/48XnjhhTse97XXXkNSUhIWLFiA7t27Y+zYsSgpKQFwa77Au+++i/Xr18PHxwejRo0CAEyePBn//Oc/kZqaipCQEAwcOBCpqaniJZpt2rTB7t27cfr0afTu3Rvz58/H0qVLLTrfXr16YeXKlVi6dCmCg4OxZcsWLFmypE6co6MjXnrpJcTFxSEiIgIODg5IS0sTt0dFReE///kPMjMz0a9fP4SHh2PlypXw8/OzKB8iavkUQmMMjhIREVGrx04DERERmYVFAxEREZmFRQMRERGZhUUDERERmYVFAxEREZmFRQMRERGZhUUDERERmYVFAxEREZmFRQMRERGZhUUDERERmYVFAxEREZmFRQMRERGZ5f8BUhhPu3yZOtIAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#from sklearn.linear_model import LogisticRegression\n",
+ "# #创建模型\n",
+ "# lr= LogisticRegression(C=100, random_state=1,max_iter=1000)#C:逆正则化参数,越大,权重系数越小\n",
+ "# # 训练模型\n",
+ "# lr.fit(X_train, y_train) \n",
+ "# #在测试集上预测\n",
+ "# lr_pred = lr.predict(X_test)\n",
+ "# #评估模型\n",
+ "acc1=lr.score(X_test, y_test)\n",
+ "print('阈值为0.5的准确率:',acc1)\n",
+ " \n",
+ "# 预测样本属于正类的概率\n",
+ "y_prob = lr.decision_function(X_test)\n",
+ "# 设置阈值\n",
+ "threshold = 0.3\n",
+ "# 将概率值转换为类别\n",
+ "lr_pred2 = [1 if prob >= threshold else 0 for prob in y_prob]\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "# 计算准确性\n",
+ "acc2 = accuracy_score(y_test, lr_pred2)\n",
+ "print(\"阈值为0.3的准确率:\", acc2)\n",
+ "\n",
+ "\n",
+ "# 画混淆矩阵图\n",
+ "cm = confusion_matrix(y_test,lr_pred,labels=lr.classes_)\n",
+ "cm_display = ConfusionMatrixDisplay(cm,display_labels=lr.classes_).plot()\n",
+ "plt.title('threshold:0.5')\n",
+ "\n",
+ "cm2 = confusion_matrix(y_test,lr_pred2,labels=lr.classes_)\n",
+ "cm_display2 = ConfusionMatrixDisplay(cm2,display_labels=lr.classes_).plot()\n",
+ "plt.title('threshold:0.3')\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "tdi",
+ "language": "python",
+ "name": "tdi"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/PingShen/homework_credit_scoring_finetune_ensemble.ipynb b/2023/homework/PingShen/homework_credit_scoring_finetune_ensemble.ipynb
new file mode 100644
index 00000000..7861a5ed
--- /dev/null
+++ b/2023/homework/PingShen/homework_credit_scoring_finetune_ensemble.ipynb
@@ -0,0 +1,2352 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import seaborn as sns\n",
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_814457/2980780030.py:3: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access\n",
+ " data.shapey = data['SeriousDlqin2yrs']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 112910 \n",
+ " 0.385742 \n",
+ " 50.0 \n",
+ " 0.0 \n",
+ " 0.404293 \n",
+ " 3400.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112911 \n",
+ " 0.040674 \n",
+ " 74.0 \n",
+ " 0.0 \n",
+ " 0.225131 \n",
+ " 2100.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112912 \n",
+ " 0.299745 \n",
+ " 44.0 \n",
+ " 0.0 \n",
+ " 0.716562 \n",
+ " 5584.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 112913 \n",
+ " 0.000000 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.000000 \n",
+ " 5716.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112914 \n",
+ " 0.850283 \n",
+ " 64.0 \n",
+ " 0.0 \n",
+ " 0.249908 \n",
+ " 8158.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
108648 rows × 10 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45.0 \n",
+ "1 0.957151 40.0 \n",
+ "2 0.658180 38.0 \n",
+ "3 0.233810 30.0 \n",
+ "4 0.907239 49.0 \n",
+ "... ... ... \n",
+ "112910 0.385742 50.0 \n",
+ "112911 0.040674 74.0 \n",
+ "112912 0.299745 44.0 \n",
+ "112913 0.000000 30.0 \n",
+ "112914 0.850283 64.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "... ... ... ... \n",
+ "112910 0.0 0.404293 3400.0 \n",
+ "112911 0.0 0.225131 2100.0 \n",
+ "112912 0.0 0.716562 5584.0 \n",
+ "112913 0.0 0.000000 5716.0 \n",
+ "112914 0.0 0.249908 8158.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "... ... ... \n",
+ "112910 7.0 0.0 \n",
+ "112911 4.0 0.0 \n",
+ "112912 4.0 0.0 \n",
+ "112913 4.0 0.0 \n",
+ "112914 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "... ... ... \n",
+ "112910 0.0 0.0 \n",
+ "112911 1.0 0.0 \n",
+ "112912 1.0 0.0 \n",
+ "112913 0.0 0.0 \n",
+ "112914 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 \n",
+ "... ... \n",
+ "112910 0.0 \n",
+ "112911 0.0 \n",
+ "112912 2.0 \n",
+ "112913 0.0 \n",
+ "112914 0.0 \n",
+ "\n",
+ "[108648 rows x 10 columns]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 1\n",
+ "1 0\n",
+ "2 0\n",
+ "3 0\n",
+ "4 0\n",
+ " ..\n",
+ "112910 0\n",
+ "112911 0\n",
+ "112912 0\n",
+ "112913 0\n",
+ "112914 0\n",
+ "Name: SeriousDlqin2yrs, Length: 108648, dtype: int64"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10), (76053,), (32595,))"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True, random_state=0)#70%的训练集,30%的测试集,random_state 随机切分的标记\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SeriousDlqin2yrs\n",
+ "0 101322\n",
+ "1 7326\n",
+ "Name: count, dtype: int64\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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IHV0dOiZZ57RfffdJ0ny+XySpJiYmIDbxcTE6Msvv7RnQkJCFBkZ2Wnm1O19Pp+io6M7PX50dHTAzOmPExkZqZCQEHvmdMXFxXrqqafO97IBAMBlqNt3hN5++22tWrVKa9as0ccff6w333xTixcv1ptvvhkw53A4Ar63LKvTsdOdPtPV/A+Z+a758+fL7/fbX/X19WddEwAAuHx1+47Qz3/+c82bN08//elPJUnDhw/Xl19+qeLiYj344IOKjY2V9O1uzcCBA+3bNTY22rs3sbGxamtrU1NTU8CuUGNjo1JTU+2ZgwcPdnr8Q4cOBdzP9u3bA843NTWpvb29007RKU6nU06n84dePgAAuIx0+47QN998oyuuCLzboKAg++3zgwcPVmxsrDZv3myfb2tr09atW+3ISUpKUp8+fQJmGhoaVFtba8+kpKTI7/drx44d9sz27dvl9/sDZmpra9XQ0GDPlJeXy+l0KikpqZuvHAAAXG66fUdo4sSJeuaZZ3Tdddfpxz/+sT755BMtWbJEDz30kKRvn6oqKChQUVGRhgwZoiFDhqioqEh9+/ZVdna2JMnlcmnatGmaPXu2+vfvr379+qmwsFDDhw/XuHHjJEnDhg3ThAkTlJubq+XLl0uSpk+frqysLMXHx0uS0tPTlZCQII/Ho+eee06HDx9WYWGhcnNzjXsHGAAA6KzbQ+jFF1/UL3/5S+Xl5amxsVFut1szZszQr371K3tmzpw5amlpUV5enpqampScnKzy8nKFh4fbM0uXLlVwcLCmTJmilpYWjR07VitXrlRQUJA9s3r1auXn59vvLps0aZJKSkrs80FBQdqwYYPy8vI0evRohYaGKjs7W4sXL+7uywYAAJehbv8cod6GzxGCKfgcIQC9SY99jhAAAMDlghACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICx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3/+t3/72t1q7dq28Xm+Xj5WTk6OPPvpI69ev17Zt22RZlu688061t7d/r7WeOHFCkydPVlpamj777DNt27ZN06dPP+cv1IyOjtbUqVO1fv36M/4G8pycHO3du1fvvfeefv/73+vll19WY2PjOdf0xBNPqLCwUF6vV0OHDtV9992nEydOnHHe7/fbO2WDBg3SuHHjtGLFioCZFStWKCcnJ+C65syZo+LiYtXV1enGG2/U1KlTde2116q6ulo1NTWaN28en5QOnE1PlxiAS9fvf/97KzIy0rryyiut1NRUa/78+dann35qWZZlvfvuu1ZERIT1v//7vwG3+Yd/+Adr+fLllmV9u5PTp08fq7GxMWDmu7suX3zxhSXJ+vDDD+3zX331lRUaGmr99re/te/nbDtCX3/99Vl3r860I2RZlrVs2TJLknXw4MFOa9u9e7clyaqqqrLn6+rqLEnn3BF67bXX7PM7d+60JFl1dXVdruF3v/udFRISYtXW1trH3n77bSsyMtL++Xq9XsvhcFh79uyxLMuyd4TeeeedgPsKDw+3Vq5c2eXjAOiMHSEAZ3TPPffowIEDWr9+vTIyMrRlyxbdfPPNWrlypWpqanTs2DH179/f3j266qqrtGfPHv31r3+17+P666/XgAEDzvgYdXV1Cg4OVnJysn2sf//+io+PV11d3fdaZ79+/ZSTk6OMjAxNnDhR//7v/66GhobvdVvr//+Woa52j06tbeTIkfaxH/3oR7r66qvPeb833nij/Z8HDhwoSV3uJG3ZskU5OTl69dVX9eMf/9g+PnnyZAUHB2vdunWSpDfeeEO33367Bg0aFHD7765NkmbNmqWHH35Y48aN08KFCwP+uwDQGSEE4KyuvPJKjR8/Xr/61a9UWVmpnJwcPfnkkzp58qQGDhwor9cb8LV79279/Oc/t28fFhZ21vu3zvDrDi3LsuPkiiuu6DR3+tNmK1as0LZt25Samqq3335bQ4cOVVVV1Tmvr66uThEREerfv/8Z13aup9i68t2no07d/uTJkwEzW7du1cSJE7VkyRI98MADAedCQkLk8Xi0YsUKtbW1ac2aNXrooYc6Pc7pP98FCxZo586dyszM1HvvvaeEhAQ7pgB0RggBOC8JCQk6fvy4br75Zvl8PgUHB+sf//EfA76ioqLO6/5OnDih7du328e+/vprffHFFxo2bJgkacCAAfL5fAEx1NXrjUaMGKH58+ersrJSiYmJWrNmzVkfu7GxUWvWrNHkyZN1xRWd/zocNmyYTpw4oY8++sg+tnv3bh05cuR7X9+ZbNmyRZmZmVq4cKGmT5/e5czDDz+sP/3pT3r55ZfV3t6uu++++3vd99ChQ/X444+rvLxcd999d6fXGgH4P4QQgC59/fXX+ud//metWrVKn332mfbs2aPf/e53WrRoke666y6NGzdOKSkpmjx5sv74xz9q7969qqys1C9+8YuAcDiXIUOG6K677lJubq4qKir06aef6v7779c111yju+66S9K3H3J46NAhLVq0SH/961/10ksvadOmTfZ97NmzR/Pnz9e2bdv05Zdfqry8PCCkpG93d3w+nxoaGlRXV6c33nhDqampcrlcWrhwYZdri4+P14QJE5Sbm6vt27erpqZGDz/8sEJDQ3/gT/VbpyIoPz9f99xzj3w+n3w+X6ePJRg2bJhGjRqluXPn6r777jvn47a0tOixxx7Tli1b9OWXX+rDDz9UdXV1wM8BQCBCCECXrrrqKiUnJ2vp0qW67bbblJiYqF/+8pfKzc1VSUmJHA6HNm7cqNtuu00PPfSQhg4dqp/+9Kfau3evYmJizuuxVqxYoaSkJGVlZSklJUWWZWnjxo3200vDhg3Tyy+/rJdeekk33XSTduzYocLCQvv2ffv21a5du3TPPfdo6NChmj59uh577DHNmDHDnmlubtbAgQN1zTXXKCUlRcuXL9eDDz6oTz75xH4Nz5nWFhcXp7S0NN19992aPn26oqOjz/OnGWjlypX65ptvVFxcrIEDB9pfXe34TJs2TW1tbV0+LXa6oKAgff3113rggQc0dOhQTZkyRXfccYeeeuqpv2u9QG/msM70BD0AoEuDBg1SQUHBRfk1Ic8884xKS0v1+eefX/DHAkzEjhAAXIKOHTum6upqvfjii8rPz+/p5QC9FiEEAJegxx57TLfeeqvS0tK+19NiAH4YnhoDAADGYkcIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYKz/BxZyRUB3SAEuAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "# 提示:value_counts\n",
+ "print(y.value_counts())\n",
+ "\n",
+ "# 绘制两种类别的柱状图\n",
+ "# 提示:dataframe可以直接plot(kind='bar')\n",
+ "y.value_counts().plot(kind='bar')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "count 76053.000000\n",
+ "mean 51.343129\n",
+ "std 14.437048\n",
+ "min 0.000000\n",
+ "25% 41.000000\n",
+ "50% 51.000000\n",
+ "75% 62.000000\n",
+ "max 103.000000\n",
+ "Name: age, dtype: float64"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#查看分桶边界\n",
+ "X_train['age'].describe()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([ 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36,\n",
+ " 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75,\n",
+ " 78, 81, 84, 87, 90, 93, 96, 99, 102, 105])"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bins=np.arange(0,106,3)#分箱\n",
+ "bins"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "X_train.loc[:,'age_bins']=pd.cut(X_train['age'],bins) #区间离散化\n",
+ "X_test.loc[:,'age_bins']=pd.cut(X_test['age'],bins) #区间离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 11), (32595, 11), (76053,), (32595,))"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看新数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " age age_bins\n",
+ "64329 27.0 (24, 27]\n",
+ "70087 83.0 (81, 84]\n",
+ "77642 72.0 (69, 72]\n",
+ "6017 56.0 (54, 57]\n",
+ "106521 83.0 (81, 84]\n",
+ "... ... ...\n",
+ "22092 48.0 (45, 48]\n",
+ "47726 28.0 (27, 30]\n",
+ "44326 67.0 (66, 69]\n",
+ "45320 29.0 (27, 30]\n",
+ "70966 58.0 (57, 60]\n",
+ "\n",
+ "[76053 rows x 2 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(X_train[['age','age_bins']])#查看区间离散化情况\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_bins_(0, 3] \n",
+ " age_bins_(3, 6] \n",
+ " age_bins_(6, 9] \n",
+ " age_bins_(9, 12] \n",
+ " age_bins_(12, 15] \n",
+ " age_bins_(15, 18] \n",
+ " age_bins_(18, 21] \n",
+ " age_bins_(21, 24] \n",
+ " age_bins_(24, 27] \n",
+ " age_bins_(27, 30] \n",
+ " age_bins_(30, 33] \n",
+ " age_bins_(33, 36] \n",
+ " age_bins_(36, 39] \n",
+ " age_bins_(39, 42] \n",
+ " age_bins_(42, 45] \n",
+ " age_bins_(45, 48] \n",
+ " age_bins_(48, 51] \n",
+ " age_bins_(51, 54] \n",
+ " age_bins_(54, 57] \n",
+ " age_bins_(57, 60] \n",
+ " age_bins_(60, 63] \n",
+ " age_bins_(63, 66] \n",
+ " age_bins_(66, 69] \n",
+ " age_bins_(69, 72] \n",
+ " age_bins_(72, 75] \n",
+ " age_bins_(75, 78] \n",
+ " age_bins_(78, 81] \n",
+ " age_bins_(81, 84] \n",
+ " age_bins_(84, 87] \n",
+ " age_bins_(87, 90] \n",
+ " age_bins_(90, 93] \n",
+ " age_bins_(93, 96] \n",
+ " age_bins_(96, 99] \n",
+ " age_bins_(99, 102] \n",
+ " age_bins_(102, 105] \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 64329 \n",
+ " 0.116959 \n",
+ " 27.0 \n",
+ " 0.0 \n",
+ " 0.326024 \n",
+ " 3100.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 70087 \n",
+ " 0.050666 \n",
+ " 83.0 \n",
+ " 0.0 \n",
+ " 0.177182 \n",
+ " 10000.0 \n",
+ " 9.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 77642 \n",
+ " 0.038865 \n",
+ " 72.0 \n",
+ " 0.0 \n",
+ " 0.016600 \n",
+ " 5722.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 6017 \n",
+ " 0.023513 \n",
+ " 56.0 \n",
+ " 0.0 \n",
+ " 0.266260 \n",
+ " 10500.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 106521 \n",
+ " 0.039350 \n",
+ " 83.0 \n",
+ " 0.0 \n",
+ " 0.195179 \n",
+ " 1700.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 22092 \n",
+ " 0.576336 \n",
+ " 48.0 \n",
+ " 1.0 \n",
+ " 0.303042 \n",
+ " 10750.0 \n",
+ " 17.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 47726 \n",
+ " 1.000000 \n",
+ " 28.0 \n",
+ " 0.0 \n",
+ " 0.068123 \n",
+ " 2700.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 44326 \n",
+ " 0.275989 \n",
+ " 67.0 \n",
+ " 0.0 \n",
+ " 0.267683 \n",
+ " 4000.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 45320 \n",
+ " 0.979204 \n",
+ " 29.0 \n",
+ " 1.0 \n",
+ " 0.098725 \n",
+ " 4000.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 70966 \n",
+ " 0.102984 \n",
+ " 58.0 \n",
+ " 2.0 \n",
+ " 0.191410 \n",
+ " 10500.0 \n",
+ " 17.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
76053 rows × 45 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "64329 0.116959 27.0 \n",
+ "70087 0.050666 83.0 \n",
+ "77642 0.038865 72.0 \n",
+ "6017 0.023513 56.0 \n",
+ "106521 0.039350 83.0 \n",
+ "... ... ... \n",
+ "22092 0.576336 48.0 \n",
+ "47726 1.000000 28.0 \n",
+ "44326 0.275989 67.0 \n",
+ "45320 0.979204 29.0 \n",
+ "70966 0.102984 58.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "64329 0.0 0.326024 3100.0 \n",
+ "70087 0.0 0.177182 10000.0 \n",
+ "77642 0.0 0.016600 5722.0 \n",
+ "6017 0.0 0.266260 10500.0 \n",
+ "106521 0.0 0.195179 1700.0 \n",
+ "... ... ... ... \n",
+ "22092 1.0 0.303042 10750.0 \n",
+ "47726 0.0 0.068123 2700.0 \n",
+ "44326 0.0 0.267683 4000.0 \n",
+ "45320 1.0 0.098725 4000.0 \n",
+ "70966 2.0 0.191410 10500.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "64329 7.0 0.0 \n",
+ "70087 9.0 0.0 \n",
+ "77642 7.0 0.0 \n",
+ "6017 8.0 0.0 \n",
+ "106521 3.0 0.0 \n",
+ "... ... ... \n",
+ "22092 17.0 0.0 \n",
+ "47726 2.0 0.0 \n",
+ "44326 4.0 0.0 \n",
+ "45320 5.0 0.0 \n",
+ "70966 17.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "64329 0.0 0.0 \n",
+ "70087 1.0 0.0 \n",
+ "77642 0.0 0.0 \n",
+ "6017 2.0 0.0 \n",
+ "106521 0.0 0.0 \n",
+ "... ... ... \n",
+ "22092 1.0 0.0 \n",
+ "47726 0.0 0.0 \n",
+ "44326 1.0 0.0 \n",
+ "45320 0.0 0.0 \n",
+ "70966 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_bins_(0, 3] age_bins_(3, 6] age_bins_(6, 9] \\\n",
+ "64329 1.0 False False False \n",
+ "70087 0.0 False False False \n",
+ "77642 0.0 False False False \n",
+ "6017 3.0 False False False \n",
+ "106521 0.0 False False False \n",
+ "... ... ... ... ... \n",
+ "22092 3.0 False False False \n",
+ "47726 0.0 False False False \n",
+ "44326 0.0 False False False \n",
+ "45320 3.0 False False False \n",
+ "70966 0.0 False False False \n",
+ "\n",
+ " age_bins_(9, 12] age_bins_(12, 15] age_bins_(15, 18] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(18, 21] age_bins_(21, 24] age_bins_(24, 27] \\\n",
+ "64329 False False True \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(27, 30] age_bins_(30, 33] age_bins_(33, 36] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 True False False \n",
+ "44326 False False False \n",
+ "45320 True False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(36, 39] age_bins_(39, 42] age_bins_(42, 45] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(45, 48] age_bins_(48, 51] age_bins_(51, 54] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 True False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(54, 57] age_bins_(57, 60] age_bins_(60, 63] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 True False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False True False \n",
+ "\n",
+ " age_bins_(63, 66] age_bins_(66, 69] age_bins_(69, 72] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False True \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False True False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(72, 75] age_bins_(75, 78] age_bins_(78, 81] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(81, 84] age_bins_(84, 87] age_bins_(87, 90] \\\n",
+ "64329 False False False \n",
+ "70087 True False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 True False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(90, 93] age_bins_(93, 96] age_bins_(96, 99] \\\n",
+ "64329 False False False \n",
+ "70087 False False False \n",
+ "77642 False False False \n",
+ "6017 False False False \n",
+ "106521 False False False \n",
+ "... ... ... ... \n",
+ "22092 False False False \n",
+ "47726 False False False \n",
+ "44326 False False False \n",
+ "45320 False False False \n",
+ "70966 False False False \n",
+ "\n",
+ " age_bins_(99, 102] age_bins_(102, 105] \n",
+ "64329 False False \n",
+ "70087 False False \n",
+ "77642 False False \n",
+ "6017 False False \n",
+ "106521 False False \n",
+ "... ... ... \n",
+ "22092 False False \n",
+ "47726 False False \n",
+ "44326 False False \n",
+ "45320 False False \n",
+ "70966 False False \n",
+ "\n",
+ "[76053 rows x 45 columns]"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n",
+ "\n",
+ "\n",
+ "#pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)\n",
+ "#对分箱后的年龄进行独热向量编码,即将不同的年龄分区值变成不同的列名\n",
+ "\n",
+ "age=pd.get_dummies(X_train,columns=['age_bins'],prefix_sep='_')\n",
+ "age\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10))"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "std=StandardScaler()\n",
+ "\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True, random_state=0)#70%的训练集,30%的测试集,random_state 随机切分的标记\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape\n",
+ "\n",
+ "#标准化\n",
+ "X_train_std=std.fit_transform(X_train)\n",
+ "X_test_std=std.fit_transform(X_test)\n",
+ "## 查看数据维度\n",
+ "X_train_std.shape, X_test_std.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "-4.295787804590142e-17\n",
+ "1.0\n",
+ "-3.0387991214897363e-17\n",
+ "0.9999999999999999\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(X_train_std.mean()) # 瞅一眼训练集的平均值\n",
+ "print(X_train_std.std()) # 瞅一眼训练集的方差\n",
+ "print(X_test_std.mean()) # 瞅一眼测试集的平均值\n",
+ "print(X_test_std.std()) # 瞅一眼测试集的方差"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "测试集预测不对的样本数: 2156\n",
+ "系数为 [[-0.01428302 -0.36429906 1.72892458 0.31210449 -0.11519959 -0.09188134\n",
+ " 1.68983565 -0.1964285 -3.24882741 0.11639198]]\n",
+ "训练集的准确率:0.933\n",
+ "测试集的准确率:0.934\n",
+ "截距: -2.859\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_570228/4124148766.py:28: DeprecationWarning: Conversion of an array with ndim > 0 to a scalar is deprecated, and will error in future. Ensure you extract a single element from your array before performing this operation. (Deprecated NumPy 1.25.)\n",
+ " print('截距: %.3f'%lr_intercept)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "# 建立模型\n",
+ "lr = LogisticRegression(C=100.0**40, random_state=0, penalty='l2') \n",
+ "# 训练模型\n",
+ "lr.fit(X_train_std, y_train)\n",
+ "#预测\n",
+ "y_train_pred = lr.predict(np.array(X_train_std)) # 训练集上的预测\n",
+ "y_test_pred = lr.predict(np.array(X_test_std)) # 测试集上的预测\n",
+ "\n",
+ "# 测试集预测不对的样本数\n",
+ "print('测试集预测不对的样本数: %d' % (y_test != y_test_pred).sum()) \n",
+ "\n",
+ "#系数\n",
+ "lr_Coef =lr.coef_\n",
+ "print(\"系数为\",lr_Coef)\n",
+ "\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "#准确率\n",
+ "train_acc=accuracy_score(y_train, y_train_pred)\n",
+ "test_acc=accuracy_score(y_test, y_test_pred)\n",
+ "print(\"训练集的准确率:%.3f\"%train_acc)\n",
+ "print(\"测试集的准确率:%.3f\"%test_acc)\n",
+ "\n",
+ "# 截距\n",
+ "lr_intercept=lr.intercept_\n",
+ "print('截距: %.3f'%lr_intercept)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "#创建网格\n",
+ "param_grid = {'C': [1, 10, 100, 500],\n",
+ " 'penalty': ['l1','l2']}\n",
+ "\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "lr = LogisticRegression() \n",
+ "#五折网格搜索\n",
+ "grid_search = GridSearchCV(lr,param_grid,cv=5)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/sp/.local/lib/python3.9/site-packages/sklearn/model_selection/_validation.py:425: FitFailedWarning: \n",
+ "20 fits failed out of a total of 40.\n",
+ "The score on these train-test partitions for these parameters will be set to nan.\n",
+ "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n",
+ "\n",
+ "Below are more details about the failures:\n",
+ "--------------------------------------------------------------------------------\n",
+ "20 fits failed with the following error:\n",
+ "Traceback (most recent call last):\n",
+ " File \"/home/sp/.local/lib/python3.9/site-packages/sklearn/model_selection/_validation.py\", line 729, in _fit_and_score\n",
+ " estimator.fit(X_train, y_train, **fit_params)\n",
+ " File \"/home/sp/.local/lib/python3.9/site-packages/sklearn/base.py\", line 1152, in wrapper\n",
+ " return fit_method(estimator, *args, **kwargs)\n",
+ " File \"/home/sp/.local/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py\", line 1169, in fit\n",
+ " solver = _check_solver(self.solver, self.penalty, self.dual)\n",
+ " File \"/home/sp/.local/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py\", line 56, in _check_solver\n",
+ " raise ValueError(\n",
+ "ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.\n",
+ "\n",
+ " warnings.warn(some_fits_failed_message, FitFailedWarning)\n",
+ "/home/sp/.local/lib/python3.9/site-packages/sklearn/model_selection/_search.py:979: UserWarning: One or more of the test scores are non-finite: [ nan 0.93300724 nan 0.93307299 nan 0.93305984\n",
+ " nan 0.93305984]\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "最好的超参数: {'C': 10, 'penalty': 'l2'}\n",
+ "最好的模型: LogisticRegression(C=10)\n"
+ ]
+ }
+ ],
+ "source": [
+ "grid_search.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 输出最好的超参数\n",
+ "print(\"最好的超参数: \", grid_search.best_params_)\n",
+ "\n",
+ "# 输出最好的模型\n",
+ "print(\"最好的模型: \", grid_search.best_estimator_)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "查准率: 0.9338855652707471\n",
+ "查全率: 0.046522339935513586\n",
+ "auc: 0.5218642464862948\n",
+ "f1值: 0.08570216376750106\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "from sklearn.metrics import accuracy_score,recall_score,roc_auc_score,confusion_matrix,f1_score,ConfusionMatrixDisplay\n",
+ "lr_best=LogisticRegression(C=10,penalty='l2')\n",
+ "lr_best.fit(X_train_std,y_train)\n",
+ "lr_best_pred=lr_best.predict(X_test_std)\n",
+ "\n",
+ "print('查准率: ',lr_best.score(X_test_std,y_test))\n",
+ "print('查全率: ',recall_score(y_test, lr_best_pred))\n",
+ "print('auc: ',roc_auc_score(y_test, lr_best_pred))\n",
+ "print('f1值: ',f1_score(y_test, lr_best_pred))\n",
+ "\n",
+ "lr_best_cm = confusion_matrix(y_test,lr_best_pred)\n",
+ "\n",
+ "cm_display = ConfusionMatrixDisplay(lr_best_cm).plot()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "阈值为0.5的准确率: 0.9338855652707471\n",
+ "阈值为0.3的准确率: 0.9336401288541187\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Text(0.5, 1.0, 'threshold:0.3')"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "lr_best=LogisticRegression(C=10,penalty='l2')\n",
+ "lr_best.fit(X_train_std,y_train)\n",
+ "acc1=lr_best.score(X_test_std,y_test)\n",
+ "print('阈值为0.5的准确率:',acc1)\n",
+ " \n",
+ "# 预测样本属于正类的概率\n",
+ "y_prob = lr_best.decision_function(X_test_std)\n",
+ "# 设置阈值\n",
+ "threshold = 0.3\n",
+ "# 将概率值转换为类别\n",
+ "lr_best_pred2 = [1 if prob >= threshold else 0 for prob in y_prob]\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "# 计算准确性\n",
+ "acc2 = accuracy_score(y_test, lr_best_pred2)\n",
+ "print(\"阈值为0.3的准确率:\", acc2)\n",
+ "\n",
+ "\n",
+ "# 画混淆矩阵图\n",
+ "cm = confusion_matrix(y_test,lr_best_pred)\n",
+ "cm_display = ConfusionMatrixDisplay(cm).plot()\n",
+ "plt.title('threshold:0.5')\n",
+ "\n",
+ "cm2 = confusion_matrix(y_test,lr_best_pred2)\n",
+ "cm_display2 = ConfusionMatrixDisplay(cm2).plot()\n",
+ "plt.title('threshold:0.3')\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "十个特征的重要性 [[-0.01428717 -0.36429751 1.72767996 0.31211219 -0.11518815 -0.09190189\n",
+ " 1.68720119 -0.19646079 -3.24496378 0.11641158]]\n",
+ "用于特征选择的阈值; 0.7870504201386906\n",
+ "特征是否保留 [False False True False False False True False True False]\n",
+ "特征提取结果 [[-0.10690634 -0.06094714 -0.05438132]\n",
+ " [-0.10690634 -0.06094714 -0.05438132]\n",
+ " [-0.10690634 -0.06094714 -0.05438132]\n",
+ " ...\n",
+ " [-0.10690634 -0.06094714 -0.05438132]\n",
+ " [ 0.17284964 -0.06094714 -0.05438132]\n",
+ " [ 0.45260561 -0.06094714 -0.05438132]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "from sklearn.feature_selection import SelectFromModel\n",
+ "\n",
+ "lr=LogisticRegression(C=10,penalty='l2')\n",
+ "# sfm=SelectFromModel(lr,prefit=True)\n",
+ "\n",
+ "# X_train_std_selected=sfm.transform(X_train_std)\n",
+ "# lr_selected = LogisticRegression(C=10,penalty='l2')\n",
+ "# lr_selected.fit(X_train_std_selected, y_train)\n",
+ "\n",
+ "\n",
+ "# 建立评估器\n",
+ "selector = SelectFromModel(estimator=lr).fit(X_train_std, y_train)\n",
+ "# estimator的模型参数系数\n",
+ "print(\"十个特征的重要性\",selector.estimator_.coef_)\n",
+ "\n",
+ "# 根据estimator中特征重要性均值获得阈值\n",
+ "print(\"用于特征选择的阈值;\",selector.threshold_)\n",
+ "\n",
+ "# 哪些特征入选最后特征,true表示入选\n",
+ "print(\"特征是否保留\",selector.get_support())\n",
+ "# 获得最后结果\n",
+ "print(\"特征提取结果\",selector.transform(X_train_std))\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "最好的超参数: {'criterion': 'log_loss', 'n_estimators': 100}\n",
+ "最好的模型: RandomForestClassifier(criterion='log_loss')\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 随机森林\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "param_grid = {'criterion': ['gini', 'entropy', 'log_loss'],\n",
+ " 'n_estimators': [10,50,100]}\n",
+ "model = RandomForestClassifier() \n",
+ "\n",
+ "#五折网格搜索\n",
+ "grid_search = GridSearchCV(model,param_grid,cv=5)\n",
+ "grid_search.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 输出最好的超参数\n",
+ "print(\"最好的超参数: \", grid_search.best_params_)\n",
+ "\n",
+ "# 输出最好的模型\n",
+ "print(\"最好的模型: \", grid_search.best_estimator_)\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9356036201871453"
+ ]
+ },
+ "execution_count": 82,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "forest_best = RandomForestClassifier(criterion='log_loss', \n",
+ " n_estimators=100, # The number of trees in the forest.\n",
+ " )\n",
+ "# 训练模型\n",
+ "forest_best.fit(X_train_std, y_train)\n",
+ "#评估模型\n",
+ "forest_best.score(X_test_std, y_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "\n",
+ "param_grid = {'kernel': ['linear', 'rbf'],'max_iter': [100000] }\n",
+ "model = SVC()\n",
+ "\n",
+ "#五折网格搜索\n",
+ "grid_search = GridSearchCV(model,param_grid,cv=5)\n",
+ "grid_search.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 输出最好的超参数\n",
+ "print(\"最好的超参数: \", grid_search.best_params_)\n",
+ "\n",
+ "#耗时太久"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/sp/.local/lib/python3.9/site-packages/sklearn/svm/_base.py:297: ConvergenceWarning: Solver terminated early (max_iter=100000). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "0.9334560515416475"
+ ]
+ },
+ "execution_count": 20,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.svm import SVC\n",
+ "SVM_best = SVC(kernel='linear',max_iter=100000)\n",
+ "# 训练模型\n",
+ "SVM_best.fit(X_train_std, y_train)\n",
+ "#评估模型\n",
+ "SVM_best.score(X_test_std, y_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "最好的超参数: {'n_neighbors': 7}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# K近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "param_grid = {'n_neighbors': [5,6,7]\n",
+ " }\n",
+ "model = knn = KNeighborsClassifier(metric='minkowski')\n",
+ "\n",
+ "#五折网格搜索\n",
+ "grid_search = GridSearchCV(model,param_grid,cv=5)\n",
+ "grid_search.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 输出最好的超参数\n",
+ "print(\"最好的超参数: \", grid_search.best_params_)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9336401288541187"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "knn_best = KNeighborsClassifier(n_neighbors=7, metric='minkowski')\n",
+ "# 训练模型\n",
+ "knn_best.fit(X_train_std, y_train)\n",
+ "#评估模型\n",
+ "knn_best.score(X_test_std, y_test)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "tdi",
+ "language": "python",
+ "name": "tdi"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.16"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/TinglanWang b/2023/homework/TinglanWang
deleted file mode 160000
index 29edfff4..00000000
--- a/2023/homework/TinglanWang
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 29edfff435514b020a6b22966debdca091d28662
diff --git a/2023/homework/TinglanWang/homework_credit_scoring.ipynb b/2023/homework/TinglanWang/homework_credit_scoring.ipynb
new file mode 100644
index 00000000..0a65bc25
--- /dev/null
+++ b/2023/homework/TinglanWang/homework_credit_scoring.ipynb
@@ -0,0 +1,1873 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "pd.set_option('display.max_columns', 500)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "DataDictionary_path = \"/home/Wangtl2022/PyProjects/Bootcamp/Data Dictionary.xls\"\n",
+ "cs_test_path = \"/home/Wangtl2022/PyProjects/Bootcamp/cs-test.csv\"\n",
+ "cs_train_path = \"/home/Wangtl2022/PyProjects/Bootcamp/cs-training.csv\"\n",
+ "se_path = \"/home/Wangtl2022/PyProjects/Bootcamp/sampleEntry.csv\"\n",
+ "\n",
+ "DataDictionary = pd.read_excel(DataDictionary_path)\n",
+ "cs_train = pd.read_csv(cs_train_path)\n",
+ "cs_test = pd.read_csv(cs_test_path)\n",
+ "se = pd.read_csv(se_path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#!pip install xlrd"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Unnamed: 0 \n",
+ " Unnamed: 1 \n",
+ " Unnamed: 2 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " Variable Name \n",
+ " Description \n",
+ " Type \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " SeriousDlqin2yrs \n",
+ " Person experienced 90 days past due delinquenc... \n",
+ " Y/N \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " Total balance on credit cards and personal lin... \n",
+ " percentage \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " age \n",
+ " Age of borrower in years \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " Number of times borrower has been 30-59 days p... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " DebtRatio \n",
+ " Monthly debt payments, alimony,living costs di... \n",
+ " percentage \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " MonthlyIncome \n",
+ " Monthly income \n",
+ " real \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " Number of Open loans (installment like car loa... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " NumberOfTimes90DaysLate \n",
+ " Number of times borrower has been 90 days or m... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " NumberRealEstateLoansOrLines \n",
+ " Number of mortgage and real estate loans inclu... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " Number of times borrower has been 60-89 days p... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " NumberOfDependents \n",
+ " Number of dependents in family excluding thems... \n",
+ " integer \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Unnamed: 0 \\\n",
+ "0 Variable Name \n",
+ "1 SeriousDlqin2yrs \n",
+ "2 RevolvingUtilizationOfUnsecuredLines \n",
+ "3 age \n",
+ "4 NumberOfTime30-59DaysPastDueNotWorse \n",
+ "5 DebtRatio \n",
+ "6 MonthlyIncome \n",
+ "7 NumberOfOpenCreditLinesAndLoans \n",
+ "8 NumberOfTimes90DaysLate \n",
+ "9 NumberRealEstateLoansOrLines \n",
+ "10 NumberOfTime60-89DaysPastDueNotWorse \n",
+ "11 NumberOfDependents \n",
+ "\n",
+ " Unnamed: 1 Unnamed: 2 \n",
+ "0 Description Type \n",
+ "1 Person experienced 90 days past due delinquenc... Y/N \n",
+ "2 Total balance on credit cards and personal lin... percentage \n",
+ "3 Age of borrower in years integer \n",
+ "4 Number of times borrower has been 30-59 days p... integer \n",
+ "5 Monthly debt payments, alimony,living costs di... percentage \n",
+ "6 Monthly income real \n",
+ "7 Number of Open loans (installment like car loa... integer \n",
+ "8 Number of times borrower has been 90 days or m... integer \n",
+ "9 Number of mortgage and real estate loans inclu... integer \n",
+ "10 Number of times borrower has been 60-89 days p... integer \n",
+ "11 Number of dependents in family excluding thems... integer "
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "DataDictionary"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Unnamed: 0 \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45 \n",
+ " 2 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13 \n",
+ " 0 \n",
+ " 6 \n",
+ " 0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40 \n",
+ " 0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38 \n",
+ " 1 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30 \n",
+ " 0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49 \n",
+ " 1 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 149995 \n",
+ " 149996 \n",
+ " 0 \n",
+ " 0.040674 \n",
+ " 74 \n",
+ " 0 \n",
+ " 0.225131 \n",
+ " 2100.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 149996 \n",
+ " 149997 \n",
+ " 0 \n",
+ " 0.299745 \n",
+ " 44 \n",
+ " 0 \n",
+ " 0.716562 \n",
+ " 5584.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 149997 \n",
+ " 149998 \n",
+ " 0 \n",
+ " 0.246044 \n",
+ " 58 \n",
+ " 0 \n",
+ " 3870.000000 \n",
+ " NaN \n",
+ " 18 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 149998 \n",
+ " 149999 \n",
+ " 0 \n",
+ " 0.000000 \n",
+ " 30 \n",
+ " 0 \n",
+ " 0.000000 \n",
+ " 5716.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 149999 \n",
+ " 150000 \n",
+ " 0 \n",
+ " 0.850283 \n",
+ " 64 \n",
+ " 0 \n",
+ " 0.249908 \n",
+ " 8158.0 \n",
+ " 8 \n",
+ " 0 \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
150000 rows × 12 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Unnamed: 0 SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines \\\n",
+ "0 1 1 0.766127 \n",
+ "1 2 0 0.957151 \n",
+ "2 3 0 0.658180 \n",
+ "3 4 0 0.233810 \n",
+ "4 5 0 0.907239 \n",
+ "... ... ... ... \n",
+ "149995 149996 0 0.040674 \n",
+ "149996 149997 0 0.299745 \n",
+ "149997 149998 0 0.246044 \n",
+ "149998 149999 0 0.000000 \n",
+ "149999 150000 0 0.850283 \n",
+ "\n",
+ " age NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 45 2 0.802982 9120.0 \n",
+ "1 40 0 0.121876 2600.0 \n",
+ "2 38 1 0.085113 3042.0 \n",
+ "3 30 0 0.036050 3300.0 \n",
+ "4 49 1 0.024926 63588.0 \n",
+ "... ... ... ... ... \n",
+ "149995 74 0 0.225131 2100.0 \n",
+ "149996 44 0 0.716562 5584.0 \n",
+ "149997 58 0 3870.000000 NaN \n",
+ "149998 30 0 0.000000 5716.0 \n",
+ "149999 64 0 0.249908 8158.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13 0 \n",
+ "1 4 0 \n",
+ "2 2 1 \n",
+ "3 5 0 \n",
+ "4 7 0 \n",
+ "... ... ... \n",
+ "149995 4 0 \n",
+ "149996 4 0 \n",
+ "149997 18 0 \n",
+ "149998 4 0 \n",
+ "149999 8 0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6 0 \n",
+ "1 0 0 \n",
+ "2 0 0 \n",
+ "3 0 0 \n",
+ "4 1 0 \n",
+ "... ... ... \n",
+ "149995 1 0 \n",
+ "149996 1 0 \n",
+ "149997 1 0 \n",
+ "149998 0 0 \n",
+ "149999 2 0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 \n",
+ "... ... \n",
+ "149995 0.0 \n",
+ "149996 2.0 \n",
+ "149997 0.0 \n",
+ "149998 0.0 \n",
+ "149999 0.0 \n",
+ "\n",
+ "[150000 rows x 12 columns]"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cs_train"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Id \n",
+ " Probability \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.080807 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " 0.040719 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " 0.011968 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " 0.067640 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " 0.108264 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 101498 \n",
+ " 101499 \n",
+ " 0.045363 \n",
+ " \n",
+ " \n",
+ " 101499 \n",
+ " 101500 \n",
+ " 0.343775 \n",
+ " \n",
+ " \n",
+ " 101500 \n",
+ " 101501 \n",
+ " 0.006970 \n",
+ " \n",
+ " \n",
+ " 101501 \n",
+ " 101502 \n",
+ " 0.121994 \n",
+ " \n",
+ " \n",
+ " 101502 \n",
+ " 101503 \n",
+ " 0.044248 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
101503 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Id Probability\n",
+ "0 1 0.080807\n",
+ "1 2 0.040719\n",
+ "2 3 0.011968\n",
+ "3 4 0.067640\n",
+ "4 5 0.108264\n",
+ "... ... ...\n",
+ "101498 101499 0.045363\n",
+ "101499 101500 0.343775\n",
+ "101500 101501 0.006970\n",
+ "101501 101502 0.121994\n",
+ "101502 101503 0.044248\n",
+ "\n",
+ "[101503 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "se"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Unnamed: 0 \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " NaN \n",
+ " 0.885519 \n",
+ " 43 \n",
+ " 0 \n",
+ " 0.177513 \n",
+ " 5700.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 2 \n",
+ " NaN \n",
+ " 0.463295 \n",
+ " 57 \n",
+ " 0 \n",
+ " 0.527237 \n",
+ " 9141.0 \n",
+ " 15 \n",
+ " 0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 3 \n",
+ " NaN \n",
+ " 0.043275 \n",
+ " 59 \n",
+ " 0 \n",
+ " 0.687648 \n",
+ " 5083.0 \n",
+ " 12 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4 \n",
+ " NaN \n",
+ " 0.280308 \n",
+ " 38 \n",
+ " 1 \n",
+ " 0.925961 \n",
+ " 3200.0 \n",
+ " 7 \n",
+ " 0 \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5 \n",
+ " NaN \n",
+ " 1.000000 \n",
+ " 27 \n",
+ " 0 \n",
+ " 0.019917 \n",
+ " 3865.0 \n",
+ " 4 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 101498 \n",
+ " 101499 \n",
+ " NaN \n",
+ " 0.282653 \n",
+ " 24 \n",
+ " 0 \n",
+ " 0.068522 \n",
+ " 1400.0 \n",
+ " 5 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 101499 \n",
+ " 101500 \n",
+ " NaN \n",
+ " 0.922156 \n",
+ " 36 \n",
+ " 3 \n",
+ " 0.934217 \n",
+ " 7615.0 \n",
+ " 8 \n",
+ " 0 \n",
+ " 2 \n",
+ " 0 \n",
+ " 4.0 \n",
+ " \n",
+ " \n",
+ " 101500 \n",
+ " 101501 \n",
+ " NaN \n",
+ " 0.081596 \n",
+ " 70 \n",
+ " 0 \n",
+ " 836.000000 \n",
+ " NaN \n",
+ " 3 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " NaN \n",
+ " \n",
+ " \n",
+ " 101501 \n",
+ " 101502 \n",
+ " NaN \n",
+ " 0.335457 \n",
+ " 56 \n",
+ " 0 \n",
+ " 3568.000000 \n",
+ " NaN \n",
+ " 8 \n",
+ " 0 \n",
+ " 2 \n",
+ " 1 \n",
+ " 3.0 \n",
+ " \n",
+ " \n",
+ " 101502 \n",
+ " 101503 \n",
+ " NaN \n",
+ " 0.441842 \n",
+ " 29 \n",
+ " 0 \n",
+ " 0.198918 \n",
+ " 5916.0 \n",
+ " 12 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
101503 rows × 12 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Unnamed: 0 SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines \\\n",
+ "0 1 NaN 0.885519 \n",
+ "1 2 NaN 0.463295 \n",
+ "2 3 NaN 0.043275 \n",
+ "3 4 NaN 0.280308 \n",
+ "4 5 NaN 1.000000 \n",
+ "... ... ... ... \n",
+ "101498 101499 NaN 0.282653 \n",
+ "101499 101500 NaN 0.922156 \n",
+ "101500 101501 NaN 0.081596 \n",
+ "101501 101502 NaN 0.335457 \n",
+ "101502 101503 NaN 0.441842 \n",
+ "\n",
+ " age NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 43 0 0.177513 5700.0 \n",
+ "1 57 0 0.527237 9141.0 \n",
+ "2 59 0 0.687648 5083.0 \n",
+ "3 38 1 0.925961 3200.0 \n",
+ "4 27 0 0.019917 3865.0 \n",
+ "... ... ... ... ... \n",
+ "101498 24 0 0.068522 1400.0 \n",
+ "101499 36 3 0.934217 7615.0 \n",
+ "101500 70 0 836.000000 NaN \n",
+ "101501 56 0 3568.000000 NaN \n",
+ "101502 29 0 0.198918 5916.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 4 0 \n",
+ "1 15 0 \n",
+ "2 12 0 \n",
+ "3 7 0 \n",
+ "4 4 0 \n",
+ "... ... ... \n",
+ "101498 5 0 \n",
+ "101499 8 0 \n",
+ "101500 3 0 \n",
+ "101501 8 0 \n",
+ "101502 12 0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 0 0 \n",
+ "1 4 0 \n",
+ "2 1 0 \n",
+ "3 2 0 \n",
+ "4 0 0 \n",
+ "... ... ... \n",
+ "101498 0 0 \n",
+ "101499 2 0 \n",
+ "101500 0 0 \n",
+ "101501 2 1 \n",
+ "101502 0 0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 0.0 \n",
+ "1 2.0 \n",
+ "2 2.0 \n",
+ "3 0.0 \n",
+ "4 1.0 \n",
+ "... ... \n",
+ "101498 0.0 \n",
+ "101499 4.0 \n",
+ "101500 NaN \n",
+ "101501 3.0 \n",
+ "101502 0.0 \n",
+ "\n",
+ "[101503 rows x 12 columns]"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cs_test"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cs_train = cs_train.drop(columns=[\"Unnamed: 0\"])\n",
+ "#删除无用列"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cs_test = cs_test.drop(columns=[\"Unnamed: 0\",\"SeriousDlqin2yrs\"])\n",
+ "#删除无用列和label列"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 0\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 29731\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 3924\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cs_train.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 0\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 20103\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 2626\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cs_test.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cs_train.dropna(inplace=True)\n",
+ "cs_test.dropna(inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((120269, 11), (81400, 10))"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cs_train.shape,cs_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "y =cs_train['SeriousDlqin2yrs']\n",
+ "X = cs_train.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.linear_model import LogisticRegression"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib64/python3.6/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "LogisticRegression(max_iter=300)"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import accuracy_score\n",
+ "\n",
+ "\n",
+ "lr = LogisticRegression(max_iter=200)\n",
+ "##迭代次数默认为100,结果显示不收敛(但acc=0.93),因此调整为200.\n",
+ "\n",
+ "lr.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier(random_state=42)"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "\n",
+ "DT = DecisionTreeClassifier(random_state=42)\n",
+ "\n",
+ "# 训练模型\n",
+ "DT.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "RandomForestClassifier(max_depth=1, n_estimators=1, random_state=42)"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "RF = RandomForestClassifier(n_estimators = 1, max_depth = 1, random_state = 42)\n",
+ "\n",
+ "RF.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=2000). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "SVC(kernel='linear', max_iter=2000, random_state=42)"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.svm import SVC\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "\n",
+ "svc = SVC(kernel='linear', max_iter = 2000,random_state=42) #收敛太慢,因此设置最大迭代次数\n",
+ "\n",
+ "svc.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n",
+ "\n",
+ "knn = KNeighborsClassifier(n_neighbors=5)\n",
+ "\n",
+ "knn.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = model.predict(X_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9289515257337657"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import accuracy_score\n",
+ "\n",
+ "lr_pred = lr.predict(X_test)\n",
+ "\n",
+ "accuracy = accuracy_score(y_test, lr_pred)\n",
+ "accuracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.8903716637565477"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dt_pred = DT.predict(X_test)\n",
+ "\n",
+ "accuracy = accuracy_score(y_test, dt_pred)\n",
+ "accuracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9294088301322025"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "rf_pred = RF.predict(X_test)\n",
+ "\n",
+ "accuracy = accuracy_score(y_test, rf_pred)\n",
+ "accuracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9244200548765278"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "svc_pred = svc.predict(X_test)\n",
+ "\n",
+ "accuracy = accuracy_score(y_test, svc_pred)\n",
+ "accuracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9278290513012388"
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "knn_pred = knn.predict(X_test)\n",
+ "\n",
+ "accuracy = accuracy_score(y_test, knn_pred)\n",
+ "accuracy"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[22300, 56],\n",
+ " [ 1653, 45]])"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "cm = confusion_matrix(y_test, lr_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[22356, 0],\n",
+ " [ 1698, 0]])"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "cm = confusion_matrix(y_test, rf_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[22235, 121],\n",
+ " [ 1697, 1]])"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "cm = confusion_matrix(y_test, svc_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[20968, 1388],\n",
+ " [ 1249, 449]])"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(y_test, dt_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[22293, 63],\n",
+ " [ 1673, 25]])"
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cm = confusion_matrix(y_test, knn_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0, 0, 0, ..., 0, 0, 0])"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "lr_pred"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lr_pred_prob = lr.predict_proba(X_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0.75683688, 0.24316312])"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "lr_pred_prob"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lr_pred_new = []\n",
+ "\n",
+ "for i in lr_pred_prob:\n",
+ " if i[0]>=0.3:\n",
+ " lr_pred_new.append(0)\n",
+ " else:\n",
+ " lr_pred_new.append(1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "lr_pred_new = np.array(lr_pred_new)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(0.44554455445544555,\n",
+ " 0.026501766784452298,\n",
+ " 0.44680851063829785,\n",
+ " 0.012367491166077738)"
+ ]
+ },
+ "execution_count": 63,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import precision_score, recall_score\n",
+ "\n",
+ "#计算原来的recall和pre\n",
+ "pre = precision_score(y_test, lr_pred)\n",
+ "\n",
+ "recall = recall_score(y_test, lr_pred)\n",
+ "\n",
+ "#计算新的\n",
+ "pre_03 = precision_score(y_test, lr_pred_new)\n",
+ "\n",
+ "recall_03 = recall_score(y_test, lr_pred_new)\n",
+ "pre,recall,pre_03,recall_03"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#pre基本没变,但recall大幅下降。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "ml",
+ "language": "python",
+ "name": "ml"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/TinglanWang/homework_credit_scoring_finetune_ensemble.ipynb b/2023/homework/TinglanWang/homework_credit_scoring_finetune_ensemble.ipynb
new file mode 100644
index 00000000..f03f0fae
--- /dev/null
+++ b/2023/homework/TinglanWang/homework_credit_scoring_finetune_ensemble.ipynb
@@ -0,0 +1,3118 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/opt/conda/lib/python3.7/site-packages/ipykernel_launcher.py:3: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access\n",
+ " This is separate from the ipykernel package so we can avoid doing imports until\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "ImportError",
+ "evalue": "matplotlib is required for plotting when the default backend \"matplotlib\" is selected.",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m/tmp/ipykernel_86/4186740417.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0my_train\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue_counts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkind\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'bar'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolor\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'blue'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'red'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 890\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 891\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m__call__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 892\u001b[0;31m \u001b[0mplot_backend\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_plot_backend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"backend\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m x, y, kind, kwargs = self._get_call_args(\n",
+ "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m_get_plot_backend\u001b[0;34m(backend)\u001b[0m\n\u001b[1;32m 1812\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_backends\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbackend\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1813\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1814\u001b[0;31m \u001b[0mmodule\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_load_backend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbackend\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1815\u001b[0m \u001b[0m_backends\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mbackend\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1816\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/pandas/plotting/_core.py\u001b[0m in \u001b[0;36m_load_backend\u001b[0;34m(backend)\u001b[0m\n\u001b[1;32m 1755\u001b[0m \u001b[0;34m\"matplotlib is required for plotting when the \"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1756\u001b[0m \u001b[0;34m'default backend \"matplotlib\" is selected.'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1757\u001b[0;31m ) from None\n\u001b[0m\u001b[1;32m 1758\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mmodule\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1759\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mImportError\u001b[0m: matplotlib is required for plotting when the default backend \"matplotlib\" is selected."
+ ]
+ }
+ ],
+ "source": [
+ "y_train.value_counts().plot(kind='bar', color=['blue', 'red'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#正负样本不均衡"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 20246\n",
+ "1 1484\n",
+ "Name: SeriousDlqin2yrs, dtype: int64"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y_test.value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "# 提示:value_counts\n",
+ "\n",
+ "\n",
+ "# 绘制两种类别的柱状图\n",
+ "# 提示:dataframe可以直接plot(kind='bar')\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 40266 \n",
+ " 0.052899 \n",
+ " 80.0 \n",
+ " 0.0 \n",
+ " 0.342892 \n",
+ " 5683.0 \n",
+ " 14.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 102291 \n",
+ " 0.314817 \n",
+ " 55.0 \n",
+ " 0.0 \n",
+ " 0.133092 \n",
+ " 11600.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 1310 \n",
+ " 0.000000 \n",
+ " 36.0 \n",
+ " 4.0 \n",
+ " 0.437850 \n",
+ " 6250.0 \n",
+ " 11.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 63327 \n",
+ " 0.261331 \n",
+ " 54.0 \n",
+ " 0.0 \n",
+ " 0.395710 \n",
+ " 5733.0 \n",
+ " 16.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 48272 \n",
+ " 0.029445 \n",
+ " 58.0 \n",
+ " 0.0 \n",
+ " 0.130216 \n",
+ " 13300.0 \n",
+ " 8.0 \n",
+ " 1.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 57097 \n",
+ " 0.287522 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.221714 \n",
+ " 6778.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 79879 \n",
+ " 0.930403 \n",
+ " 38.0 \n",
+ " 0.0 \n",
+ " 0.204423 \n",
+ " 3345.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 107765 \n",
+ " 0.019931 \n",
+ " 75.0 \n",
+ " 0.0 \n",
+ " 0.004285 \n",
+ " 10500.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 898 \n",
+ " 0.087649 \n",
+ " 27.0 \n",
+ " 0.0 \n",
+ " 0.009995 \n",
+ " 2200.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 16428 \n",
+ " 0.369675 \n",
+ " 55.0 \n",
+ " 0.0 \n",
+ " 0.045960 \n",
+ " 5939.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
86918 rows × 10 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "40266 0.052899 80.0 \n",
+ "102291 0.314817 55.0 \n",
+ "1310 0.000000 36.0 \n",
+ "63327 0.261331 54.0 \n",
+ "48272 0.029445 58.0 \n",
+ "... ... ... \n",
+ "57097 0.287522 30.0 \n",
+ "79879 0.930403 38.0 \n",
+ "107765 0.019931 75.0 \n",
+ "898 0.087649 27.0 \n",
+ "16428 0.369675 55.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "40266 0.0 0.342892 5683.0 \n",
+ "102291 0.0 0.133092 11600.0 \n",
+ "1310 4.0 0.437850 6250.0 \n",
+ "63327 0.0 0.395710 5733.0 \n",
+ "48272 0.0 0.130216 13300.0 \n",
+ "... ... ... ... \n",
+ "57097 0.0 0.221714 6778.0 \n",
+ "79879 0.0 0.204423 3345.0 \n",
+ "107765 0.0 0.004285 10500.0 \n",
+ "898 0.0 0.009995 2200.0 \n",
+ "16428 0.0 0.045960 5939.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "40266 14.0 0.0 \n",
+ "102291 5.0 0.0 \n",
+ "1310 11.0 0.0 \n",
+ "63327 16.0 0.0 \n",
+ "48272 8.0 1.0 \n",
+ "... ... ... \n",
+ "57097 10.0 0.0 \n",
+ "79879 7.0 0.0 \n",
+ "107765 7.0 0.0 \n",
+ "898 2.0 0.0 \n",
+ "16428 3.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "40266 1.0 0.0 \n",
+ "102291 1.0 0.0 \n",
+ "1310 2.0 1.0 \n",
+ "63327 1.0 0.0 \n",
+ "48272 1.0 0.0 \n",
+ "... ... ... \n",
+ "57097 2.0 0.0 \n",
+ "79879 0.0 0.0 \n",
+ "107765 0.0 0.0 \n",
+ "898 0.0 1.0 \n",
+ "16428 0.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "40266 1.0 \n",
+ "102291 1.0 \n",
+ "1310 0.0 \n",
+ "63327 1.0 \n",
+ "48272 1.0 \n",
+ "... ... \n",
+ "57097 0.0 \n",
+ "79879 2.0 \n",
+ "107765 0.0 \n",
+ "898 1.0 \n",
+ "16428 1.0 \n",
+ "\n",
+ "[86918 rows x 10 columns]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_train"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "'>' not supported between instances of 'float' and 'method'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m/tmp/ipykernel_86/2388182925.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mX_train\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'age'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mX_test\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'age'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m: '>' not supported between instances of 'float' and 'method'"
+ ]
+ }
+ ],
+ "source": [
+ "max(list([X_train['age'].max,X_test['age'].max()]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ".max of 40266 80.0\n",
+ "102291 55.0\n",
+ "1310 36.0\n",
+ "63327 54.0\n",
+ "48272 58.0\n",
+ " ... \n",
+ "57097 30.0\n",
+ "79879 38.0\n",
+ "107765 75.0\n",
+ "898 27.0\n",
+ "16428 55.0\n",
+ "Name: age, Length: 86918, dtype: float64>"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_train['age'].max"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "101.0"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_test['age'].max()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "edges = list(range(0, int(X_test['age'].max())+4,3))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train['agegroup'] = pd.cut(X_train['age'], bins=edges,labels=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_test['agegroup'] = pd.cut(X_test['age'], bins=edges,labels=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "one_hot = pd.get_dummies(X_train['agegroup'], prefix='agegroup')\n",
+ "\n",
+ "X_train = pd.concat([X_train, one_hot], axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " agegroup \n",
+ " agegroup_6.0 \n",
+ " agegroup_7.0 \n",
+ " agegroup_8.0 \n",
+ " agegroup_9.0 \n",
+ " agegroup_10.0 \n",
+ " agegroup_11.0 \n",
+ " agegroup_12.0 \n",
+ " agegroup_13.0 \n",
+ " agegroup_14.0 \n",
+ " agegroup_15.0 \n",
+ " agegroup_16.0 \n",
+ " agegroup_17.0 \n",
+ " agegroup_18.0 \n",
+ " agegroup_19.0 \n",
+ " agegroup_20.0 \n",
+ " agegroup_21.0 \n",
+ " agegroup_22.0 \n",
+ " agegroup_23.0 \n",
+ " agegroup_24.0 \n",
+ " agegroup_25.0 \n",
+ " agegroup_26.0 \n",
+ " agegroup_27.0 \n",
+ " agegroup_28.0 \n",
+ " agegroup_29.0 \n",
+ " agegroup_30.0 \n",
+ " agegroup_31.0 \n",
+ " agegroup_32.0 \n",
+ " agegroup_33.0 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 40266 \n",
+ " 0.052899 \n",
+ " 80.0 \n",
+ " 0.0 \n",
+ " 0.342892 \n",
+ " 5683.0 \n",
+ " 14.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 26.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 102291 \n",
+ " 0.314817 \n",
+ " 55.0 \n",
+ " 0.0 \n",
+ " 0.133092 \n",
+ " 11600.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 18.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 1310 \n",
+ " 0.000000 \n",
+ " 36.0 \n",
+ " 4.0 \n",
+ " 0.437850 \n",
+ " 6250.0 \n",
+ " 11.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 11.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 63327 \n",
+ " 0.261331 \n",
+ " 54.0 \n",
+ " 0.0 \n",
+ " 0.395710 \n",
+ " 5733.0 \n",
+ " 16.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 17.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 48272 \n",
+ " 0.029445 \n",
+ " 58.0 \n",
+ " 0.0 \n",
+ " 0.130216 \n",
+ " 13300.0 \n",
+ " 8.0 \n",
+ " 1.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 19.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 57097 \n",
+ " 0.287522 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.221714 \n",
+ " 6778.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 9.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 79879 \n",
+ " 0.930403 \n",
+ " 38.0 \n",
+ " 0.0 \n",
+ " 0.204423 \n",
+ " 3345.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 12.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 107765 \n",
+ " 0.019931 \n",
+ " 75.0 \n",
+ " 0.0 \n",
+ " 0.004285 \n",
+ " 10500.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 24.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 898 \n",
+ " 0.087649 \n",
+ " 27.0 \n",
+ " 0.0 \n",
+ " 0.009995 \n",
+ " 2200.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 1.0 \n",
+ " 8.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ " 16428 \n",
+ " 0.369675 \n",
+ " 55.0 \n",
+ " 0.0 \n",
+ " 0.045960 \n",
+ " 5939.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 18.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
86918 rows × 39 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "40266 0.052899 80.0 \n",
+ "102291 0.314817 55.0 \n",
+ "1310 0.000000 36.0 \n",
+ "63327 0.261331 54.0 \n",
+ "48272 0.029445 58.0 \n",
+ "... ... ... \n",
+ "57097 0.287522 30.0 \n",
+ "79879 0.930403 38.0 \n",
+ "107765 0.019931 75.0 \n",
+ "898 0.087649 27.0 \n",
+ "16428 0.369675 55.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "40266 0.0 0.342892 5683.0 \n",
+ "102291 0.0 0.133092 11600.0 \n",
+ "1310 4.0 0.437850 6250.0 \n",
+ "63327 0.0 0.395710 5733.0 \n",
+ "48272 0.0 0.130216 13300.0 \n",
+ "... ... ... ... \n",
+ "57097 0.0 0.221714 6778.0 \n",
+ "79879 0.0 0.204423 3345.0 \n",
+ "107765 0.0 0.004285 10500.0 \n",
+ "898 0.0 0.009995 2200.0 \n",
+ "16428 0.0 0.045960 5939.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "40266 14.0 0.0 \n",
+ "102291 5.0 0.0 \n",
+ "1310 11.0 0.0 \n",
+ "63327 16.0 0.0 \n",
+ "48272 8.0 1.0 \n",
+ "... ... ... \n",
+ "57097 10.0 0.0 \n",
+ "79879 7.0 0.0 \n",
+ "107765 7.0 0.0 \n",
+ "898 2.0 0.0 \n",
+ "16428 3.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "40266 1.0 0.0 \n",
+ "102291 1.0 0.0 \n",
+ "1310 2.0 1.0 \n",
+ "63327 1.0 0.0 \n",
+ "48272 1.0 0.0 \n",
+ "... ... ... \n",
+ "57097 2.0 0.0 \n",
+ "79879 0.0 0.0 \n",
+ "107765 0.0 0.0 \n",
+ "898 0.0 1.0 \n",
+ "16428 0.0 0.0 \n",
+ "\n",
+ " NumberOfDependents agegroup agegroup_6.0 agegroup_7.0 \\\n",
+ "40266 1.0 26.0 0 0 \n",
+ "102291 1.0 18.0 0 0 \n",
+ "1310 0.0 11.0 0 0 \n",
+ "63327 1.0 17.0 0 0 \n",
+ "48272 1.0 19.0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0.0 9.0 0 0 \n",
+ "79879 2.0 12.0 0 0 \n",
+ "107765 0.0 24.0 0 0 \n",
+ "898 1.0 8.0 0 0 \n",
+ "16428 1.0 18.0 0 0 \n",
+ "\n",
+ " agegroup_8.0 agegroup_9.0 agegroup_10.0 agegroup_11.0 \\\n",
+ "40266 0 0 0 0 \n",
+ "102291 0 0 0 0 \n",
+ "1310 0 0 0 1 \n",
+ "63327 0 0 0 0 \n",
+ "48272 0 0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0 1 0 0 \n",
+ "79879 0 0 0 0 \n",
+ "107765 0 0 0 0 \n",
+ "898 1 0 0 0 \n",
+ "16428 0 0 0 0 \n",
+ "\n",
+ " agegroup_12.0 agegroup_13.0 agegroup_14.0 agegroup_15.0 \\\n",
+ "40266 0 0 0 0 \n",
+ "102291 0 0 0 0 \n",
+ "1310 0 0 0 0 \n",
+ "63327 0 0 0 0 \n",
+ "48272 0 0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0 0 0 0 \n",
+ "79879 1 0 0 0 \n",
+ "107765 0 0 0 0 \n",
+ "898 0 0 0 0 \n",
+ "16428 0 0 0 0 \n",
+ "\n",
+ " agegroup_16.0 agegroup_17.0 agegroup_18.0 agegroup_19.0 \\\n",
+ "40266 0 0 0 0 \n",
+ "102291 0 0 1 0 \n",
+ "1310 0 0 0 0 \n",
+ "63327 0 1 0 0 \n",
+ "48272 0 0 0 1 \n",
+ "... ... ... ... ... \n",
+ "57097 0 0 0 0 \n",
+ "79879 0 0 0 0 \n",
+ "107765 0 0 0 0 \n",
+ "898 0 0 0 0 \n",
+ "16428 0 0 1 0 \n",
+ "\n",
+ " agegroup_20.0 agegroup_21.0 agegroup_22.0 agegroup_23.0 \\\n",
+ "40266 0 0 0 0 \n",
+ "102291 0 0 0 0 \n",
+ "1310 0 0 0 0 \n",
+ "63327 0 0 0 0 \n",
+ "48272 0 0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0 0 0 0 \n",
+ "79879 0 0 0 0 \n",
+ "107765 0 0 0 0 \n",
+ "898 0 0 0 0 \n",
+ "16428 0 0 0 0 \n",
+ "\n",
+ " agegroup_24.0 agegroup_25.0 agegroup_26.0 agegroup_27.0 \\\n",
+ "40266 0 0 1 0 \n",
+ "102291 0 0 0 0 \n",
+ "1310 0 0 0 0 \n",
+ "63327 0 0 0 0 \n",
+ "48272 0 0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0 0 0 0 \n",
+ "79879 0 0 0 0 \n",
+ "107765 1 0 0 0 \n",
+ "898 0 0 0 0 \n",
+ "16428 0 0 0 0 \n",
+ "\n",
+ " agegroup_28.0 agegroup_29.0 agegroup_30.0 agegroup_31.0 \\\n",
+ "40266 0 0 0 0 \n",
+ "102291 0 0 0 0 \n",
+ "1310 0 0 0 0 \n",
+ "63327 0 0 0 0 \n",
+ "48272 0 0 0 0 \n",
+ "... ... ... ... ... \n",
+ "57097 0 0 0 0 \n",
+ "79879 0 0 0 0 \n",
+ "107765 0 0 0 0 \n",
+ "898 0 0 0 0 \n",
+ "16428 0 0 0 0 \n",
+ "\n",
+ " agegroup_32.0 agegroup_33.0 \n",
+ "40266 0 0 \n",
+ "102291 0 0 \n",
+ "1310 0 0 \n",
+ "63327 0 0 \n",
+ "48272 0 0 \n",
+ "... ... ... \n",
+ "57097 0 0 \n",
+ "79879 0 0 \n",
+ "107765 0 0 \n",
+ "898 0 0 \n",
+ "16428 0 0 \n",
+ "\n",
+ "[86918 rows x 39 columns]"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_train"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "one_hot = pd.get_dummies(X_test['agegroup'], prefix='agegroup')\n",
+ "\n",
+ "X_test = pd.concat([X_test, one_hot], axis=1)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "scaler = StandardScaler()\n",
+ "\n",
+ "#连续特征有\n",
+ "features_to_scale = ['RevolvingUtilizationOfUnsecuredLines', 'DebtRatio','MonthlyIncome']\n",
+ "\n",
+ "# 使用 fit_transform 对选择的特征列进行幅度缩放\n",
+ "X_train[features_to_scale] = scaler.fit_transform(X_train[features_to_scale])\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_test[features_to_scale] = scaler.fit_transform(X_test[features_to_scale])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_train.drop([\"agegroup\",\"age\"], axis=1, inplace=True)\n",
+ "X_test.drop([\"agegroup\",\"age\"], axis=1, inplace=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(86918, 37)"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_train.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(21730, 37)"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 124,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib64/python3.6/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "LogisticRegression()"
+ ]
+ },
+ "execution_count": 124,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "lr = LogisticRegression()\n",
+ "\n",
+ "lr.fit(X_train, y_train)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 126,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([-0.0156334 , 0.467622 , 0.30798023, -0.07341862, -0.02302149,\n",
+ " 0.44146934, -0.19549518, -0.87026371, 0.09492283, -0.04851426,\n",
+ " 0.51266316, 0.69370554, 0.51137 , 0.39410818, 0.40821275,\n",
+ " 0.26042991, 0.28325902, 0.12604619, 0.21490908, 0.13932627,\n",
+ " 0.16228096, -0.03894009, -0.13400387, -0.24467298, -0.60754337,\n",
+ " -0.82244628, -0.69520512, -0.77884549, -0.794883 , -0.76060993,\n",
+ " -0.42927367, -0.4495571 , -0.33327799, -0.09117529, -0.05859908,\n",
+ " 0.00995178, -0.00305238])"
+ ]
+ },
+ "execution_count": 126,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#取出特征的coef\n",
+ "coefficients = lr.coef_\n",
+ "coefficients[0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 127,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " feature \n",
+ " coef \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " agegroup_8.0 \n",
+ " 0.693706 \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " agegroup_7.0 \n",
+ " 0.512663 \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " agegroup_9.0 \n",
+ " 0.511370 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " 0.467622 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " NumberOfTimes90DaysLate \n",
+ " 0.441469 \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " agegroup_11.0 \n",
+ " 0.408213 \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " agegroup_10.0 \n",
+ " 0.394108 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " DebtRatio \n",
+ " 0.307980 \n",
+ " \n",
+ " \n",
+ " 16 \n",
+ " agegroup_13.0 \n",
+ " 0.283259 \n",
+ " \n",
+ " \n",
+ " 15 \n",
+ " agegroup_12.0 \n",
+ " 0.260430 \n",
+ " \n",
+ " \n",
+ " 18 \n",
+ " agegroup_15.0 \n",
+ " 0.214909 \n",
+ " \n",
+ " \n",
+ " 20 \n",
+ " agegroup_17.0 \n",
+ " 0.162281 \n",
+ " \n",
+ " \n",
+ " 19 \n",
+ " agegroup_16.0 \n",
+ " 0.139326 \n",
+ " \n",
+ " \n",
+ " 17 \n",
+ " agegroup_14.0 \n",
+ " 0.126046 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " NumberOfDependents \n",
+ " 0.094923 \n",
+ " \n",
+ " \n",
+ " 35 \n",
+ " agegroup_32.0 \n",
+ " 0.009952 \n",
+ " \n",
+ " \n",
+ " 36 \n",
+ " agegroup_33.0 \n",
+ " -0.003052 \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " -0.015633 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " -0.023021 \n",
+ " \n",
+ " \n",
+ " 21 \n",
+ " agegroup_18.0 \n",
+ " -0.038940 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " agegroup_6.0 \n",
+ " -0.048514 \n",
+ " \n",
+ " \n",
+ " 34 \n",
+ " agegroup_31.0 \n",
+ " -0.058599 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " MonthlyIncome \n",
+ " -0.073419 \n",
+ " \n",
+ " \n",
+ " 33 \n",
+ " agegroup_30.0 \n",
+ " -0.091175 \n",
+ " \n",
+ " \n",
+ " 22 \n",
+ " agegroup_19.0 \n",
+ " -0.134004 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " NumberRealEstateLoansOrLines \n",
+ " -0.195495 \n",
+ " \n",
+ " \n",
+ " 23 \n",
+ " agegroup_20.0 \n",
+ " -0.244673 \n",
+ " \n",
+ " \n",
+ " 32 \n",
+ " agegroup_29.0 \n",
+ " -0.333278 \n",
+ " \n",
+ " \n",
+ " 30 \n",
+ " agegroup_27.0 \n",
+ " -0.429274 \n",
+ " \n",
+ " \n",
+ " 31 \n",
+ " agegroup_28.0 \n",
+ " -0.449557 \n",
+ " \n",
+ " \n",
+ " 24 \n",
+ " agegroup_21.0 \n",
+ " -0.607543 \n",
+ " \n",
+ " \n",
+ " 26 \n",
+ " agegroup_23.0 \n",
+ " -0.695205 \n",
+ " \n",
+ " \n",
+ " 29 \n",
+ " agegroup_26.0 \n",
+ " -0.760610 \n",
+ " \n",
+ " \n",
+ " 27 \n",
+ " agegroup_24.0 \n",
+ " -0.778845 \n",
+ " \n",
+ " \n",
+ " 28 \n",
+ " agegroup_25.0 \n",
+ " -0.794883 \n",
+ " \n",
+ " \n",
+ " 25 \n",
+ " agegroup_22.0 \n",
+ " -0.822446 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " -0.870264 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " feature coef\n",
+ "11 agegroup_8.0 0.693706\n",
+ "10 agegroup_7.0 0.512663\n",
+ "12 agegroup_9.0 0.511370\n",
+ "1 NumberOfTime30-59DaysPastDueNotWorse 0.467622\n",
+ "5 NumberOfTimes90DaysLate 0.441469\n",
+ "14 agegroup_11.0 0.408213\n",
+ "13 agegroup_10.0 0.394108\n",
+ "2 DebtRatio 0.307980\n",
+ "16 agegroup_13.0 0.283259\n",
+ "15 agegroup_12.0 0.260430\n",
+ "18 agegroup_15.0 0.214909\n",
+ "20 agegroup_17.0 0.162281\n",
+ "19 agegroup_16.0 0.139326\n",
+ "17 agegroup_14.0 0.126046\n",
+ "8 NumberOfDependents 0.094923\n",
+ "35 agegroup_32.0 0.009952\n",
+ "36 agegroup_33.0 -0.003052\n",
+ "0 RevolvingUtilizationOfUnsecuredLines -0.015633\n",
+ "4 NumberOfOpenCreditLinesAndLoans -0.023021\n",
+ "21 agegroup_18.0 -0.038940\n",
+ "9 agegroup_6.0 -0.048514\n",
+ "34 agegroup_31.0 -0.058599\n",
+ "3 MonthlyIncome -0.073419\n",
+ "33 agegroup_30.0 -0.091175\n",
+ "22 agegroup_19.0 -0.134004\n",
+ "6 NumberRealEstateLoansOrLines -0.195495\n",
+ "23 agegroup_20.0 -0.244673\n",
+ "32 agegroup_29.0 -0.333278\n",
+ "30 agegroup_27.0 -0.429274\n",
+ "31 agegroup_28.0 -0.449557\n",
+ "24 agegroup_21.0 -0.607543\n",
+ "26 agegroup_23.0 -0.695205\n",
+ "29 agegroup_26.0 -0.760610\n",
+ "27 agegroup_24.0 -0.778845\n",
+ "28 agegroup_25.0 -0.794883\n",
+ "25 agegroup_22.0 -0.822446\n",
+ "7 NumberOfTime60-89DaysPastDueNotWorse -0.870264"
+ ]
+ },
+ "execution_count": 127,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "feaures_names = X_train.columns\n",
+ "\n",
+ "data = list(zip(feaures_names, coefficients[0]))\n",
+ "\n",
+ "fea_importance = pd.DataFrame(data,columns = ['feature','coef'])\n",
+ "\n",
+ "fea_importance.sort_values(by='coef', ascending=False)\n",
+ "#将特征按coef排序"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 133,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib64/python3.6/site-packages/sklearn/linear_model/_logistic.py:765: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=LogisticRegression(max_iter=1000, solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']})"
+ ]
+ },
+ "execution_count": 133,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "lr = LogisticRegression()\n",
+ "\n",
+ "lr.fit(X_train, y_train)\n",
+ "\n",
+ "model = LogisticRegression(solver='liblinear',max_iter=1000)#未收敛,增加迭代次数.\n",
+ "##ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.因此换为liblinera solver\n",
+ "\n",
+ "\n",
+ "# 定义要尝试的超参数组合\n",
+ "param = {'C': [1,10,100,500], 'penalty': ['l1', 'l2']}\n",
+ "\n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_lr = GridSearchCV(estimator=model, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_lr.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 137,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 输出最好的超参数\n",
+ "# 输出最好的模型\n",
+ "\n",
+ "best_params = gsc_lr.best_params_\n",
+ "\n",
+ "best_model = gsc_lr.best_estimator_\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "from sklearn.metrics import accuracy_score,recall_score,auc,roc_curve,confusion_matrix,f1_score\n",
+ "\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = best_model.predict(X_test)\n",
+ "\n",
+ "# 评估模型性能\n",
+ "accuracy = accuracy_score(y_test, y_pred)\n",
+ "recall_score = recall_score(y_test, y_pred)\n",
+ "\n",
+ "confusion_matrix = confusion_matrix(y_test, y_pred)\n",
+ "f1_score = f1_score(y_test, y_pred)\n",
+ "\n",
+ "\n",
+ "\n",
+ "fpr, tpr, thresholds = roc_curve(y_test, y_pred)\n",
+ "\n",
+ "# 计算曲线下面积(AUC)\n",
+ "roc_auc = auc(fpr, tpr)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 147,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(0.933087896916705,\n",
+ " 0.04514824797843666,\n",
+ " array([[20209, 37],\n",
+ " [ 1417, 67]]),\n",
+ " 0.08438287153652393,\n",
+ " 0.5216603632463556)"
+ ]
+ },
+ "execution_count": 147,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "accuracy,recall_score,confusion_matrix,f1_score,roc_auc"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def cal_eval(y_test,y_pred):\n",
+ " accuracy = accuracy_score(y_test, y_pred)\n",
+ " recall = recall_score(y_test, y_pred)\n",
+ " co_matrix = confusion_matrix(y_test, y_pred)\n",
+ " f1 = f1_score(y_test, y_pred)\n",
+ "\n",
+ "\n",
+ "\n",
+ " fpr, tpr, thresholds = roc_curve(y_test, y_pred)\n",
+ "\n",
+ " # 计算曲线下面积(AUC)\n",
+ " roc_auc = auc(fpr, tpr)\n",
+ " \n",
+ " print(f\"acc:{accuracy},recall:{recall},f1:{f1},roc:{roc_auc}\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 178,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 提示:thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "# 根据predict_proba的结果和threshold的比较确定结果,再评估各种结果指标\n",
+ "lr_pred_new = []\n",
+ "lr_pred_prob = best_model.predict_proba(X_test)\n",
+ "\n",
+ "for i in lr_pred_prob:\n",
+ " if i[0]>=0.3:\n",
+ " lr_pred_new.append(0)\n",
+ " else:\n",
+ " lr_pred_new.append(1)\n",
+ "\n",
+ "lr_pred_new = np.array(lr_pred_new)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 183,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9321675103543489,recall:0.02021563342318059,f1:0.03911342894393741,roc:0.5096138919857185\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import accuracy_score,recall_score,auc,roc_curve,confusion_matrix,f1_score\n",
+ "cal_eval(y_test,lr_pred_new)##0.3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 184,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.8534744592728947,recall:0.4359838274932615,f1:0.28896828941491737,roc:0.6600298471655777\n"
+ ]
+ }
+ ],
+ "source": [
+ "lr_pred_new = []\n",
+ "lr_pred_prob = best_model.predict_proba(X_test)\n",
+ "\n",
+ "for i in lr_pred_prob:\n",
+ " if i[0]>=0.9:\n",
+ " lr_pred_new.append(0)\n",
+ " else:\n",
+ " lr_pred_new.append(1)\n",
+ "\n",
+ "lr_pred_new = np.array(lr_pred_new)\n",
+ "cal_eval(y_test,lr_pred_new)##0.9"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 185,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "\n",
+ "coef_abs = np.abs(best_model.coef_[0])\n",
+ "\n",
+ "# 获取排序后的索引\n",
+ "sorted_indices = np.argsort(coef_abs)[::-1]\n",
+ "\n",
+ "# 获取排序后的特征名和对应的系数\n",
+ "sorted_features = X_train.columns[sorted_indices]\n",
+ "sorted_coefficients = best_model.coef_[0][sorted_indices]\n",
+ "\n",
+ "# 创建 DataFrame 显示排序后的结果\n",
+ "sorted_df = pd.DataFrame({'Feature': sorted_features, 'Coefficient': sorted_coefficients})\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 191,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Feature \n",
+ " Coefficient \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " agegroup_29.0 \n",
+ " -0.941463 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " -0.861895 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " agegroup_28.0 \n",
+ " -0.835204 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " agegroup_26.0 \n",
+ " -0.800776 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " agegroup_8.0 \n",
+ " 0.755337 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " agegroup_31.0 \n",
+ " -0.733585 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " agegroup_25.0 \n",
+ " -0.707014 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " agegroup_22.0 \n",
+ " -0.631208 \n",
+ " \n",
+ " \n",
+ " 8 \n",
+ " agegroup_24.0 \n",
+ " -0.627627 \n",
+ " \n",
+ " \n",
+ " 9 \n",
+ " agegroup_9.0 \n",
+ " 0.620013 \n",
+ " \n",
+ " \n",
+ " 10 \n",
+ " agegroup_7.0 \n",
+ " 0.578749 \n",
+ " \n",
+ " \n",
+ " 11 \n",
+ " agegroup_23.0 \n",
+ " -0.512713 \n",
+ " \n",
+ " \n",
+ " 12 \n",
+ " agegroup_27.0 \n",
+ " -0.504184 \n",
+ " \n",
+ " \n",
+ " 13 \n",
+ " agegroup_11.0 \n",
+ " 0.503420 \n",
+ " \n",
+ " \n",
+ " 14 \n",
+ " agegroup_10.0 \n",
+ " 0.492589 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Feature Coefficient\n",
+ "0 agegroup_29.0 -0.941463\n",
+ "1 NumberOfTime60-89DaysPastDueNotWorse -0.861895\n",
+ "2 agegroup_28.0 -0.835204\n",
+ "3 agegroup_26.0 -0.800776\n",
+ "4 agegroup_8.0 0.755337\n",
+ "5 agegroup_31.0 -0.733585\n",
+ "6 agegroup_25.0 -0.707014\n",
+ "7 agegroup_22.0 -0.631208\n",
+ "8 agegroup_24.0 -0.627627\n",
+ "9 agegroup_9.0 0.620013\n",
+ "10 agegroup_7.0 0.578749\n",
+ "11 agegroup_23.0 -0.512713\n",
+ "12 agegroup_27.0 -0.504184\n",
+ "13 agegroup_11.0 0.503420\n",
+ "14 agegroup_10.0 0.492589"
+ ]
+ },
+ "execution_count": 191,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "sorted_df.head(15)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 193,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "new_feature = sorted_features[0:15]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 203,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=LogisticRegression(max_iter=1000, solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']})"
+ ]
+ },
+ "execution_count": 203,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "##只使用排名前15的特征\n",
+ "\n",
+ "model = LogisticRegression(solver='liblinear',max_iter=1000)#未收敛,增加迭代次数.\n",
+ "##ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.因此换为liblinera solver\n",
+ "\n",
+ "\n",
+ "# 定义要尝试的超参数组合\n",
+ "param = {'C': [1,10,100,500], 'penalty': ['l1', 'l2']}\n",
+ "\n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_lr = GridSearchCV(estimator=model, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_lr.fit(X_train[new_feature], y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 204,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "best_params = gsc_lr.best_params_\n",
+ "\n",
+ "best_model = gsc_lr.best_estimator_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 205,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "({'C': 1, 'penalty': 'l1'},\n",
+ " LogisticRegression(C=1, max_iter=1000, penalty='l1', solver='liblinear'))"
+ ]
+ },
+ "execution_count": 205,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "best_params,best_model"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 206,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y_pred = best_model.predict(X_test[new_feature])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 207,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_test = X_test.rename(columns=dict(zip(X_test.columns, X_train.columns)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 208,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "y_pred = best_model.predict(X_test[new_feature])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 209,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0, 0, 0, ..., 0, 0, 0])"
+ ]
+ },
+ "execution_count": 209,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y_pred"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 210,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9320294523699953,recall:0.012129380053908356,f1:0.02379378717779246,roc:0.5057930314277248\n"
+ ]
+ }
+ ],
+ "source": [
+ "#只用前15个特征的结果\n",
+ "cal_eval(y_test,y_pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#特征全用时,分别为。(0.933087896916705,0.04514824797843666,0.08438287153652393,0.5216603632463556)\n",
+ "#特征用少时,有些大部分指标反而上升了。"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 随机森林\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "# K最近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 随机森林"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 211,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 222,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=RandomForestClassifier(random_state=42),\n",
+ " param_grid={'max_depth': [1, 2, 3], 'n_estimators': [50, 100]})"
+ ]
+ },
+ "execution_count": 222,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 定义要尝试的超参数组合,树模型的主要参数有树深。\n",
+ "param = {'max_depth':[1,2,3],'n_estimators':[50,100]}\n",
+ "\n",
+ "\n",
+ "rf = RandomForestClassifier(random_state = 42)\n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_rf = GridSearchCV(estimator=rf, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_rf.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 225,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9317073170731708,recall:0.0,f1:0.0,roc:0.5\n"
+ ]
+ }
+ ],
+ "source": [
+ "best_params = gsc_rf.best_params_\n",
+ "\n",
+ "best_model = gsc_rf.best_estimator_\n",
+ "\n",
+ "y_pred = best_model.predict(X_test)\n",
+ "\n",
+ "cal_eval(y_test,y_pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 226,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "feature_importance = best_model.feature_importances_"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 227,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([0.12, 0.12, 0.06, 0.04, 0.06, 0.22, 0.04, 0.12, 0. , 0. , 0. ,\n",
+ " 0.02, 0.04, 0.02, 0.04, 0. , 0. , 0. , 0. , 0. , 0. , 0. ,\n",
+ " 0. , 0. , 0.02, 0.04, 0.04, 0. , 0. , 0. , 0. , 0. , 0. ,\n",
+ " 0. , 0. , 0. , 0. ])"
+ ]
+ },
+ "execution_count": 227,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "feature_importance"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 229,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "feature_importance_df = pd.DataFrame({'Feature': X_train.columns, 'Importance': feature_importance})"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 234,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "new_feature = feature_importance_df.sort_values(by='Importance', ascending=False)[\"Feature\"][0:10]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 使用部分特征"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 235,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=RandomForestClassifier(random_state=42),\n",
+ " param_grid={'max_depth': [1, 2, 3], 'n_estimators': [50, 100]})"
+ ]
+ },
+ "execution_count": 235,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 定义要尝试的超参数组合,树模型的主要参数有树深。\n",
+ "param = {'max_depth':[1,2,3],'n_estimators':[50,100]}\n",
+ "\n",
+ "\n",
+ "rf = RandomForestClassifier(random_state = 42)\n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_rf = GridSearchCV(estimator=rf, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_rf.fit(X_train[new_feature], y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 237,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9331339162448228,recall:0.0431266846361186,f1:0.08096141682479444,roc:0.5207483665203709\n"
+ ]
+ }
+ ],
+ "source": [
+ "best_params = gsc_rf.best_params_\n",
+ "\n",
+ "best_model = gsc_rf.best_estimator_\n",
+ "\n",
+ "y_pred = best_model.predict(X_test[new_feature])\n",
+ "\n",
+ "cal_eval(y_test,y_pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 238,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "##指标均有提升"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## SVM"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.svm import SVC\n",
+ "from sklearn.model_selection import GridSearchCV"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n",
+ "/usr/local/lib64/python3.6/site-packages/sklearn/svm/_base.py:258: ConvergenceWarning: Solver terminated early (max_iter=100). Consider pre-processing your data with StandardScaler or MinMaxScaler.\n",
+ " % self.max_iter, ConvergenceWarning)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=SVC(max_iter=100, random_state=42),\n",
+ " param_grid={'C': [0.1, 1, 10], 'kernel': ['rbf', 'linear']})"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 定义要尝试的超参数组合,SVM主要参数有,正则项系数C,核函数,\n",
+ "param = {'C':[0.1, 1, 10],'kernel':['rbf','linear']}\n",
+ "\n",
+ "svc = SVC(random_state=42,max_iter=100)#默认迭代次数太慢了 ,\n",
+ " \n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_svm = GridSearchCV(estimator=svc, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_svm.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9320294523699953,recall:0.012803234501347708,f1:0.025082508250825083,roc:0.5061052624151509\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import accuracy_score,recall_score,auc,roc_curve,confusion_matrix,f1_score\n",
+ "\n",
+ "best_params = gsc_svm.best_params_\n",
+ "\n",
+ "best_model = gsc_svm.best_estimator_\n",
+ "\n",
+ "y_pred = best_model.predict(X_test)\n",
+ "\n",
+ "cal_eval(y_test,y_pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'C': 10, 'kernel': 'linear'}"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "best_params"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## KNN"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.neighbors import KNeighborsClassifier"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "CPU times: user 12min 37s, sys: 20min 54s, total: 33min 32s\n",
+ "Wall time: 3min 9s\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "GridSearchCV(estimator=KNeighborsClassifier(n_jobs=25),\n",
+ " param_grid={'n_neighbors': [1, 3]})"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%time\n",
+ "# 定义要尝试的超参数组合,KNN主要参数为K的值,\n",
+ "param = {'n_neighbors':[1,3]}\n",
+ "\n",
+ "knn = KNeighborsClassifier(n_jobs=25,leaf_size=30)\n",
+ " \n",
+ "# 创建 GridSearchCV 对象\n",
+ "gsc_knn = GridSearchCV(estimator=knn, param_grid=param)\n",
+ "\n",
+ "# 在训练集上拟合模型\n",
+ "gsc_knn.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#KNN算的极其慢"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "X_test = X_test.rename(columns=dict(zip(X_test.columns, X_train.columns)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "acc:0.9267832489645651,recall:0.15296495956873316,f1:0.22200488997555015,roc:0.5682339368623079\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import accuracy_score,recall_score,auc,roc_curve,confusion_matrix,f1_score\n",
+ "\n",
+ "best_params = gsc_knn.best_params_\n",
+ "\n",
+ "best_model = gsc_knn.best_estimator_\n",
+ "\n",
+ "y_pred = best_model.predict(X_test)\n",
+ "\n",
+ "cal_eval(y_test,y_pred)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.7.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/TinglanWang/homework_matplotlib.ipynb b/2023/homework/TinglanWang/homework_matplotlib.ipynb
new file mode 100644
index 00000000..00caa1dc
--- /dev/null
+++ b/2023/homework/TinglanWang/homework_matplotlib.ipynb
@@ -0,0 +1,2987 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "b8753dd8-7a83-4584-9360-954a9512007f",
+ "metadata": {},
+ "source": [
+ "# 数据可视化作业题目"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "0de668c2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from IPython.display import display, HTML\n",
+ "display(HTML(''))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "bda9f437-af21-4bc4-beb9-59034544e317",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "67d732a4-44e5-4313-bf75-0b1b1d036aee",
+ "metadata": {},
+ "source": [
+ "## 练习1:航班乘客变化分析 (2个题)\n",
+ "\n",
+ "1. 分析年度乘客总量的变化情况(提示:折线图)\n",
+ "2. 分析乘客量在一年中12个月份的分布(提示:柱状图)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "fbecfad8-61bd-483d-a1cc-e6cb6b69188a",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " year \n",
+ " month \n",
+ " passengers \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1949 \n",
+ " Jan \n",
+ " 112 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1949 \n",
+ " Feb \n",
+ " 118 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 1949 \n",
+ " Mar \n",
+ " 132 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 1949 \n",
+ " Apr \n",
+ " 129 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 1949 \n",
+ " May \n",
+ " 121 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " year month passengers\n",
+ "0 1949 Jan 112\n",
+ "1 1949 Feb 118\n",
+ "2 1949 Mar 132\n",
+ "3 1949 Apr 129\n",
+ "4 1949 May 121"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = sns.load_dataset(\"flights\")\n",
+ "data.head()\n",
+ "# 年份,月份,乘客数"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "60d8e4c9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "result_eachyear = data.groupby('year')['passengers'].sum().reset_index()\n",
+ "\n",
+ "result_eachmonth = data.groupby('month')['passengers'].sum().reset_index()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "35fcea0c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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CAgIMMLCwoysrCzb2FmzZhlTp041vvjiCyMxMdFYsGCB0bZtWyM8PNwoLCy0jevTp49Rr14947333jPWrVtnfPbZZ8Zf//pXY8mSJYZhGEZeXp7h5+dndOzY0fjXv/5lJCYmGkuXLjUeeugh47vvvivX19HPz89o3ry58e677xqrVq0yHnnkEUOSsWDBAtu4w4cPG35+fkaDBg2M+fPnG1999ZURFxdnNGrUyJBkrF271jZ24cKFhsViMf70pz8Zn376qfHll18asbGxhrOzs7F69WrbuLM/gw0bNjSeeuopY9WqVcZnn31mGIZhhIeHG82aNTMWLlxoJCYmGp988okxYcIEu+c5n/P9XF/ua+J8SkpKjL59+xre3t7G5MmTjVWrVhlz58416tevb7Rq1cru5/xvf/ubMX36dGPFihXGunXrjHfffddo3Lix0aNHD7tjJiQkGK6urkabNm2M+fPnG99++63x/vvvG/fcc0+Z8wgPDzf++te/GqtWrTLeeOMNw93d3bj//vsvmjkjI8Nwd3c3nnvuObvtx44dMzw9PY2//OUvtm2vvPKKYbFYjAceeMBYvny58emnnxrR0dGGt7e33c/+v//9b+Ovf/2rsWzZMiMxMdFYsmSJ0a1bN6NevXrGkSNHbOPOvibq169vjB492vj666+Njz/+2CguLr5oZgAAzMD8nfk78/czmL+bO383jN+/r+Hh4ca8efOMb775xoiNjTUkGZMnTzYiIyNtr+UuXboY7u7uxm+//WZ7/Lp16wxXV1cjKirKWLp0qfHZZ58ZMTExhsVisf0sGsbvr4EmTZoYY8eONb755htj7ty5Rt26de3Oe/v27UaTJk2M9u3b2/5u3L59u2EYhrF27VpDktGoUSNj6NChxooVK4yPPvrIaNCggdG8eXPm/qhUlONAFfPaa6+VmZie1bBhQ8PDw8M4dOiQbVt+fr7h6+trjBkzxrZtzJgxRq1atezGGYZh/OMf/zAkXXSydyXPc6WTa09PTyM1NdW2LTk52ZBkBAcHGydPnrRt/+yzzwxJxhdffGHbNnz4cEOS8dZbb9k91yuvvGJIMtavX28YhmFs3LjRkGS8/vrrduNSUlIMT09P48knn7Rt69atmyHJWLNmzUW/HoZxZoIUEhJiREZGGiUlJbbtJ06cMAICAoyuXbvatp39h/7f//73JY979ms1cOBAu+3/+9//DEnGyy+/fN7HlZaWGkVFRcahQ4cMScbnn39u21erVi1j/PjxF3zObdu2GZJsk9DzKc/XcfPmzXZjW7VqZfTp08d2/y9/+YthsVjK/Pz16dPHbnJ98uRJw9fX17jtttvsxpWUlBht27Y1rr/+etu2sz+Df/3rX+3GHj161JBkvPnmmxc8xwu50OT6cl4T5/PRRx8ZkoxPPvnEbvvWrVsNScY777xz3sed/R4nJiYakoydO3fa9jVt2tRo2rSpkZ+ff8nzmDZtmt32Rx55xPDw8DBKS0svmnv48OFGQECAUVBQYNv297//3XBycrK9tn/99VfDxcXFGDt2rN1jT5w4YQQFBRmDBw++4PGLi4uNvLw8w9vb2+51ffY1cd999100HwAAVQXzd+bvhsH8nfm7+fP3s9/Xbdu22bYdO3bMcHZ2Njw9Pe2K8LOv5bffftu2rUuXLkZAQIBx4sQJ27bi4mIjIiLCCA0NtT3/2dfAI488Yvf806ZNMyQZaWlptm2tW7c2unXrVibr2dfcrbfearf9X//6lyHJ2Lhx40XPFahILKsCVDPt2rVTgwYNbPc9PDzUokULu6UJli9frh49eigkJETFxcW2W79+/SRJiYmJFfI85clev3592/2WLVtKOvP2rz+uMXd2+/mea+jQoXb3hwwZIklau3atpDPnbrFYNGzYMLtzDwoKUtu2bcu89a9u3bq65ZZbLpl9//79Onz4sOLi4uTk9PtfnbVq1dIdd9yhTZs2lXl76JU497y6du2qhg0b2s5LkjIzM/XQQw8pLCxMLi4ucnV1VcOGDSVJ+/bts427/vrrNX/+fL388svatGmTioqK7I7drFkz1a1bV0899ZTeffddfffdd2XyXOnXMSgoSNdff73dtjZt2th9DxMTExUREaFWrVrZjbv33nvt7m/YsEHHjx/X8OHD7Z67tLRUffv21datW8u8TfGOO+6wu+/r66umTZvqtdde0xtvvKEdO3aUeYvolSrva2L58uWqU6eObrvtNrvzadeunYKCguy+lr/88ouGDBmioKAgOTs7y9XV1bbu5dnv8Q8//KCff/5ZI0eOlIeHxyVzDxgwwO5+mzZtdPr0aWVmZl70cY8//rgyMzP173//W5JUWlqqWbNmqX///ra3Q37zzTcqLi7WfffdZ3duHh4e6tatm9255eXl6amnnlKzZs3k4uIiFxcX1apVSydPnrT7+T3r3O8pAADVFfN35u/M35m/V8b8XZKCg4MVFRVlu+/r66uAgAC1a9dOISEhtu3nvmZPnjypzZs3684771StWrVs45ydnRUXF6fU1NQyy52cL+cfj3k5KuIYwNXiAzmBasbPz6/MNnd3d+Xn59vuZ2Rk6Msvv5Srq+t5j3HuGnflfZ4r5evra3ffzc3totv/uKaxJLm4uJTJFRQUJEk6duyYpDPnbhiGAgMDz5uhSZMmdveDg4MvK/vZ459vfEhIiEpLS5WVlVXuD5I5ex7nbjv7vKWlpYqJidHhw4f1wgsvKDIyUt7e3iotLVWXLl3svi9Lly7Vyy+/rLlz5+qFF15QrVq1NHDgQE2bNk1BQUGyWq1KTEzUK6+8omeffVZZWVkKDg7WqFGj9Pzzz8vV1fWKv46X8/Ny7NgxNW7cuMy4c58jIyNDknTnnXde6Mul48ePy9vb23b/3O+LxWLRmjVr9NJLL2natGmaMGGCfH19NXToUL3yyivy8fG54LEvpLyviYyMDGVnZ9t+rs919vWYl5enm266SR4eHnr55ZfVokULeXl5KSUlRYMGDbI9z9l1Di/3Q4fOze3u7i5Jl8zdvn173XTTTfrnP/+poUOHavny5Tp48KBmz55td26S1KlTp/Me44+/iA4ZMkRr1qzRCy+8oE6dOql27dqyWCy69dZbz5vlcl+bAABUdczfmb8zf2f+Ll37+btU9rUpnXl9Xuo1m5WVJcMwLvh6kX5/TVVEzoo8BnC1KMeBGsjf319t2rTRK6+8ct79f/wf46tx9n+9CwoKbP+ISZc3eS+P4uJiHTt2zO4f0PT0dEm//6Pq7+8vi8Wi//73v3aZzjp32/k+kOh8zh4/LS2tzL7Dhw/LyclJdevWvbwTOY+z53HutmbNmkmS9uzZo507d2r+/PkaPny4bcxPP/1U5nH+/v5688039eabb+rXX3/VF198oaefflqZmZm2D12JjIzUkiVLZBiGdu3apfnz5+ull16Sp6ennn766Sv+Ol4OPz8/28T5Yufu7+8vSZoxY4a6dOly3mOdOyE/3/exYcOGmjdvnqQzV2v861//0qRJk1RYWKh33333ivOX19kPqDnfB95Isk30v/32Wx0+fFjr1q2zXW0iSdnZ2Xbj69WrJ0l2H750rYwbN0533XWXtm/frpkzZ6pFixbq3bu3bf/Z79XHH39suwrqfHJycrR8+XK9+OKLevrpp23bCwoKdPz48fM+5nJfmwAA1ATM35m/M39n/m6munXrysnJ6YKvF+n37zNQ01COA1VMRfxPaWxsrL766is1bdr0qiZ8l3J2aYVdu3bZXTn65ZdfXrPnXLRokcaNG2e7v3jxYkmyfaJ8bGysXn31Vf32228aPHhwhT1veHi46tevr8WLF2vixIm2ydzJkyf1ySefKDo6utxXnUhnzuuPby3csGGDDh06pAcffFDS75PHcye1f7yK93waNGigxx57TGvWrNH//ve/MvstFovatm2r6dOna/78+dq+fbuka/N17Natm/7xj3/ou+++s3tr5pIlS+zG3XDDDapTp46+++47PfbYYxXy3C1atNDzzz+vTz75xHaOlSU2NlZLlixRSUmJOnfufMFxl/s9btGihZo2bar3339fTzzxRLl+0blcAwcOVIMGDTRhwgQlJiZq+vTpdr/I9OnTRy4uLvr5558vugyKxWKRYRhlss6dO1clJSXXLD8AAJWB+fvFMX9n/l4ezN8rl7e3tzp37qxPP/1U//jHP+Tp6SnpzDsg4uPjFRoaqhYtWlzxca/23StAZaAcB6qYyMhISdJbb72l4cOHy9XVVeHh4Vf0NrKXXnpJq1atUteuXTVu3DiFh4fr9OnTOnjwoL766iu9++67l/2Wrou59dZb5evrq5EjR+qll16Si4uL5s+fr5SUlKs+9vm4ubnp9ddfV15enjp16qQNGzbo5ZdfVr9+/XTjjTdKOjMxGz16tO6//35t27ZNN998s7y9vZWWlqb169crMjJSDz/88BU/t5OTk6ZNm6ahQ4cqNjZWY8aMUUFBgV577TVlZ2fr1Vdfvapz27Ztmx588EHdddddSklJ0XPPPaf69evrkUcekSRdd911atq0qZ5++mkZhiFfX199+eWXWrVqld1xcnJy1KNHDw0ZMkTXXXedfHx8tHXrViUkJGjQoEGSzqyh98477+hPf/qTmjRpIsMw9Omnnyo7O9t2VfC1+DqOHz9e77//vvr166eXXnpJgYGBWrx4sb7//nvb11g6sw7kjBkzNHz4cB0/flx33nmnAgICdOTIEe3cuVNHjhzRrFmzLvpcu3bt0mOPPaa77rpLzZs3l5ubm7799lvt2rXL7srlynDPPfdo0aJFuvXWW/X444/r+uuvl6urq1JTU7V27VrdfvvtGjhwoLp27aq6devqoYce0osvvihXV1ctWrRIO3fuLHPMf/7zn7rtttvUpUsX/fnPf1aDBg3066+/6ptvvtGiRYsqLLuzs7MeffRRPfXUU/L29taIESPs9jdq1EgvvfSSnnvuOf3yyy/q27ev6tatq4yMDG3ZskXe3t6aPHmyateurZtvvlmvvfaa/P391ahRIyUmJmrevHmqU6dOheUFAMAMzN8vjPk783fm72dU1vz9akydOlW9e/dWjx49NHHiRLm5uemdd97Rnj179NFHH5XrnZ1n3/GwdOlSNWnSRB4eHra/M4GqgnIcqGK6d++uZ555RgsWLNCcOXNUWlqqtWvX2q6suBzBwcHatm2b/va3v+m1115TamqqfHx81LhxY1t5VRFq166thIQEjR8/XsOGDVOdOnX04IMPql+/frYrJiqSq6urli9frnHjxunll1+Wp6enRo0apddee81u3OzZs9WlSxfNnj1b77zzjkpLSxUSEqIbbrihzIfOXIkhQ4bI29tbU6dO1d133y1nZ2d16dJFa9euVdeuXa/q3ObNm6eFCxfqnnvuUUFBgXr06KG33nrLtjacq6urvvzySz3++OMaM2aMXFxc1KtXL61evbrMh8x07txZCxcu1MGDB1VUVKQGDRroqaee0pNPPilJat68uerUqaNp06bp8OHDcnNzU3h4eJm3fFb01zEkJESJiYkaP368HnroIXl5eWngwIF66aWXNHz4cLuSdNiwYWrQoIGmTZumMWPG6MSJE7YPkjm3oD2foKAgNW3aVO+8845SUlJksVjUpEkTvf766xo7duwVZ78azs7O+uKLL/TWW29p4cKFmjp1qlxcXBQaGqpu3brZJod+fn5asWKFJkyYoGHDhsnb21u33367li5dqg4dOtgds0+fPvrPf/6jl156SePGjdPp06cVGhpa5gNtKsLdd9+tp556SnFxcbJarWX2P/PMM2rVqpXeeustffTRRyooKFBQUJA6deqkhx56yDZu8eLFevzxx/Xkk0+quLhYN9xwg1atWqX+/ftXeGYAACoT8/cLY/7O/J35+xmVOX8vr27duunbb7/Viy++qBEjRqi0tFRt27bVF198odjY2HIdc/LkyUpLS9OoUaN04sQJNWzYUAcP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4uJiLViwQOvWrXP4XK8inJ/LhYaGltoeGhrKPM9C586d09ixY9W/f3/VqlXL6jgVx+pT16sLlfHVhI0bN5qYmBgjybi7u5sePXqYnj17mp49expjfl3WoUmTJubUqVOXPc7ChQtNaGiocXd3N15eXmb06NEmNDTUvP76605XU1k2btxoJJmUlBRjjDGvvfaauf766y8a16RJEzNx4sQKreG3Kque37J6WRVjKr6mw4cPmyZNmphBgwZVdPyLVHY9R48eNbt27TJfffWV6dSpk7nrrrsq9auAlVXPW2+9ZeLi4kxRUZExxrFf4XLE79x5//73v40kc+zYsYqKf5HKqmfhwoVGkpk1a5Z9zLlz50xwcHClf03QEc/RwYMHjZubm/n3v/9d0fEvUln1lJSUmPj4eNOzZ0+zevVqk5KSYp588klTr149k56e7nL1GONa84Xvv//eSDLjxo0rdb/o6GgzduxYY4x18wXA2ZT1GnMlQ4cONQ0aNDAHDx60OspVy8/PN7t37zYbNmwwY8eONcHBwWbbtm1Wxyq3AwcOmJCQEJOammrf5mrLqlzo9OnTJjQ01Lz55ptWRyk3T09PExsbW2rb8OHDTceOHS1KdG26d+9uevfubXWMq/bRRx+Z+vXrm48++sj8+OOPZt68eSYwMNB88MEHVkcrtz179phbb73VPr+66aabzIABA0zz5s2tjnZFF76XnZ8LXjjvfvzxx02PHj0cnK58Lvd+XBWWVSkoKDD33HOPadOmjcnJyXFssErGmeMWateunVJTU3Xy5EllZGQoKSlJx48fV6NGjSRJK1eu1M8//6zatWvLw8NDHh4ekqT77rtPXbp0sR+nf//+yszM1OHDh3X8+HElJibq6NGj9uM4U01ladu2rTw9Pe1ngoWFhenIkSMXjTt69OhF/2tY2SqiHmdTkTWlp6frtttuU2xsrN59993Kjl6miqwnODhY119/vbp166ZFixZp+fLlWrt2bWWXUEpF1LNy5UqtXbtW3t7e8vDwUJMmTSRJ7du318CBAx1Sx29V1uuoY8eOkqQ9e/ZUeObLqYh6wsPDJanU2WXe3t667rrrdODAgcotoAwV/RzNmTNHQUFBll2opaJeR8uWLdOiRYvUqVMntW3bVv/85z/l6+uruXPnOqoUSRX3/LjSfKGs14gkNW/e3P4acab5AoDfZ/jw4Vq6dKm++eYb1a9f3+o4V83Ly0tNmjRR+/btNXHiRMXExOitt96yOla5paSkKCsrS+3atbN/3ly1apWmT58uDw8PFRcXWx3xqvn5+Sk6OtppP4uVJTw8/LLvd65k//79+vrrr/X4449bHeWqPffccxo7dqwefPBBRUdHKyEhQc8884xLfauicePGWrVqlU6fPq2DBw9q/fr1KiwstGSud63OLyt84VniWVlZzPMsUFhYqPvvv1/79u1TcnJy1TprXCyr4hQCAgJUt25d7d69Wxs3brQvoTJ27Fj9+OOPSk1Ntd8kaerUqZozZ85FxwkNDVXNmjX18ccfy8fHR926dXNkGaVcqqaybNu2TYWFhfYPwrGxscrJydH69evtY9atW6ecnBzFxcVVevayXEs9zupaazp8+LC6dOmitm3bas6cOaXWsbVCRT9HxhhJ/7c2rqNdSz3Tp09XWlqa/d+N5cuXS5I+/vhjvfbaaw7JX5aKfo42b94sSZa91q6lnnbt2snb21u7du2yjyksLNQvv/yiBg0aVHr2S6mI58gYozlz5ujhhx926Jr9ZbmWes6cOSNJF/3b5ubmppKSksoLfRkV9RpyhflCw4YNFRERUeo1Ikk//fST/TXijPMFAOVjjNFTTz2lzz77TCtXrnTJxk1ZjDGWzR1/jzvuuENbtmwp9Xmzffv2GjBggFJTU+Xu7m51xKuWn5+vHTt2OP1nsd/q1KnTZd/vXMmcOXMUEhKiXr16WR3lqp05c+aieZ+7u7tl875r4efnp/DwcGVnZ2vFihWXnTM6q0aNGiksLEzJycn2bQUFBVq1ahXzPAc73xjfvXu3vv76awUFBVkdqcJ5WB2gKjt9+nSpMxr37dun1NRUBQYGKioqSp988onq1q2rqKgobdmyRU8//bTuvfde+wUHwsLCyrwIZ1RUVKkJ5MyZMxUXF6eaNWsqOTlZzz33nCZNmlQpa6Jea00///yzFi5cqLvuukvBwcHavn27nn32WbVp00adOnWS9Ov/kt95550aPHiwZs2aJUl64okn1Lt3bzVr1szl6pGkAwcO6MSJEzpw4ICKi4vt/9HRpEkT1axZ0+VqSk9PV5cuXRQVFaW///3vOnr0qP3xyvqddfZ61q9fr/Xr1+uWW25RnTp1tHfvXr300ktq3LhxhV9UyRH1REVFlXrM879jjRs3rpSzshxR05o1a7R27VrddtttCggI0IYNG/TMM88oPj7+onpdoZ5atWppyJAhGj9+vCIjI9WgQQO98cYbkqS+fftWaD2Oqum8lStXat++fRo0aFCF1+HIemJjY1WnTh0NHDhQL730knx9fTV79mzt27evwj/wOer5caX5gs1m03PPPafx48crJiZGrVu31ty5c7Vz5079+9//luTY+QLgbK70GnN2w4YN04cffqglS5bI39/ffmZgQECA/WLBzu4vf/mLevbsqcjISJ06dUqLFi3Sf//7XyUlJVkdrdz8/f0vWuf9/PV3XGX999GjR+vuu+9WVFSUsrKy9Oqrryo3N9eSb0v+XuevMzZhwgTdf//9Wr9+vd59913Lvpn7e5WUlGjOnDkaOHCg/VvvruTuu+/Wa6+9pqioKN14443avHmzpkyZoscee8zqaOW2YsUKGWPUrFkz7dmzR88995yaNWumRx991OpoZbrSe9nIkSM1YcIENW3aVE2bNtWECRNUo0YN9e/f38LUpV2phvN9oPT0dEmy/0fYpfp9VrhcDREREfrTn/6kTZs2admyZSouLra/ZwcGBsrLy8uq2BXL0kVdqrhvvvnGSLroNnDgQGPMr+sC169f33h6epqoqCjz4osvmvz8/MseU2Ws/5OQkGACAwONl5eXadWqlZk3b14lVXTtNR04cMDceuut9ryNGzc2I0aMMMePHy/1OMePHzcDBgww/v7+xt/f3wwYMMBkZ2e7bD0DBw4s83G++eYbl6xpzpw5ZT5GZfyT4oh6fvzxR3PbbbeZwMBA4+3tbRo2bGiGDBliDh065JL1XKiy1zdzRE0pKSmmQ4cOJiAgwPj4+JhmzZqZ8ePHm7y8PJesx5hf12x79tlnTUhIiPH39zddu3Y1W7durfB6HFmTMcb069fPxMXFVUodjq5nw4YNpnv37iYwMND4+/ubjh07muXLl7tsPa40Xzhv4sSJpn79+qZGjRomNjbWfPfdd6X2O2q+ADibK73GnN2l5pFz5syxOlq5PfbYY6ZBgwbGy8vL1K1b19xxxx3mq6++sjrWNXO1NccfeOABEx4ebjw9PU1ERITp06ePS637ft4XX3xhWrZsaby9vc0NN9xg3n33XasjXbUVK1YYSWbXrl1WR/ldcnNzzdNPP22ioqKMj4+Pue6668wLL7xwxR6NM/n444/Ndddd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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(18, 7))\n",
+ "\n",
+ "#year\n",
+ "axes[0].plot(result_eachyear['year'], result_eachyear['passengers'])\n",
+ "\n",
+ "axes[0].set_xticks(result_eachyear['year'],fontsize=1)\n",
+ "\n",
+ "axes[0].set_xlabel('year')\n",
+ "axes[0].set_ylabel('number')\n",
+ "axes[0].set_title('the number of passengers in each year')\n",
+ "\n",
+ "# month\n",
+ "axes[1].bar(np.array(result_eachmonth.index.tolist())+1, result_eachmonth['passengers'])\n",
+ "axes[1].set_xticks(np.array(result_eachmonth.index.tolist())+1)\n",
+ "\n",
+ "axes[1].set_title('the number of passengers in each month')\n",
+ "axes[1].set_xlabel('month')\n",
+ "axes[1].set_ylabel('number')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "341a4d22-025f-486a-8e82-954fae22b177",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5e30df57-a5ac-41da-b1a1-b42b1baae88b",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "id": "66bbde41-e2c6-4bb6-bc80-5c5f3dd75bf6",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "## 练习2:鸢尾花花型尺寸分析 (3个题)\n",
+ "\n",
+ "1. 萼片(sepal)和花瓣(petal)的大小关系(提示:散点图)\n",
+ "2. 不同种类(species)鸢尾花萼片和花瓣的大小关系(提示:箱图或者提琴图)\n",
+ "3. 不同种类鸢尾花萼片和花瓣大小的分布情况(六角箱图或者核密度估计)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "b71328f2-0ae3-463a-a557-43506a54a8a4",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " sepal_length \n",
+ " sepal_width \n",
+ " petal_length \n",
+ " petal_width \n",
+ " species \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 5.1 \n",
+ " 3.5 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 4.9 \n",
+ " 3.0 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 4.7 \n",
+ " 3.2 \n",
+ " 1.3 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 4.6 \n",
+ " 3.1 \n",
+ " 1.5 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 5.0 \n",
+ " 3.6 \n",
+ " 1.4 \n",
+ " 0.2 \n",
+ " setosa \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " sepal_length sepal_width petal_length petal_width species\n",
+ "0 5.1 3.5 1.4 0.2 setosa\n",
+ "1 4.9 3.0 1.4 0.2 setosa\n",
+ "2 4.7 3.2 1.3 0.2 setosa\n",
+ "3 4.6 3.1 1.5 0.2 setosa\n",
+ "4 5.0 3.6 1.4 0.2 setosa"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = sns.load_dataset(\"iris\")\n",
+ "data.head()\n",
+ "# 萼片长度,萼片宽度,花瓣长度,花瓣宽度,种类"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "id": "1d89c7f7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "sepal_length 5.5\n",
+ "sepal_width 2.6\n",
+ "petal_length 4.4\n",
+ "petal_width 1.2\n",
+ "species versicolor\n",
+ "Name: 90, dtype: object"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.iloc[90]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "id": "27a094ec",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABMsAAATWCAYAAAA7JSHnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdfXxcZZ3///ckIU2ryWgCIVMo7dBVcAgqBSqBpnLXWqoR1IerLC0gWKHLndQbNriajQpZVndlXTXSWECaFXzscpufIVDE0qCpAUrVMKhsO2n7LdONJO6k0KYhM+f3x2TSTDKTTE5OzjkzeT0fj/wxk+vK9TnXOclc+ZzrXJfHMAxDAAAAAAAAAJTndAAAAAAAAACAW5AsAwAAAAAAAIaRLAMAAAAAAACGkSwDAAAAAAAAhpEsAwAAAAAAAIaRLAMAAAAAAACGkSwDAAAAAAAAhpEsAwAAAAAAAIaRLAMAAAAAAACGkSwD4Dpbt26Vx+PR1q1bJUlnnHGGTjjhBEWj0bR1zjvvPB177LEaHByUJO3bt09///d/r/e+972aO3euSktLdfrpp2vdunXat2+fHYchafyxAAAAzCa5NK4DMHuQLAPgetdee61ef/11PfXUUym//+c//1m/+c1vtHbtWhUWFur//b//pyVLlmjLli3asGGDWltbde+99+ryyy/XCy+8oN27d9t8BAAAAJAY1wHIDgVOBwAAk7niiiv0la98Rffee69Wr1497vv33nuvJOmaa66RJDU1NemNN95QZ2en/H7/SLnLLrtMt99+u2KxmD2BAwAAIAnjOgDZgJllACz3l7/8RV/4whe0YMECzZkzR8cdd5zOO+88PfPMM6Z+3rvf/W594hOfUEtLi3p7e5O+F41GtXnzZp199tk6/fTTJUm9vb3Ky8tTeXl5yp+Xlzfxn777779fHo9HW7Zs0ec+9zmVlpbqHe94h2pqarh7CQAAZhXGdXH9/f0qKCjQd77znZH33njjDeXl5cnr9WpoaGjk/ZtvvlnHHXecDMPI+OcDcBeSZQAst3btWj322GP6xje+oaefflo/+clPdPHFF48bEE3Ftddeq8HBQTU3Nye9/9RTT+n111/XtddeO/JeVVWVYrGYPvnJT+qpp55Sf3+/6Tbz8vL0s5/9THfffbc6Ozt1/vnn6//+7/9MHwcAAEA2YVwXV1JSorPPPjspSfjLX/5Sc+bM0cGDB9XZ2Tny/jPPPKMLL7xQHo/HVKwAnMdjmAAs9+tf/1qf//zntW7dupH3Lr300mn9zAsvvFB+v1/33nuvbrnllpH37733Xs2bN0+XX375yHt/93d/p/b2djU1Nenpp5+Wx+PRqaeeqlWrVunmm2/WokWLMmrzrLPO0qZNm0Zen3baaTrvvPP0wx/+UF/72temdTwAAADZgHHdURdffLH+9V//VUeOHNGcOXP0zDPP6Pzzz9frr7+uZ555Rueee65ef/11vfrqq7r11lsz6wwArsTMMgCWW7p0qe6//359+9vf1vbt2/X2229P+2d6PB597nOf0+9//3u99NJLkuLT8ltaWvSpT31KJSUlSWV//OMfa/fu3frRj36kz33uc3r77bf1ve99T6eddpqee+65jNq84oorkl6fe+65WrhwoX71q19N+3gAAACyAeO6oy666CIdPnxYv/nNbyTFZ5CtWLFCF198sbZs2TLynhRPrAHIXiTLAFju5z//ua666ir95Cc/UVVVlUpLS3XllVfqwIED0/q5n/vc55SXl6f77rtPkvSf//mfGhwcTJqqP9rChQu1fv16bdq0Sa+99pp+/vOfa2BgQF/5ylcyaq+ioiLle9N57AAAACCbMK476txzz9W8efP0zDPP6H/+53/U3d09kiz77W9/qzfffFPPPPOMTj755KTNCABkH5JlACx37LHH6u6771Z3d7f27NmjhoYGPfLII7r66qun9XNPPPFErVy5Uj/72c905MgR3Xffffqbv/kbLV++PKP6f/u3f6v3v//96urqyqh8qkHggQMHVFZWNqW4AQAAshXjuqMKCwu1bNkyPfPMM9qyZYsqKip0+umnj8S8detW/fKXv2RWGZADSJYBmFEnnXSSbrzxRq1YsUI7duyY9s+79tpr9de//lXf+MY3tHPnTn3uc58bt3hqOBxOWffNN9/Uvn37NH/+/Iza+s///M+k17/5zW+0Z88enX/++aZiBwAAyGaM6+KPV7700kt6+OGHR5Ji73jHO3TOOefoP/7jP/T666+TLANyAAv8A7BUJBLRBRdcoL/7u7/TqaeequLiYr3wwgtqa2vTJz/5yWn//I9//OM69thj9Z3vfEf5+fm66qqrxpW544479Otf/1qf+cxn9MEPflBz585VKBTSD37wA/X2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lH7yk5/o8ssv18DAwIzPraio0EUXXRQ3CPvNb36jOXPm6MiRI+rp6Rk/vm3bNl166aXjg6DrrrtO/f39+vWvfx1X589//nMNDw+PT9eXpLq6OgWDQX3+85/Xjh07dOzYsbTa+pd/+Zf60z/9U/3qV7/SN7/5TT322GP6xCc+oXfeeSet+gAAAEzBmC75Md15550nj8cT195t27Zp7ty58vv9ev311yVJo6Oj2rFjhy6//PK04gTgEAsAZunkk0+2vvKVr6T9/L//+7+35s6daw0PD1uWZVlf/OIXrZUrV1rnn3++1dzcbFmWZR06dMiSZG3cuHH8eUeOHLFOPvlk61Of+lRcfYsXL7bmz59vhcPh8WPDw8PWVVddZUmyJFnFxcXWBRdcYH3jG9+w+vv7Z4yxqanJkmTdeuutccf/9V//1ZJkbdmyJen23n///ZYkKxAIJP0cAACATGNMl9qYbvXq1daZZ545/vjyyy+31q1bZ733ve+1fvazn1mWZVn/8R//YUmynnrqqaTrBeA8ZpYBmLUlS5bogQce0He+8x3t2rUr5VlWl112mY4dO6bf/va3kqJX5ZYvX67LL79cW7duHT8mKe6q3Mknn6zPfvaz6ujo0P/8z/9Iknp7e/XCCy/o2muvVVHRu//i5syZo0cffVR+v1/f//739bnPfU5vvPGG7rrrLp177rl65ZVXkor185//fNzjz372syopKdEzzzyTUpsBAABMw5gutTHdZZddptdee02BQEDDw8N69tlntXLlSl1yySVx7Z0zZ46WLl2adL0AnEeyDMCs/fKXv9Q111yjn/zkJ6qrq1NlZaXWrl2rw4cPJ/X8j3zkI5o3b562bdum//qv/1JfX9/4wOp3v/ud3nrrLW3btk1nnnmmvF5v3HOvu+46jY6OavPmzZKkn/70p3K5XPrbv/3bKf/Wueeeq6985SvasmWLDhw4oH/8x3/UwMCA7rjjjqRirampiXtcUlKiqqqqpG5PAAAAMBljutTGdLGE37Zt2/Tss8/qnXfe0aWXXqrLL79cv/nNb8Z/99GPflRz585Nul4AziNZBmDW3ve+9+nee+9VX1+f9u/fr5aWFj3yyCO69tprk3p+aWmpli5dqm3btmnr1q2qqanRhz70IS1btkyStH37dv3mN7+Zcq2Hj3zkIzr33HN1//3365133tGWLVt06aWXThqATcXlcunWW2/Ve97zHvX29iYV68TB4ujoqAYGBsYXnQUAAMhVjOlSG9Odfvrp+uAHPzje3gsvvFDvec97dNlllykYDOp3v/uddu3axXplQA4iWQbAVmeccYZuvvlmLV++XLt37076eZdffrleeOEFPfzww+MDij/5kz/RxRdfrH/+53/W66+/nnCg8YUvfEF+v19///d/rzfeeENf+MIXJpUJBoNTPvf111/X0NCQTjvttKTi/Nd//de4x//3//5fjY6O6uMf/3hSzwcAAMgFjOmSc/nll+vpp5/W1q1btXz5cknSBz/4QZ1xxhm688479c4775AsA3JQidMBAMhtoVBIl1xyif7mb/5G55xzjsrLy/Xcc8+ps7NTn/70p5Ou57LLLlM4HNZvfvMb/exnPxs/fvnll6upqUkul0uXXnrplM9du3atbr/9dn33u9/Ve97znin/7vXXX68//vGP+sxnPqPa2loVFxfr5Zdf1ve//30VFRXptttuGy/7rW99S9/61rf0m9/8Rh/72Mfi6nnkkUdUUlKi5cuX66WXXtIdd9yhD3/4w/rsZz+bdFsBAABMw5guvTHdZZddph/96Ed68803de+998Ydv//++/Xe975XixcvTqlOAM4jWQZgVsrKyvTnf/7n2rx5s/r6+vTOO+/ojDPO0G233aavf/3rSddzwQUX6H3ve5/efPPNuKtvsYHVBRdckHBafHV1tf7iL/5Cjz76qP7mb/5GZWVlk8rccsst+uUvf6m2tjYdOnRIb7/9tk455RTV1dXpwQcf1MUXXzxeNhKJKBwOy7KsSfU88sgj+uY3v6nW1la5XC41NDTo3nvvVWlpadJtBQAAMA1juvTGdJdeeqmKioo0d+5c1dXVxbX3/vvv1yWXXBK3QQGA3OCypvrPAQCI881vflPNzc1644039L73vc/pcAAAAJAGxnQAkkGKGwAAAAAAABjDbZgAMsayLIXD4WnLFBcXy+VyZSmizIpEIopEItOWKSnh3y4AAMgtjOkmY0wH5DdmlgHImJ/97Gc66aSTpv3ZsWOH02Em5Zvf/KYsy5p2uv63vvWtGdvb19eXvaABAABswJiOMR1QaFizDEDGDAwMKBAITFvm7LPPVnl5eZYiyqzXX39dr7/++rRlzj//fDYDAAAAOYUx3WSM6YD8RrIMAAAAAAAAGMNt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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))\n",
+ "\n",
+ "def subgraph(x,y,x_name,y_name,axes,data):\n",
+ " axes[x][y].scatter(data[x_name],data[y_name])\n",
+ " axes[x][y].set_xlabel(x_name[0]+x_name[5]+x_name[6])\n",
+ " axes[x][y].set_ylabel(y_name[0]+y_name[5]+y_name[6])\n",
+ " axes[x][y].set_title(x_name[0]+x_name[5]+x_name[6]+'VS.'+y_name[0]+y_name[5]+y_name[6])\n",
+ " \n",
+ "subgraph(0,0,'sepal_length','petal_length',axes,data)\n",
+ "subgraph(0,1,'sepal_length','petal_width',axes,data)\n",
+ "subgraph(1,0,'sepal_width','petal_length',axes,data)\n",
+ "subgraph(1,1,'sepal_width','petal_width',axes,data)\n",
+ "\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "d5b91055",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "id": "50010249",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "color_dict = {'setosa':'blue','virginica':'black','versicolor':'red'}\n",
+ "\n",
+ "data['colors'] = data['species'].map(color_dict)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "id": "563f3aa7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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/msyURQQEICIiAi4urraOTr7unfvHgoVKmTyc1Cr1Xj//fexcuVKO0dmm2bNmmHfvn0ml2K6u7vjwYMH8PHxsXNkRMpTYgzBmWVERERZXFxcHBYtWmRygKzVahEeHp4tatEQEZEhQRDw008/QaVSmVyC+OOPP2b5RBkABAcHY9y4cUafE0URXl5emDhxop2jst20adPg6upq8qbY5MmTmSgjSoPJMiIioizu2rVrePnypdk2arUap0+ftlNERETkbBo2bIidO3eiZMmSescLFiyIdevWoVu3bg6KzP6+/vprzJgxA35+fnrHa9WqhSNHjqB48eIOiiz9KleujAMHDqBSpUp6xwMDA/HLL7+k7oZKRDK1owMgIiKijGXNTABJkuDm5maHaIiIyFk1btwY//77L06dOoXw8HAEBgaidu3aFgveZzWCIGD06NEYNmwYDh48iNjYWJQuXRplypRxdGg2qVGjBk6fPo1//vkHN27cgK+vL+rWrQsXFxdHh0bkdFizjIiIKIvT6XQoXLgwwsPDzbb7559/UKFCBTtF5VgcQzg/XiMiIiJKD9YsIyIiIotUKhXGjh1r8nlRFNG0adNskygjIiIiIjKHyTIiIqJsYNCgQfj0008ByPXJAKQW+a1WrRrWrFnjsNiIiIiIiJwJa5YRERFlA4IgYOrUqejVqxcWLlyYWquka9euaN68ucndsYiIiIiIshsmy4iIiLKRcuXKYdasWY4Og4iIiIjIaXEZJhERERERERER0X+YLCMiIiIiIiIiIvoPk2VERERERERERET/YbKMiIiIiIiIiIjoPyzwT0RERERERFmWJEkICwvD0aNHIYoimjRpgmrVqmVIXy9fvsSmTZtw69Yt+Pv7o2PHjsibN2+G9JUe8fHx2Lx5M27cuAE/Pz906NABQUFBZs+RJAlHjhzBwYMHIQgC3n77bdSqVQuCIJg979SpU/juu+/w/PlzlC1bFt988w18fX0VfDeklNWrV2PZsmXQarVo2rQpRo8eDZUqe8+tEiRJkhwdRHpFR0fDx8cHUVFR8Pb2dnQ4REREZANJkrB371788ssv+Pfff+Hn54du3bqhV69eyJkzp6J9cQzh/HiNiEgJly9fRvv27XH58mWIoggA0Gq1qFu3LtavX69oImvFihUYMmQIYmJioFarodVqoVKpMHLkSEybNi21f0dZ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rVq1sh544AFrz549AWN85JFHLEnW3Xff7bH9vffesyRZM2bMCPrzTp061ZJkbd++PehjAAAAiho53cnldP3797caNmyY/bx79+7WzTffbJ166qnWO++8Y1mWZX377beWJOurr74K+n0BRB4jywAU2nnnnadp06bpiSee0OrVq096lFW3bt109OhRrVy5UpK5K9ejRw91795dCxcuzN4myeOuXPny5XXttddq3rx5+vvvvyVJGzdu1Lp16zR48GDZ7Tn/FxcbG6s5c+Zo8+bNeumll3T99ddr7969evLJJ9WsWTP99ttvQcXar18/j+fXXnutnE6nvv7665P6zAAAANGGnO7kcrpu3bpp27Zt2r59u44dO6YVK1aoV69e6tq1q8fnjY2NVYcOHYJ+XwCRR7EMQKF9+OGHGjRokN566y21a9dOlSpV0sCBA5WSkhLU8RdccIHKlSunRYsW6Y8//tCOHTuyE6vvvvtOhw4d0qJFi9SwYUM1aNDA49hhw4YpIyND7777riTp7bffls1m05AhQ7yeq1mzZho1apRmzJihpKQkvfjii9q/f78eeuihoGKtUaOGx3On06nKlSsHNT0BAAAgmpHTnVxOl1XwW7RokVasWKETJ07owgsvVPfu3bV48eLs19q3b6+yZcsG/b4AIo9iGYBCq1Klil5++WXt2LFDf/75p8aNG6fZs2dr8ODBQR1fpkwZdejQQYsWLdLChQtVo0YNtWjRQp06dZIkLV26VIsXL/ba6+GCCy5Qs2bNNHXqVJ04cUIzZszQhRdemC8B88Zms+nuu+9WxYoVtXHjxqBizZssZmRkaP/+/dlNZwEAAIorcrqTy+lq166txo0bZ3/eNm3aqGLFiurWrZuSk5P13XffafXq1fQrA4ohimUAQqpu3bq644471KNHD/3www9BH9e9e3etW7dOs2bNyk4oTjnlFLVt21bjx4/X7t27fSYaQ4cO1ebNm/Xggw9q7969Gjp0aL59kpOTvR67e/dupaWlqWbNmkHF+d5773k8/9///qeMjAx16dIlqOMBAACKA3K64HTv3l1LlizRwoUL1aNHD0lS48aNVbduXT388MM6ceIExTKgGHJGOgAAxVtqaqq6du2qG2+8UU2bNlWFChW0Zs0affnll7rqqquCfp9u3brJ5XJp8eLFeuedd7K3d+/eXY888ohsNpsuvPBCr8cOHDhQ999/v5577jlVrFjR63lvueUW/fvvv+rbt6+aN28uh8OhX3/9VS+99JLsdrvGjBmTve/jjz+uxx9/XIsXL1bnzp093mf27NlyOp3q0aOHNm3apIceekhnnXWWrr322qA/KwAAQLQhpytYTtetWze9/vrr2rdvn15++WWP7VOnTtWpp56q1q1bn9R7Aog8imUACiUuLk7nn3++3n33Xe3YsUMnTpxQ3bp1NWbMGI0ePTro92nVqpWqVKmiffv2edx9y0qsWrVq5XNYfLVq1XTJJZdozpw5uvHGGxUXF5dvn5EjR+rDDz/U5MmTtWvXLh0+fFhVq1ZVu3btNH36dLVt2zZ7X7fbLZfLJcuy8r3P7Nmz9eijj2rixImy2Wy69NJL9fLLL6tMmTJBf1YAAIBoQ05XsJzuwgsvlN1uV9myZdWuXTuPzzt16lR17drVY4ECAMWDzfL2/xwAAA+PPvqoHnvsMe3du1dVqlSJdDgAAAAoAHI6AMGgxA0AAAAAAABkYhomgCJjWZZcLpfffRwOh2w2W5giKlput1tut9vvPk4n/7cLAACKF3K6/MjpgJKNkWUAisw777yjmJgYv49ly5ZFOsygPProo7Isy+9w/ccffzzg592xY0f4ggYAAAgBcjpyOqC0oWcZgCKzf/9+bd++3e8+TZo0UYUKFcIUUdHavXu3du/e7Xefli1bshgAAAAoVsjp8iOnA0o2imUAAAAAAABAJqZhAgAAAAAAAJmKdVdCt9ut3bt3q0KFCiWmmSQAACh6lmXp4MGDqlmzpux27h1GI/I8AABQEKHI84p1sWz37t2qU6dOpMMAAADF1M6dO1W7du1IhwEvyPMAAEBhFCbPK9bFsqwGkjt37lR8fHyEowEAAMVFWlqa6tSpU2KaUZdE5HkAAKAgQpHnFetiWdaQ/Pj4eJIoAABw0pjeF73I8wAAQGEUJs+jSQcAAAAAAACQiWIZAAAAAAAAkIliGQAAAAAAAJCJYhkAAAAAAACQiWIZAAAAAAAAkIliGQAAAAAAAJCJYhkAAAAAAACQiWIZAAAAAAAAkIliGQAAAAAAAJAposWy+vXry2az5XuMGDEikmEBAAAAAACglHJG8uRr1qyRy+XKfr5x40b16NFD11xzTQSjAgAAAAAAQGkV0WJZ1apVPZ4//fTTOu2009S5c2ev+6enpys9PT37eVpaWpHGBwAAAAAAgNIlanqWHT9+XDNmzNDQoUNls9m87jNu3DglJCRkP+rUqRPmKAEAAAAAAFCSRU2x7JNPPtG///6rwYMH+9xn7NixSk1NzX7s3LkzfAECAAAAAACgxIvoNMzcpkyZot69e6tmzZo+94mNjVVsbGwYowIAAAAAAEBpEhXFsj///FOLFi3S7NmzIx0KSgnLsvTjjz9q//79qlevnk4//fRIhwQAAAAgAhYvXqwffvhBdevW1TXXXCO7PWomYBWJ7du3a9u2bTr11FN19tlnl/jPCxREVPyvYurUqapWrZr69OkT6VBQCnz66adq2rSpWrVqpe7du6tRo0bq0KGDfvjhh0iHBgAAACBMZs6cqYSEBHXv3l2jR4/W9ddfr7i4OI0dOzbSoRWJTZs26cILL1TDhg3VvXt3tW7dWqeffro++OCDSIcGRJ2IF8vcbremTp2qQYMGyemMioFuKME+/PBDXXHFFfr99989tq9evZqCGQAAPowbN07nnnuuKlSooGrVqumKK67Qb7/95veYpUuXymaz5Xv8+uuvYYoaAHz78MMPdeONNyotLc1j+4kTJ/T0009rxIgREYqsaPzyyy9q166dvvnmG4/t27dv1w033KDJkydHKDIgOkW8WLZo0SIlJSVp6NChkQ4FJVx6erpuu+02SWYaZm4ul0vHjx/XqFGjIhAZAADRbdmyZRoxYoRWr16thQsXKiMjQz179tThw4cDHvvbb78pOTk5+9GoUaMwRAwA/t16661+X584caL+/fff8AQTBqNHj9aRI0fkcrm8vj5q1CgdOnQozFEB0SvixbKePXvKsiw1btw40qGghJs7d64OHDjg83WXy6Xly5dr69atYYwKAIDo9+WXX2rw4ME688wzddZZZ2nq1KlKSkrSunXrAh5brVo11ahRI/vhcDjCEDEA+LZixQqlpqb63ceyLD3++ONhiqho/f3335o7d67PQpkkHT16VB9//HEYowKiW8SLZUC4/Pnnn0El6ElJSWGIBgCA4ivrH5mVKlUKuG+rVq2UmJiobt266euvv/a5X3p6utLS0jweAFAU1q9fH9R+W7ZsKeJIwmPXrl35Ztbk5XQ6tWPHjvAEBBQDFMtQalSpUsXv3ZTc+wEAAO8sy9I999yjDh06qHnz5j73S0xM1KRJkzRr1izNnj1bTZo0Ubdu3fL1y8kybtw4JSQkZD/q1KlTVB8BQClXr169oParUaNGEUcSHsH8+8blcqlq1aphiAYoHmxWoBJzFEtLS1NCQoJSU1MVHx8f6XAQ5VJTU1WjRg0dO3bM6+s2m03NmjXTxo0bZbPZwhwdACCcyCEKbsSIEZo7d65WrFih2rVrn9Sxl156qWw2mz777LN8r6Wnpys9PT37eVpamurUqcN3BCDk3G63ypUr5/H/Od7s2LEj6MJatLvgggv03Xffye12e33d6XRq165dqlatWpgjA0IvFHkeI8tQaiQkJOjhhx/2u8+zzz5LoQwAAB9Gjhypzz77TF9//fVJF8okqW3btvlWpM4SGxur+Ph4jwcAFAW73a7777/f7z7du3cvMYUyyYzezVqV2Jt7772XQhmQC8UylCr33XefnnrqKZUtW1aS+YtSkipXrqz//e9/6tOnTyTDAwAgKlmWpTvuuEOzZ8/WkiVL1KBBgwK9z/r165WYmBji6ADg5D388MO69957vRaPevTooQULFkQgqqLTuXNnffbZZ9kFsax/B8XGxurBBx/Uk08+GcnwgKjDNEyUSmlpafr888+1f/9+1atXT71791aZMmUiHRYAIEzIIU7O7bffrvfff1+ffvqpmjRpkr09ISEh+wbU2LFjtWvXLk2fPl2S9PLLL6t+/fo688wzdfz4cc2YMUNPP/20Zs2apauuuirgOfmOAITDkSNH9MQTT+jXX39V9erV9cADDxRo5GxxkZGRoQULFmjr1q2qWLGiLr30Up166qmRDgsIqVDkEM4QxwQUC/Hx8erXr1+kwwAAoFiYOHGiJKlLly4e26dOnarBgwdLkpKTkz1WlD5+/Ljuvfde7dq1S2XLltWZZ56puXPn6uKLLw5X2AAQULly5fTUU09FOoywcTqdzKYBgsDIMgAAUOqQQ0Q/viMAAFAQNPgHAAAAAAAAQohiGQAAAAAAAJCJYhkAAAAAAACQiWIZEKXS09O1d+9enThxItKhAFHnxIkT2rt3r44dOxbpUAAAAACUMBTLgCjzyy+/qF+/fqpQoYKqVaumhIQE3X777dq1a1ekQwMiLjk5WSNHjlTFihVVrVo1VahQQddff702bdoU6dAAAAAAlBCshglEkbVr16pLly5K3mGS6QAAzhpJREFUT09XRkZG9nan06nKlStr9erVql+/fuQCBCJo586datu2rfbs2ZPvfx8xMTFasmSJ2rZtG8EIUZyQQ0Q/viMAAFAQrIYJlCCWZal///46duyYRyFAkjIyMrRv3z6NGDEiQtEBkXfnnXfq77//9vq/j/T0dN14441yu90Rig4AAABASeGMdAAAjG+//Va//fabz9ddLpfmz5+vpKQk1a1bN4yRAZGXnJysTz/9VL4GQ7vdbm3fvl1ff/21unXrFuboAAAIXkZGhr7++mvt2rVL1atXV/fu3RUTExPpsIqMy+XSsmXLlJSUpCpVqqhHjx6KjY2NdFhFxu12a/ny5dq+fbsqVaqknj17Ki4uLtJhAThJjCwDosTGjRtls9n87mNZln755ZcwRQREj19//dVnoSyL3W6ndxkAIKrNmjVLdevWVc+ePTVkyBBdfPHFqlWrlt59991Ih1YkvvjiC9WvX1/dunXTkCFDdOmllyoxMVGTJ0+OdGhFYtGiRTr99NPVpUsXDRkyRJdffrlq1KihV199NWAeAyC6MLIMiBLlypUL6i/RcuXKhSEaILoE87t3u9387wMAELXmzJmja665Jl++t3fvXg0cOFCSNGDAgEiEViQWLFigyy+/PN/nPXDggG655Ra5XC4NHz48QtGF3vLly9W7d+98LSFSU1N111136fjx47r33nsjFB2Ak0WDfyBK7N27VzVr1szXjym3KlWqaPfu3SV6qD7gTUZGhurWravk5GSf+zgcDu3cuVOJiYlhjAzFFTlE9OM7QknidrvVsGFDJSUl+bw5WrVqVe3atatE5HmWZal58+b65ZdffH7ehIQEJScnq2zZsmGOrmi0bdtWa9as8dk/NS4uTikpKUpISAhzZEDpQ4N/oASpWrWqbrvtNr9TMe+///6oSqCKca0dxYzT6dSDDz7o83W73a5hw4ZRKAMARKVVq1bpzz//9Js77d27V4sXLw5jVEXnp59+0ubNm/1+3tTUVM2dOzeMURWdrVu36rvvvvO70FB6errmzJkTxqgAFAbFMiCKvPDCC+rfv78kUxxwOp1yOByy2WwaO3asRo0aFdkAJaWkpGj06NGqWrWqHA6HEhMT9dBDD2n//v2RDg0l3G233aZHHnlENptNDocj+38jknTttdfq1VdfjXCEAAB49/fffwe1X0pKShFHEh7BfF6bzVaqPq/D4SgxnxcoDehZBkSRmJgYTZ8+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udLr9E6bzabExEQlJSUFvUJkTEyMMjIy/O5z8OBBlS9fPqj3C7U+ffpowYIFPj9vxYoVlZycrNjY2AhEB5Qu9CwDAJQK8fHxuummm3wm1E6nU+3ataNQBgCllM1m01tvvSWn05nv7wqHw6GYmBhNnjyZQpkfb731lt/X/+///u+kFkeYMGGC4uLi8n0fdrtddrtdb731VtCFMkl68cUX/b5+7bXXRqxQJkkvvfSSKlSo4PXzStLkyZMplAHFCMUyoIRzu91asGCB+vfvr+7du2vo0KFasWIF09VQ7DzzzDO64IILJOUknjabTTabTbVr19aHH34YyfAAABHWvn17LV++XB07dvTY3qlTJy1fvjz77xB4d9111+mjjz5S5cqVPbZXqFBB48eP19ixY0/q/Vq2bKnVq1erZ8+eHkXK888/X4sXL1bv3r1P6v1Gjhyp8ePH5yvY2e123XrrrRHPAxo3bqzvvvtOF198scfnbdWqlb788kv17ds3gtEBOFlMwwRKsMOHD+uKK67QokWL5HA4spfdzsjI0PXXX6/p06crJiYm0mECQTt+/LhmzpypSZMmafv27apataoGDRqkYcOGBbX0PJCFHCL68R2hMHbu3KmUlBTVqFFDderUiXQ4xc4PP/ygn3/+Waeddpo6dOhQ6PdLTk7WX3/9papVq6p+/fqFfr+FCxdqxYoVOuOMM3TdddcV+v1C7e+//1ZSUpIqVaoUdD89AKETihyCYhlQgg0cOFDvvfee194dNptNY8aM0bhx4yIQGQBEFjlE9OM7AgAABUHPMgA+7d6922ehTDKNcMePH6/Dhw+HOTIAAAAAAKIXxTKghFq8eLHPQlmWw4cPa+XKlWGKCAAAAACA6EexDCihjh8/HtL9AAAAAAAoDSiWASXUueeeG3Afu92uVq1ahSEaAAAAAACKB4plQAnVsmVLtWvXTk6n0+vrTqdTV111lWrWrBnmyAAAAAAAiF4Uy4ASbMaMGapSpYocDofHdrvdrgYNGui1116LUGQAAAAAAEQnimVACdawYUNt2LBB9913nxITExUTE6N69erp//7v/7RmzRpVq1Yt0iECAAAAABBVbJZlWZEOoqDS0tKUkJCg1NRUxcfHRzocAABQTJBDRD++IwAAUBChyCG8NzMCAAAAAITctm3b9O6772rXrl2qXr26BgwYoMaNG0c6rGx//vmnpk+frp07d6pq1arq37+/mjVrFumwUErs2bNH06dP15YtW5SQkKBrr702qIXLgFBjZBkAACh1yCGiH98RShrLsjR69Gi98MILstvtstlssixLLpdLw4cP14QJE/L1mQ13fA8++KDGjRuXHZ8kZWRkaOjQoXrjjTcUExMTsfhQ8r3++usaNWqUXC6X7HbTMSojI0O9evXSRx99pPLly0c4QhQXocgh6FkGAAAAAEXs6aef1vPPP59dIMvIyJDL5ZIkvfnmm3rooYciGt/LL7+sp556yiO+jIwMSdLUqVM1evToiMaHkm327NkaMWKETpw4Ibfb7fH7W7hwofr16xfhCFHaMLIMAACUOuQQ0Y/vCCXJ0aNHlZiYqNTUVJ/7xMXFKSUlRQkJCWGMzDh+/Lhq1qyp/fv3+9ynTJky2r17typXrhzGyFAaWJals846Sxs3bpS/8sSmTZt0xhlnhDEyFFeMLAMAAACAKLd8+XK/hTJJOnbsmBYuXBimiDytXr3ab6FMMgW1+fPnhykilCZJSUn6+eef/RbKHA6HZs+eHcaoUNrR4B+IQklJSZo5c6b27t2rOnXq6MYbb1TVqlUjHVa2v/76SzNnztTff/+tWrVq6cYbb1T16tUjHRZCZO/evXr//fezG/vecMMNqlu3bqTDAgCg2Dp8+HBI9wu1aI8PJVswvyu73c7vD2FFsQyIIi6XS/fcc4/Gjx8vu90uu90ul8ule++9V0899ZT++9//RjQ+t9ut++67Ty+88IIkc4fH5XJp9OjReuSRR/TAAw9kN4NF8fTss8/qgQcekNvtlsPhkNvt1tixY3XnnXfqxRdfzG62CgAAghfs1LHmzZsXcSTeBbvaZaTiQ8lWr149lS1bVkePHvW5z4kTJ/j9Iaz4Vw8QRR566CGNHz8+u7Fq7gaXo0eP1uTJkyMa3xNPPKHnnntObrdbbrfbI76HHnpIEyZMiGh8KJxJkyZpzJgxysjIyP5+XS6XLMvSq6++qocffjjSIQIAUCw1adJEHTt29LnapcPh0Nlnn63WrVuHOTKjfv366tGjh9/4mjZtqgsuuCDMkaE0OOWUUzRo0CCfvz+bzaaKFSuqb9++YY4MpRkN/oEoceDAASUmJio9Pd3nPomJidq5c2dElhU/ePCgatSooSNHjvjcp0qVKtq1a5fKlCkTxsgQChkZGapTp45SUlJ87hMXF6fk5GRVrFgxfIEBRYQcIvrxHaGk2bJli9q1a6e0tLTsVf4kyel0qmzZslq+fLnOOuusiMW3bds2tW3bVgcOHMgXX2xsrJYuXao2bdpELD6UbPv379cFF1ygrVu3Zq8SK5lCrc1m05w5c3TJJZdEMEIUJzT4B0qQefPm+S2USVJycrK+++67MEXk6auvvvJbKJOkffv2acWKFWGKCKG0evVqv4UyyTQeprEvAAAF07hxY61bt04DBw5UbGysJCkmJkbXX3+91q5dG9FCmSQ1bNhQ69at09ChQxUXFyfJFMquueYarVmzhkIZilTlypW1atUqjRo1KntFWJvNpl69emn58uUUyhB29CwDosTBgwdls9n8rgIjmSp5JAR73kjFh8I5ePBgUPvx/QIAUHD169fXlClT9Prrr+vAgQOqWLFidmEqGtSpU0dvvvmmXn31VR04cEAJCQkqW7ZspMNCKVGpUiU9//zzGjdunP755x+dcsopKl++fKTDQilFsQyIEo0bNw5YKMvaLxKaNGkS0v0QXRo1ahTUfpH6/QEAUJLExsaqRo0akQ7Dp2iPDyVbTEyMqlevHukwUMoxDROIEl26dFGDBg18rjbocDh04YUXqmHDhmGOzGjXrp2aNm3qN74LLrgg6NWUEF1OP/10denSxWc/PLvdroYNG6pz585hjgwAAAAAwotiGRAl7Ha73nnnHTmdznwFC6fTqQoVKui1116LUHSmZ8DUqVNVpkyZfPE5HA6VK1dOb7zxRoSi83To0CHNmDFDzz33nGbMmKFDhw4V+v3ee+89Pffcc3r33XeDnrJY3EycOFEVKlTw+v3GxMRo2rRpPoulAAAAAFBS8K8eIIp07NhR3377rXr27CmbzSbJFMquvvpqrVmzRk2bNo1ofG3bttWqVavUu3fv7PgcDoeuvPJKff/992rRokVE45Ok8ePHq3r16howYIDGjh2rAQMGqHr16powYUKB3m/ixImqUaOG+vfvr7Fjx2rgwIGqUaOGXnnllRBHHnlNmzbV999/r6uvvlpOp5mlb7PZ1LNnT3377bfq2LFjhCMEAAAAgKJns4JpklSEdu3apTFjxmj+/Pk6evSoGjdurClTpqh169YBj2VJcZRk+/fv1/79+1W9evXsFWGiyT///KN9+/apWrVqqlixYqTDkSRNmjRJt956q9/Xb7755qDf7+2339awYcN8vv7666/rtttuO6kYi4vU1FT9/fffqly5sipXrhzpcICQI4eIfnxHAACgIEKRQ0S0WHbgwAG1atVKXbt21W233aZq1app69atql+/vk477bSAx5NEAchy/Phx1axZU/v37/e5T5UqVbR7927FxMQEfL8TJ06odu3a2rNnj899KlWqpN27d2cv/w6g+CCHiH58RwAAoCBCkUNEdDXMZ555RnXq1NHUqVOzt9WvX9/n/unp6UpPT89+npaWVpThAShGvv76a7+FMknat2+fli5dqh49egR8v2+++cZvoUwyo+uWLFmi3r17n1SsAAAAAIDoFdGeZZ999pnatGmja665RtWqVVOrVq00efJkn/uPGzdOCQkJ2Y86deqEMVoA0SxQoSzS+wEAAAAAioeIFsu2bdumiRMnqlGjRlqwYIGGDx+uO++8U9OnT/e6/9ixY5Wampr92LlzZ5gjBhCtGjRoENX7AQAAAACKh4gWy9xut8455xw99dRTatWqlW699VbdfPPNmjhxotf9Y2NjFR8f7/EAAMms1Nm4cWPZ7d7/b81ut6tJkyY677zzgnq/Nm3a6IwzzvD7fqeffrouuOCCAscMAABKF8uytGLFCt10003q1auXBg8erCVLlijCa65lc7lcGjNmjCpWrKgyZcqoQoUKGjZsmI4fP16g97MsS6tXr9att96qXr16acCAAVqwYIHcbneIIy+4tWvX6rbbblOvXr3Uv39/zZs3Ty6XK9JhAYiwiPYsS0xM1BlnnOGxrVmzZpo1a1aEIgIQjBMnTmjJkiX6+++/VatWLXXp0kUOhyOiMdlsNr355pvq0aOHLMvySDptNpvsdrvefPNN2Wy2oN/vjTfeULdu3STJI6mz2+0n/X4AAKB0O3HihPr376///e9/cjqdysjIkNPp1DvvvKOLL75YH3/8scqWLRux+A4dOqQaNWro8OHDHjG//fbbmj59urZs2XJSI+pdLpeGDRumd955x+PzzpgxQ127dtVnn32m8uXLF8VHCYrb7dZtt92mSZMmZcfncDj03nvvqX379po7d25UrkgPIDwiOrKsffv2+u233zy2bdmyRfXq1YtQRAACeffdd1WrVi316tVLgwYNUvfu3VWvXj3NmTMn0qGpS5cuevDBB+V0et4HcDqdeuihh9S5c+eT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ilemTBmL8V566aUsOhNlhg0bZnHS+Mknn9gU7/3337cY78MPP7Qp3ujRox06qSWinItzCNfHa5TzJScny7179069yaXValNvcg0ePFg2GAyq5qfX6+VBgwaZzK9v374234QzGAzy//73P5PxevXqZXO85ORkuXLlyibnPcWKFZMfP35sczwvLy+T8bRarRwTE2NTPKPRKI8aNSr14188344dO8pPnz61LZ7BIH9Qt674+gGy9tl7APIboaFywv37NsUjopzLEXMISZZt2K/XxcTHx8Pf3x9xcXHwU/AcO5EjHd64EbVeecXiGAlA/N278Mmb12q8EydOoEqVKpbjSRIePHigyvf73bt3ERISguTkZLNjfH19ERsba/WxBQC4f/8+QkJCkJiYaHaMt7c3YmNjFfXbiI+PR1BQEJ4+fWp2jJeXF27evKm4zwcR5VycQ7g+XqPc4+TJk1iyZAliY2NRqFAh9OrVC+XKlVM7rVRnzpzB4sWLER0djZCQEPTs2RMVK1a0O15kZCQWL16MGzduIDg4GG+//TYqV65sd7yNGzfis88+w82bN5E3b16MHj0anTp1sjvepEmTMHXqVCQkJMDd3R39+vVT/JimKefPn8eiRYtw7do1FChQAN27d0eNGjXsjnfh77+x6JNPcDU6GvkDAtD9vfdQs2dPu+MRUc7jiDkEi2VEdurdoAEW791rddz3I0finenTrY4bMGAA5s2bZ3XcjBkz8O677yrK0ZFWrFiBrl27Wh23adMmvPTSS1bH/fbbb+jYsaPVcX/++SdesVKUBIB169Yp2onz999/x2uvvWZ1HBHlbJxDuD5eIyIiIrKHI+YQbPBPZKfHT54oGvcoPl5ZvMePlcV79EjROEeztGLLFcYlJCQ4dBwRERERERHlTiyWEdmpSZMmisa1UrB6ChC7LimhZNVWVrD2iGiKSpUqOTSe0scSlMZTOo6IiIiIiIhyJxbLiOz0v6++gruVMYU8PVG1VStF8fr37291C/Xg4GDUrFlTYYaOVa1aNdSoUQNardbkca1Wi9atW6N48eKK4lWqVAl169a1GK958+YoVaqUonjly5dHw4YNLcZr3LgxypYtqygeERERERER5U4slmVTZ86cwYQJE/Dee+9h9uzZuH//vtopZanNmzejefPmqFatGjp06ICzZ8+qnRI0Wi2WTJ1q9rgW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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(15, 15))\n",
+ "\n",
+ "def subgraph(x,y,x_name,y_name,axes,data):\n",
+ " axes[x][y].scatter(data[x_name],data[y_name],c=data['colors'])\n",
+ " axes[x][y].set_xlabel(x_name[0]+x_name[5]+x_name[6])\n",
+ " axes[x][y].set_ylabel(y_name[0]+y_name[5]+y_name[6])\n",
+ " axes[x][y].set_title(x_name[0]+x_name[5]+x_name[6]+'VS.'+y_name[0]+y_name[5]+y_name[6])\n",
+ " \n",
+ "subgraph(0,0,'sepal_length','petal_length',axes,data)\n",
+ "subgraph(0,1,'sepal_length','petal_width',axes,data)\n",
+ "subgraph(1,0,'sepal_width','petal_length',axes,data)\n",
+ "subgraph(1,1,'sepal_width','petal_width',axes,data)\n",
+ "\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "d27db8fe-9406-4897-adc2-32a0a83f359a",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "e58d7341-e8bc-40c6-9938-0e77bff459be",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f39794e8",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "id": "732f047d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 5.1\n",
+ "1 4.9\n",
+ "2 4.7\n",
+ "3 4.6\n",
+ "4 5.0\n",
+ "5 5.4\n",
+ "6 4.6\n",
+ "7 5.0\n",
+ "8 4.4\n",
+ "9 4.9\n",
+ "10 5.4\n",
+ "11 4.8\n",
+ "12 4.8\n",
+ "13 4.3\n",
+ "14 5.8\n",
+ "15 5.7\n",
+ "16 5.4\n",
+ "17 5.1\n",
+ "18 5.7\n",
+ "19 5.1\n",
+ "20 5.4\n",
+ "21 5.1\n",
+ "22 4.6\n",
+ "23 5.1\n",
+ "24 4.8\n",
+ "25 5.0\n",
+ "26 5.0\n",
+ "27 5.2\n",
+ "28 5.2\n",
+ "29 4.7\n",
+ "30 4.8\n",
+ "31 5.4\n",
+ "32 5.2\n",
+ "33 5.5\n",
+ "34 4.9\n",
+ "35 5.0\n",
+ "36 5.5\n",
+ "37 4.9\n",
+ "38 4.4\n",
+ "39 5.1\n",
+ "40 5.0\n",
+ "41 4.5\n",
+ "42 4.4\n",
+ "43 5.0\n",
+ "44 5.1\n",
+ "45 4.8\n",
+ "46 5.1\n",
+ "47 4.6\n",
+ "48 5.3\n",
+ "49 5.0\n",
+ "Name: sepal_length, dtype: float64"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data[data['species'] == 'setosa']['sepal_length']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "id": "3b5f2f49",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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ej06duyIZcuWGZzOv/9riNDQUPj7++OHH36Aj48PHB0d8corryAtLc2grfxfQ2RlZWHcuHHw9PSETqdD/fr18e233wK4d9vfwYMHo06dOtDr9WjYsCE+//zzIrdfcbcRAKxduxaPP/44dDodfHx8MGvWLPWxefPmoUmTJurwhg0boCgKvvrqK3Vct27dMGHCBHX4Qc8/RVGwcOFC9OjRA7a2tpg2bRqSk5PRv39/uLm5Qa/Xo379+liyZEmR60dUaia5fRWRCWjdBXLbtm3i4OAgS5culQsXLsj27dvFx8dHQkND1WnmzJkjv/32m1y8eFF27dolDRs2lDfffFNERLKysmTu3Lni4OAgCQkJkpCQIGlpaSLy4LsL5t390cfHR9auXSsXL16Uv/76SxYtWiQeHh7quLVr14qzs7MsXbq0yHUcNWqU1KxZU7Zu3SpnzpyRAQMGiJOTkyQlJUlOTo4kJCSIg4ODzJ07VxISEiQ9Pb3AMvLusHf+/Hl13OnTpwWAxMTEFLotg4KCxM7OTt577z2Jjo6WqKgouXTpklhaWsq7774r0dHR8uOPP0qtWrUM7vZ3/90aJ02aJHZ2dtKrVy85deqU/P777+Lu7i4ffPCBQVv578b30ksviaenp6xbt04uXLggO3fulFWrVonI/+5aePjwYbl48aIsX75cbGxs5Keffip0+xW1je6/S+HRo0fFzMxMpkyZIjExMbJkyRLR6/XqPj158qQoiiI3btwQEZG3335bXF1dpU+fPiJy726vdnZ28ssvv4hI8Z5/AKR69ery7bffyoULFyQuLk5GjBgh/v7+cuTIEbl06ZLs2LFDNm3aVNTTg6jUGBbokTFgwAAxNzcXW1tb9a93794iItK+fXuZMWOGwfQ//PCDeHh4FLm81atXi4uLizpc2G2KRYofFubOnWswjaenp6xcudJg3NSpU6Vt27aF1nPr1i2xtLSUFStWqOPu3LkjNWvWlE8//bTQtovStGlTmTJlijo8YcIEadWqlTpcWFjw9/c3WMb48eOlcePGBuM+/PDDB4YFGxsbSU1NVce999570rp1a4O28sJCTEyMAJAdO3Zork9+w4cPlxdffFFzmvu30f1hoV+/ftKlSxeDed577z1p1KiRiIjk5uaKq6urrFmzRkRE/P39JSwsTKpXry4iIvv37xcLCws1UBbn+QdA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b5doua6urlAUBXv27FFDS355406fPo0//vgDS5cuxYABA9THC+vYpUWn0xUaaop6Ib//yoe8fb1mzRr1rEZRvL298e233wIAYmNjsXr1aoSGhuLOnTtYuHBhierOey4W9TzM/xwsrG5jK+uxmPeJfMmSJRg6dCiWLFmCmjVromvXrgZtFOe5kqeobdC+fXu0b98ed+/exdGjRzFv3jy8/fbbqFGjBl555ZVC53Fzc8Off/6puQ4leZ0o67zlvX+dnJxgZmZWrBqsrKzw5JNPYufOnahduzbc3d3RpEkTPPbYYwDudazctWuXwe9z5M07b968Iq80qVGjhsFwYetYnsdURWNYKKXifJp9kOeeew5bt25F3bp14eTkVKplnDlzBn/88YfBVxErV66Evb292gu7U6dOCAsLw7Fjxwx6Zn///fdQFAUdO3YEcO/Uad++faEoCn755ResWLEC7777LoKDg9GrV68H1tK5c2esXr0anp6eePbZZwEADRo0gJeXFyZOnIjs7Gz1DERRymO7Fubpp5/G7t27C4x/5ZVXUKdOHYSFhaFevXolXu5zzz2Hjz/+GH/99RdeeumlIqfLe+G4/w3h66+/LjCt1jbw8fHByZMnDcb99ttvuHXrVrHq7datGywsLHDhwoUSnQpu0KABPvroI6xdu1b9eqsk2rZtC71ej+XLl6NPnz7q+D///BO//fYbevfuXeJl5qksx+Lrr7+ON998E3v37sXmzZsxZswYmJubG7RRnOdKcZmbm6N169bw9fXFihUrcOzYsSLDQvfu3fHDDz8gJiYGDRs2LHSa4r5OFDXv+vXrcfXqVYNg9f3338PGxsbol3La2tqidevWWLduHT777DP17GVubi6WL1+ufpjJ07lzZ0yYMAH29vbqa5KtrS3atGmDefPm4erVqwavVYGBgahWrRrOnj1bbpdOl/WYqmgMC6WU9z3+559/jgEDBsDS0hINGzYs0Y/PTJkyBTt27EC7du0watQoNGzYEJmZmYiLi8PWrVuxcOHCB546rFmzJv71r38hNDQUHh4eWL58OXbs2IFPPvlEva73nXfewffff49nn30WU6ZMgbe3N37++WfMnz8fb775pnoQTZo0CXv27MH27dvh7u6OsWPHIiIiAoMHD0bz5s3VU3JF6dSpE+bPn4/ExETMnTvXYPySJUvg5ORkcNlkYezt7eHt7Y2NGzeiU6dOcHZ2hqurK3x8fB68QTW4u7sX+pWNtbU1XFxcSv0DUIGBgXjjjTfw+uuv4+jRo+jQoQNsbW2RkJCAvXv3okmTJnjzzTfh6+uLunXr4v3334eIwNnZGZs3b1a/I81P67n16quv4v/+7/8wceJEBAUF4ezZs/jyyy/h6OhYrHp9fHwwZcoUfPjhh7h48SKefvppODk54e+//8bhw4dha2uLyZMn4+TJkxg5ciT69OmD+vXrw8rKCr/99htOnjyJ999/v8TbqVq1avi///s/fPDBB3jttdfQt29fJCUlYfLkybC2tsakSZNKvMw8leVY7Nu3L8aMGYO+ffsiKyurQP+M4j5XtCxcuBC//fYbnn32WXh5eSEzM1O9DFQriE+ZMgW//PILOnTogA8++ABNmjTBzZs3sW3bNowZMwa+vr7Ffp0ozKRJk9R+HxMnToSzszNWrFiBn3/+GZ9++mmxn59lERYWhi5duqBjx4549913YWVlhfnz5+P06dP48ccfDT7pd+rUCXfv3sWuXbsMLu/s3LkzJk2aBEVRDPqL2NnZYd68eRgwYAD++ecf9O7dG9WrV8eNGzfwxx9/4MaNG1iwYIFmfeV9TFU40/WtrPomTJggNWvWFDMzMwGgXv5SVA/7+3v+i9zr/T9q1CipU6eOWFpairOzs7Ro0UI+/PDDB16umNfOmjVr5PHHHxcrKyvx8fGR2bNnF5j28uXL0q9fP3FxcRFLS0tp2LChzJw5U+7evSsiItu3bxczM7MCPe2TkpLEy8tLWrVqJVlZWZr1JCcni5mZmdja2qqXAoqIrFixQgBIr169irVNdu7cKc2bNxedTicA1F7+eb2Mb9y4YTB9Xu/7wnrDP0hZr4bI891330nr1q3F1tZW9Hq91K1bV1577TU5evSoOs3Zs2elS5cuYm9vL05OTtKnTx+Jj48v9AqHop5bWVlZMm7cOPH09BS9Xi9BQUFy4sSJIq+GyH9FQn4bNmyQjh07ioODg+h0OvH29pbevXurl4D9/fffMnDgQPH19RVbW1uxs7OTpk2bypw5cyQnJ0dzO2m1/c0330jTpk3FyspKHB0dpUePHgWuNNDazkUx9bGYp1+/fgJAAgMDi5ymOM+VoKAgefzxxwvMe+DAAXnhhRfE29tbdDqduLi4SFBQkGzatMlgusKeU1euXJFBgwaJu7u7WFpaSs2aNeWll16Sv//+W53mQa8TWss/deqUPP/88+Lo6ChWVlbSrFkzg6sVRP53NcR//vOfIrfP/Yp7NYSIyJ49e+Spp55St22bNm1k8+bNBZaZm5srrq6uBpd2i/zviq2AgIBCa4mIiJBnn31WnJ2dxdLSUmrVqiXPPvuswfoU9TpVlmOqMlBE+LuZREREVDReDUFERESaGBaIiIhIE8MCERERaWJYICIiIk0MC0RERKSJYYGIiIg0VekfZcrNzcXVq1dhb29f4T8PS0REVJWJCNLS0lCzZk2YmWmfO6jSYeHq1asF7nJGRERExXflypUH/kJplQ4LeT/neuXKlXK7Qx0REdGjIDU1FZ6ensX6afQqHRbyvnpwcHBgWCAiIiqF4nyNzw6OREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItJk0rDg4+MDRVEK/I0YMcKUZREREVE+Jr3r5JEjR3D37l11+PTp0+jSpQv69OljwqqIiIgoP5OGBTc3N4Phjz/+GHXr1kVQUFCh02dlZSErK0sdTk1NNWp9xpCeno7o6OgSzZORkYG4uDj4+PhAr9eXaF5fX1/Y2NiUaB4iIqL8TBoW8rtz5w6WL1+OMWPGFHlv7bCwMEyePLmCKytf0dHRaNGiRYW1FxkZiYCAgAprj4iIHj6KiIipiwCA1atXo1+/foiPj0fNmjULnaawMwuenp5ISUmBg4NDRZVaJqU5sxAVFYWQkBAsX74cfn5+JZqXZxaIiKgwqampcHR0LNZ7aKU5s/Dtt9+ie/fuRQYFANDpdNDpdBVYVfmzsbEp9Sd9Pz8/niUgIqIKVynCwuXLl7Fz506sW7fO1KUQERHRfSrF7ywsWbIE1atXx7PPPmvqUoiIiOg+Jg8Lubm5WLJkCQYMGAALi0pxooOIiIjyMXlY2LlzJ+Lj4zFo0CBTl0JERESFMPlH+a5du6KSXJBBREREhTD5mQUiIiKq3BgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItLEsEBERESaGBaIiIhIE8MCERERaWJYICIiIk0MC0RERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItLEsEBERESaGBaIiIhIE8MCERERabIwdQFVXXw8kJho3Daiogz/NSZXV8DLy/jtEBFR1cGwUAbx8UBDX0FmhlIh7YWEGL8Na70gJlphYCAiIhXDQhkkJgKZGQpcnjsOS5dbRmtHcjKRk7IYFo5JUCz2GK2d7CQ7JG1pjsREnl0gIqL/YVgoB5Yut6BzTzVuI7U9ANz57x8REVHFYQdHIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISJPJw8Jff/2FkJAQuLi4wMbGBv7+/oiMjDR1WURERPRfJr2RVHJyMgIDA9GxY0f88ssvqF69Oi5cuIBq1aqZsiwiIiLKx6Rh4ZNPPoGnpyeWLFmijvPx8TFdQURERFSASb+G2LRpE1q2bIk+ffqgevXqaN68ORYvXlzk9FlZWUhNTTX4IyIiIuMyaVi4ePEiFixYgPr16+PXX3/FsGHDMGrUKHz//feFTh8WFgZHR0f1z9PTs4IrJiIievSYNCzk5uYiICAAM2bMQPPmzTF06FAMGTIECxYsKHT6CRMmICUlRf27cuVKBVdMRET06DFpWPDw8ECjRo0Mxvn5+SE+Pr7Q6XU6HRwcHAz+iIiIyLhMGhYCAwMRExNjMC42Nhbe3t4mqoiIiIjuZ9Kw8M477+DgwYOYMWMGzp8/j5UrV2LRokUYMWKEKcsiIiKifEx66WSrVq2wfv16TJgwAVOmTEGdOnUwd+5c9O/f35RlFZuSk47m7rFwtToPS+W2qcsps2wrW3i420PJaQDAxtTlEBFRJaGIiJi6iNJKTU2Fo6MjUlJSTNJ/Ieq3E/D7PajC2zW2qA4R8HvK39RlEBGREZXkPdSkZxaquky7Bgj4OgKuzx+HpctDcGYhyRaJm5vj22camLoUIiKqRBgWykAsbHD8mj/c76RBJ1X/B6Ky7jjg2jV/CJ8VRESUj8lvJEVERESVG8MCERERaWJYICIiIk0MC0RERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSZGHqAh4G2Ul2Rl2+5GQiJ+UyLBy9oVhYG60dY68HERFVTQwLZeDqCljrBUlbmhu5pWMAugKIBBBg1Jas9QJXV8WobRARUdXCsFAGXl5ATLSCxETjthMVBYSEAMuXA35+xm3L1VWBl5dx2yAioqqFYaGMvLxQYW+ufn5AgHFPLBARERXADo5ERESkiWGBiIiINDEsEBERkSaGBSIiItLEsEBERESaGBaIiIhIE8MCERERaWJYICIiIk0MC0RERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSYLUxdARFSZpKenIzo6ukTzZGRkIC4uDj4+PtDr9SWa19fXFzY2NiWah6iiMSwQEeUTHR2NFi1aVFh7kZGRCAgIqLD2iEqDYYGIKB9fX19ERkaWaJ6oqCiEhIRg+fLl8PPzK3F7RJWdScNCaGgoJk+ebDCuRo0auHbtmokqIqJHnY2NTak/6fv5+fEsAT2UTH5m4fHHH8fOnTvVYXNzcxNWQ0RERPczeViwsLCAu7u7qcsgIiKiIpj80slz586hZs2aqFOnDl555RVcvHixyGmzsrKQmppq8EdERETGZdKw0Lp1a3z//ff49ddfsXjxYly7dg3t2rVDUlJSodOHhYXB0dFR/fP09KzgiomIiB49Jg0L3bt3x4svvogmTZqgc+fO+PnnnwEAy5YtK3T6CRMmICUlRf27cuVKRZZLRET0SDJ5n4X8bG1t0aRJE5w7d67Qx3U6HXQ6XQVXRURE9GgzeZ+F/LKyshAVFQUPDw9Tl0JERET/ZdKw8O677yIiIgKXLl3CoUOH0Lt3b6SmpmLAgAGmLIuIiIjyMenXEH/++Sf69u2LxMREuLm5oU2bNjh48CC8vb1NWZZRleZ356Oiogz+LQn+7jwREZWVScPCqlWrTNm8SZTld+dDQkJKPA9/d56IiMqqUnVwfBSU5nfny3pHOyIiorJgWKhgpf3d+cDAQCNUQ0RE9GCV6moIIiIiqnwYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSYLUxdARGRM8fFAYqJx24iKMvzXmFxdAS8v47dDlB/DAhE9tOLjgYa+gswMpULaCwkxfhvWekFMtMLAQBWKYYGIHlqJiUBmhgKX547D0uWW0dqRnEzkpCyGhWMSFIs9RmsnO8kOSVuaIzGRZxeoYjEsENFDz9LlFnTuqcZtpLYHgDv//SN6uLCDIxEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItLEsEBERESaGBaIiIhIE8MCERERaWJYICIiIk0MC0RERKSJ94YgooeWkpOO5u6xcLU6D0vltqnLKbNsK1t4uNtDyWkAwMbU5dAjhGGBiB5a1rdicWxokKnLKD81AQwFom5FAPA3cTH0KGFYIKKHVqZdAwR8HQHX54/D0uUhOLOQZIvEzc3x7TMNTF0KPWJKHBauXLkCRVFQu3ZtAMDhw4excuVKNGrUCG+88Ua5F0hEVFpiYYPj1/zhficNOjHyLaorQNYdB1y75g/hxzyqYCXu4NivXz/s3r0bAHDt2jV06dIFhw8fxgcffIApU6aUe4FERERkWiUOC6dPn8YTTzwBAFi9ejUaN26M/fv3Y+XKlVi6dGl510dEREQmVuKwkJ2dDZ1OBwDYuXMn/vWvfwEAfH19kZCQUL7VERERkcmVOCw8/vjjWLhwIfbs2YMdO3bg6aefBgBcvXoVLi4u5V4gERERmVaJw8Inn3yCr7/+GsHBwejbty+aNWsGANi0aZP69QQRERE9PErcpzY4OBiJiYlITU2Fk5OTOv6NN96AjQ1/JISIiOhhU6qfexYRREZG4uuvv0ZaWhoAwMrKimGBiIjoIVTiMwuXL1/G008/jfj4eGRlZaFLly6wt7fHp59+iszMTCxcuNAYdRIREZGJlPjMwujRo9GyZUskJydDr9er41944QXs2rWrXIsjIiIi0yvxmYW9e/di3759sLKyMhjv7e2Nv/76q9wKIyIiosqhxGcWcnNzcffu3QLj//zzT9jb25dLUURERFR5lDgsdOnSBXPnzlWHFUXBrVu3MGnSJDzzzDPlWRsRERFVAiX+GmLOnDno2LEjGjVqhMzMTPTr1w/nzp2Dq6srfvzxR2PUSERERCZU4rBQs2ZNnDhxAj/++COOHTuG3NxcDB48GP379zfo8EhEREQPh1Ld6FSv12PQoEEYNGhQeddDRERElUyJw8L333+v+fhrr71WqkLCwsLwwQcfYPTo0QZ9IoiIiMi0ShwWRo8ebTCcnZ2N9PR09RccSxMWjhw5gkWLFqFp06YlnpeIiIiMq8RXQyQnJxv83bp1CzExMXjyySdL1cHx1q1b6N+/PxYvXmxwrwkiIiKqHErVZ+F+9evXx8cff4yQkBBER0eXaN4RI0bg2WefRefOnTFt2jTNabOyspCVlaUOp6amlqpeInq0ZCfZGXX5kpOJnJTLsHD0hmJhbbR2jL0eREUpl7AAAObm5rh69WqJ5lm1ahWOHTuGI0eOFGv6sLAwTJ48uTTlEdEjyNUVsNYLkrY0N3JLxwB0BRAJIMCoLVnrBa6uilHbILpficPCpk2bDIZFBAkJCfjyyy8RGBhY7OVcuXIFo0ePxvbt22FtXbwkPmHCBIwZM0YdTk1NhaenZ7HbJKJHi5cXEBOtIDHRuO1ERQEhIcDy5YCfn3HbcnVV4OVl3DaI7lfisNCzZ0+DYUVR4ObmhqeeegqzZs0q9nIiIyNx/fp1tGjRQh139+5d/P777/jyyy+RlZUFc3Nzg3l0Oh10Ol1JSyaiR5iXFyrszdXPDwgw7okFIpMocVjIzc0tl4Y7deqEU6dOGYx7/fXX4evri/HjxxcICkRERGQa5dZnoaTs7e3RuHFjg3G2trZwcXEpMJ6IiIhMp1hhIX8/gQeZPXt2qYshIiKiyqdYYeH48ePFWpiilK2Hbnh4eJnmJyIiovJXrLCwe/duY9dBRERElVSJf8GRiIiIHi2l6uB45MgR/Oc//0F8fDzu3Llj8Ni6devKpTAiIiKqHEp8ZmHVqlUIDAzE2bNnsX79emRnZ+Ps2bP47bff4OjoaIwaiYiIyIRKHBZmzJiBOXPmYMuWLbCyssLnn3+OqKgovPTSS/Diz4oRERE9dEocFi5cuIBnn30WwL1fVLx9+zYURcE777yDRYsWlXuBREREZFolDgvOzs5IS0sDANSqVQunT58GANy8eRPp6enlWx0RERGZXLHDwokTJwAA7du3x44dOwAAL730EkaPHo0hQ4agb9++6NSpk1GKJCIiItMp9tUQAQEBaN68OXr27Im+ffsCuHcXSEtLS+zduxe9evXC//3f/xmtUCIiIjKNYp9Z2LdvHwICAvDZZ5+hbt26CAkJQUREBMaNG4dNmzZh9uzZcHJyMmatREREZALFDgtt27bF4sWLce3aNSxYsAB//vknOnfujLp162L69On4888/jVknERERmUiJOzjq9XoMGDAA4eHhiI2NRd++ffH111+jTp06eOaZZ4xRIxEREZlQmX7uuW7dunj//ffx4YcfwsHBAb/++mt51UVERESVRKl+7hkAIiIi8N1332Ht2rUwNzfHSy+9hMGDB5dnbURERFQJlCgsXLlyBUuXLsXSpUtx6dIltGvXDvPmzcNLL70EW1tbY9VIREREJlTssNClSxfs3r0bbm5ueO211zBo0CA0bNjQmLURERFRJVDssKDX67F27Vo899xzMDc3N2ZNREREVIkUOyxs2rTJmHUQERFRJVWmqyGIiIjo4cewQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISFOJblFNRIbS09MRHR1d4vkyMjIQFxcHHx8f6PX6Es3r6+sLGxubErdJRFRaDAtEZRAdHY0WLVpUaJuRkZEICAio0DaJ6NHGsEBUBr6+voiMjCzxfFFRUQgJCcHy5cvh5+dX4jaJiCoSwwJRGdjY2JTpU76fnx/PEhBRpccOjkRERKSJYYGIiIg08WsIIqJ8SnOFS1RUlMG/JcGrW6gqYFggIsqnLFe4hISElHgeXt1CVQHDAhFRPqW5wqWsv5tBVNkxLBAR5VPaK1wCAwONUA1R5cAOjkRERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEm3huCiKgM7t69iz179iAhIQEeHh5o3749zM3NTV0WUbky6ZmFBQsWoGnTpnBwcICDgwPatm2LX375xZQlEREV27p161CvXj107NgR/fr1Q8eOHVGvXj2sW7fO1KURlSuThoXatWvj448/xtGjR3H06FE89dRT6NGjB86cOWPKsoiIHmjdunXo3bs3mjRpggMHDiAtLQ0HDhxAkyZN0Lt3bwYGeqgoIiKmLiI/Z2dnzJw5E4MHD37gtKmpqXB0dERKSgocHBwqoDqi8nHs2DG0aNECkZGRpbodMpnW3bt3Ua9ePTRp0gQbNmyAmdn/Pnfl5uaiZ8+eOH36NM6dO8evJKjSKsl7aKXps3D37l385z//we3bt9G2bdtCp8nKykJWVpY6nJqaWlHl0SMiPh5ITDR+O1FRhv8ak6sr4OVl/HYeJXv27EFcXBx+/PFHg6AAAGZmZpgwYQLatWuHPXv2IDg42DRFEpUjk4eFU6dOoW3btsjMzISdnR3Wr1+PRo0aFTptWFgYJk+eXMEV0qMiPh5o6CvIzFAqrM2QEOO3Ya0XxEQrDAzlKCEhAQDQuHHjQh/PG583HVFVZ/Kw0LBhQ5w4cQI3b97E2rVrMWDAAERERBQaGCZMmIAxY8aow6mpqfD09KzIcukhlpgIZGYocHnuOCxdbhm1LcnJRE7KYlg4JkGx2GO0drKT7JC0pTkSE3l2oTx5eHgAAE6fPo02bdoUePz06dMG0xFVdSYPC1ZWVqhXrx4AoGXLljhy5Ag+//xzfP311wWm1el00Ol0FV0iPWIsXW5B514BX3HV9gBw579/VJW0b98ePj4+mDFjRqF9FsLCwlCnTh20b9/ehFUSlZ9K96NMImLQL4GIqLIxNzfHrFmzsGXLFvTs2dPgaoiePXtiy5Yt+Oyzz9i5kR4aJj2z8MEHH6B79+7w9PREWloaVq1ahfDwcGzbts2UZRERPVCvXr2wZs0ajB07Fu3atVPH16lTB2vWrEGvXr1MWB1R+TJpWPj777/x6quvIiEhAY6OjmjatCm2bduGLl26mLIsIqJi6dWrF3r06MFfcKSHnknDwrfffmvK5omIyszc3JyXR9JDr9L1WSAiIqLKhWGBiIiINDEsEBERkSaGBSIiItJk8h9lIqoslJx0NHePhavVeVgqt01dTrnItrKFh7s9lJwGAGxMXQ4RVVEMC0T/ZX0rFseGBpm6jPJVE8BQIOpWBAB/ExdDRFUVwwLRf2XaNUDA1xFwff44LF0ekjMLSbZI3Nwc3z7TwNSlEFEVxrBA9F9iYYPj1/zhficNOnk4bn+edccB1675Q3ikE1EZsIMjERERaWJYICIiIk0MC0RERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEm3ouO6D7ZSXZGb0NyMpGTchkWjt5QLKyN1k5FrAsRPfwYFoj+y9UVsNYLkrY0r4DWjgHoCiASQIBRW7LWC1xdFaO2QUQPN4YFov/y8gJiohUkJhq/ragoICQEWL4c8PMzbluurgq8vIzbBhE93BgWiPLx8kKFvrH6+QEBxj2xQERUZuzgSERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItLEsEBERESaGBaIiIhIE8MCERERaWJYICIiIk0MC0RERKSJYYGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEiTScNCWFgYWrVqBXt7e1SvXh09e/ZETEyMKUsiIiKi+5g0LERERGDEiBE4ePAgduzYgZycHHTt2hW3b982ZVlERESUj4UpG9+2bZvB8JIlS1C9enVERkaiQ4cOBabPyspCVlaWOpyammr0Gom0pKenIzo6usTzRUVFGfxbEr6+vrCxsSnxfEREpWXSsHC/lJQUAICzs3Ohj4eFhWHy5MkVWRKRpujoaLRo0aLU84eEhJR4nsjISAQEBJS6TSKiklJERExdBACICHr06IHk5GTs2bOn0GkKO7Pg6emJlJQUODg4VFSpRKrSnlnIyMhAXFwcfHx8oNfrSzQvzywQUXlITU2Fo6Njsd5DK82ZhZEjR+LkyZPYu3dvkdPodDrodLoKrIpIm42NTak/5QcGBpZzNURExlEpwsJbb72FTZs24ffff0ft2rVNXQ4RERHlY9KwICJ46623sH79eoSHh6NOnTqmLIeIiIgKYdKwMGLECKxcuRIbN26Evb09rl27BgBwdHQs8fe4REREZBwm7eCoKEqh45csWYKBAwc+cP6SdM4gIiKi/6kyHRwryYUYREREpIH3hiAiIiJNDAtERESkiWGBiIiINDEsEBERkaZK8aNMRERExlCan2Tnz7EXxLBAREQPrbLe7K2kHtYbvTEsEBHRQ8vX1xeRkZElmicqKgohISFYvnw5/Pz8Stzew4hhgYiIHlpludmbn5/fQ3mWoDTYwZGIiIg0MSwQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWniLaqJiKjKiI8HEhON20ZUlOG/xuTqCnh5Gb+dsmJYICKiKiE+HmjoK8jMUCqkvZAQ47dhrRfERCuVPjAwLBARUZWQmAhkZihwee44LF1uGa0dyclETspiWDgmQbHYY7R2spPskLSlORITK//ZBYYFIiKqUixdbkHnnmrcRmp7ALjz3z9iB0ciIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaGBSIiItLEX3AkIqIqQclJR3P3WLhanYelctvU5ZRZtpUtPNztoeQ0AGBj6nI0MSwQEVGVYH0rFseGBpm6jPJTE8BQIOpWBAB/ExejjWGBiIiqhEy7Bgj4OgKuzx+HpctDcGYhyRaJm5vj22camLqUB2JYICKiKkEsbHD8mj/c76RBJ0a+kVQFyLrjgGvX/CFV4J2YHRyJiIhIE8MCERERaaoCJz+IiIj+JzvJzqjLl5xM5KRchoWjNxQLa6O1Y+z1KE8MC0REVCW4ugLWekHSluZGbukYgK4AIgEEGLUla73A1VUxahvlgWGBiIiqBC8vICZaQWKicduJigJCQoDlywE/P+O25eqqwMvLuG2UB4YFIiKqMry8UGFvrn5+QIBxTyxUGezgSERERJoYFoiIiEgTwwIRERFpYlggIiIiTQwLREREpMmkYeH333/H888/j5o1a0JRFGzYsMGU5RAREVEhTBoWbt++jWbNmuHLL780ZRlERESkwaS/s9C9e3d0797dlCUQERHRA1SpH2XKyspCVlaWOpyaWvVvUUpERMaTnp6O6OjoEs0TFRVl8G9J+Pr6wsbGpsTzVXZVKiyEhYVh8uTJpi6DiIiqiOjoaLRo0aJU84aEhJR4nsjISAQ8hD/7qIiImLoIAFAUBevXr0fPnj2LnKawMwuenp5ISUmBg4NDBVRJRERVSWnOLGRkZCAuLg4+Pj7Q6/UlmrcqnVlITU2Fo6Njsd5Dq9SZBZ1OB51OZ+oyiIioirCxsSnVJ/3AwEAjVFN18XcWiIiISJNJzyzcunUL58+fV4cvXbqEEydOwNnZGV5V4Z6dREREjwCThoWjR4+iY8eO6vCYMWMAAAMGDMDSpUtNVBURERHlZ9KwEBwcjErSv5KIiIiKwD4LREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESkiWGBiIiINDEsEBERkSaT3huirPLuK5GammriSoiIiKqWvPfO4tyjqUqHhbS0NACAp6eniSshIiKqmtLS0uDo6Kg5jSJV+LaPubm5uHr1Kuzt7aEoiqnLMZrU1FR4enriypUrcHBwMHU5VA64Tx8u3J8Pl0dlf4oI0tLSULNmTZiZafdKqNJnFszMzFC7dm1Tl1FhHBwcHuon7qOI+/Thwv35cHkU9ueDzijkYQdHIiIi0sSwQERERJoYFqoAnU6HSZMmQafTmboUKifcpw8X7s+HC/dnQVW6gyMREREZH88sEBERkSaGBSIiItLEsEBERESaGBZMbODAgejZs2expg0ODsbbb79t1HqKKzw8HIqi4ObNm6YupdIqyb4tiaVLl6JatWqa04SGhsLf319zmri4OCiKghMnTpRbbQ+TkjzHi7NPKpKPjw/mzp1r6jIqLWO+fimKgg0bNhT5eHGPu8r0eg8wLFAxVLYn7aPu5ZdfRmxsbInmMVZwqQoq2xt5eXqY1604KuP6JyQkoHv37sWevqp88KrSv+BI9CjS6/XQ6/WmLoOICuHu7m7qEozikT+zsGbNGjRp0gR6vR4uLi7o3Lkzbt++DQBYsmQJ/Pz8YG1tDV9fX8yfP1+dL+9U0qpVq9CuXTtYW1vj8ccfR3h4uDrN3bt3MXjwYNSpUwd6vR4NGzbE559/Xm6137lzB+PGjUOtWrVga2uL1q1bG7Sfl7p//fVX+Pn5wc7ODk8//TQSEhLUaXJycjBq1ChUq1YNLi4uGD9+PAYMGKB+Ch04cCAiIiLw+eefQ1EUKIqCuLg4df7IyEi0bNkSNjY2aNeuHWJiYspt/cqqquzbzZs3o1q1asjNzQUAnDhxAoqi4L333lOnGTp0KPr27Qug8E9TH3/8MWrUqAF7e3sMHjwYmZmZ6mOhoaFYtmwZNm7cqO7D/Oty8eJFdOzYETY2NmjWrBkOHDhQqvUwluDgYIwcORIjR45Un6cfffSReqc8reMgPDwcr7/+OlJSUtR1Dw0NBQAsX74cLVu2hL29Pdzd3dGvXz9cv3693OrevHkzWrRoAWtrazz22GOYPHkycnJy1McVRcE333yDF154ATY2Nqhfvz42bdpksIxNmzahfv360Ov16NixI5YtW6Z+CtVaNwBIT0/HoEGDYG9vDy8vLyxatKjc1q28VPZ9KyJwc3PD2rVr1XH+/v6oXr26OnzgwAFYWlri1q1bAAp+DXH48GE0b94c1tbWaNmyJY4fP64+FhcXh44dOwIAnJycoCgKBg4cqD6em5uLcePGwdnZGe7u7gb7t8LJI+zq1atiYWEhs2fPlkuXLsnJkyflq6++krS0NFm0aJF4eHjI2rVr5eLFi7J27VpxdnaWpUuXiojIpUuXBIDUrl1b1qxZI2fPnpV///vfYm9vL4mJiSIicufOHZk4caIcPnxYLl68KMuXLxcbGxv56aef1BoGDBggPXr0KFa9QUFBMnr0aHW4X79+0q5dO/n999/l/PnzMnPmTNHpdBIbGysiIkuWLBFLS0vp3LmzHDlyRCIjI8XPz0/69eunLmPatGni7Ows69atk6ioKBk2bJg4ODioNd28eVPatm0rQ4YMkYSEBElISJCcnBzZvXu3AJDWrVtLeHi4nDlzRtq3by/t2rUrwx4pP1Vp3968eVPMzMzk6NGjIiIyd+5ccXV1lVatWqnTNGjQQBYsWCAi9/aro6Oj+thPP/0kVlZWsnjxYomOjpYPP/xQ7O3tpVmzZiIikpaWJi+99JI8/fTT6j7MyspS19PX11e2bNkiMTEx0rt3b/H29pbs7OyybP5yFRQUJHZ2djJ69GiJjo5Wt/WiRYtERPs4yMrKkrlz54qDg4O67mlpaSIi8u2338rWrVvlwoULcuDAAWnTpo10795dbTfvOZ6cnPzAGu/fJ9u2bRMHBwdZunSpXLhwQbZv3y4+Pj4SGhqqTpP3HFu5cqWcO3dORo0aJXZ2dpKUlCQi956HlpaW8u6770p0dLT8+OOPUqtWLbUmrXXz9vYWZ2dn+eqrr+TcuXMSFhYmZmZmEhUVVdbdUa6qwr7t1auXjBw5UkRE/vnnH7G0tJRq1arJmTNnRERkxowZ0rp1a3V6ALJ+/XoREbl165a4ubnJyy+/LKdPn5bNmzfLY489JgDk+PHjkpOTI2vXrhUAEhMTIwkJCXLz5k112zg4OEhoaKjExsbKsmXLRFEU2b59e5m3e2k80mEhMjJSAEhcXFyBxzw9PWXlypUG46ZOnSpt27YVkf+9oXz88cfq49nZ2VK7dm355JNPimxz+PDh8uKLL6rDpQ0L58+fF0VR5K+//jKYplOnTjJhwgQRufcCBkDOnz+vPv7VV19JjRo11OEaNWrIzJkz1eGcnBzx8vIyqOn+kCLyv4Nt586d6riff/5ZAEhGRkax1seYqtq+DQgIkM8++0xERHr27CnTp08XKysrSU1NlYSEBAGgvtDf/8bUtm1bGTZsmMHyWrdurYaFomrJW89vvvlGHXfmzBmDtiqDoKAg8fPzk9zcXHXc+PHjxc/Pr9jHQf7tVZTDhw8LAPUNpyxhoX379jJjxgyDaX744Qfx8PBQhwHIRx99pA7funVLFEWRX375RV3Hxo0bGyzjww8/NKipqHXz9vaWkJAQdTg3N1eqV6+uBs7Koirs2y+++ELdDxs2bJCWLVtKr1695KuvvhIRka5du8r48ePV6fOHha+//lqcnZ3l9u3b6uMLFixQw4JWLUFBQfLkk08ajGvVqpVBWxXpkf4aolmzZujUqROaNGmCPn36YPHixUhOTsaNGzdw5coVDB48GHZ2durftGnTcOHCBYNltG3bVv2/hYUFWrZsiaioKHXcwoUL0bJlS7i5ucHOzg6LFy9GfHx8mWs/duwYRAQNGjQwqDEiIsKgRhsbG9StW1cd9vDwUE/HpaSk4O+//8YTTzyhPm5ubo4WLVoUu46mTZsaLBtAuZ7KLa2qtm+Dg4MRHh4OEcGePXvQo0cPNG7cGHv37sXu3btRo0YN+Pr6FjpvVFSUQa331/4glXUf5temTRuD29C3bdsW586dw9GjR4t1HBTm+PHj6NGjB7y9vWFvb4/g4GAAKJfjMzIyElOmTDGoaciQIUhISEB6ero6Xf5tb2trC3t7e3Xbx8TEoFWrVgbLzX+sPkj+ZSuKAnd390q3X4HKv2+Dg4Nx5swZJCYmIiIiAsHBwQgODkZERARycnKwf/9+BAUFFTpvVFQUmjVrBhsbG4P1K678+xAwfP2uaI90B0dzc3Ps2LED+/fvx/bt2zFv3jx8+OGH2Lx5MwBg8eLFaN26dYF5HiTvib969Wq88847mDVrFtq2bQt7e3vMnDkThw4dKnPtubm5MDc3R2RkZIGa7Ozs1P9bWloWqE3u+4Xv/AcqgAKPa8m//Lzl5H33bkpVbd8GBwfj22+/xR9//AEzMzM0atQIQUFBiIiIQHJycpEvRuWhsu7D4irOcXC/27dvo2vXrujatSuWL18ONzc3xMfHo1u3brhz506Za8rNzcXkyZPRq1evAo9ZW1ur/y/s+Mzb9iJSbsfm/cuuKirDvm3cuDFcXFwQERGBiIgITJkyBZ6enpg+fTqOHDmCjIwMPPnkk4XOW5L9VZjKtA8f6bAA3Nv4gYGBCAwMxMSJE+Ht7Y19+/ahVq1auHjxIvr37685/8GDB9GhQwcA9zoLRkZGYuTIkQCAPXv2oF27dhg+fLg6/YMScXE1b94cd+/exfXr19G+fftSLcPR0RE1atTA4cOH1WXcvXsXx48fN7hG38rKCnfv3i2PsitUVdq3HTp0QFpaGubOnYugoCAoioKgoCCEhYUhOTkZo0ePLnJePz8/HDx4EK+99ppB7flV1X2Y5/71OXjwIOrXr1+s46CwdY+OjkZiYiI+/vhjeHp6AgCOHj1abvUGBAQgJiYG9erVK/UyfH19sXXrVoNx99dY1fcrUPn3raIo6NChAzZu3IjTp0+jffv2sLe3R3Z2NhYuXIiAgADY29sXOm+jRo3www8/ICMjQ72CqbBjE0Cl34+P9NcQhw4dwowZM3D06FHEx8dj3bp1uHHjBvz8/BAaGoqwsDB8/vnniI2NxalTp7BkyRLMnj3bYBlfffUV1q9fj+joaIwYMQLJyckYNGgQAKBevXo4evQofv31V8TGxuL//u//cOTIkXKpvUGDBujfvz9ee+01rFu3DpcuXcKRI0fwySefFHiB0fLWW28hLCwMGzduRExMDEaPHo3k5GSDTzQ+Pj44dOgQ4uLikJiYWCU+nVS1fevo6Ah/f38sX75cPWXaoUMHHDt2DLGxseq4wowePRrfffcdvvvuO8TGxmLSpEk4c+aMwTQ+Pj44efIkYmJikJiYiOzs7FLXagpXrlzBmDFjEBMTgx9//BHz5s3D6NGji3Uc+Pj44NatW9i1axcSExORnp4OLy8vWFlZYd68ebh48SI2bdqEqVOnllu9EydOxPfff4/Q0FCcOXMGUVFR+Omnn/DRRx8VexlDhw5FdHQ0xo8fj9jYWKxevRpLly4F8L8zQIWtW1VTFfZtcHAwVq5ciaZNm8LBwUENECtWrNA8Nvv16wczMzMMHjwYZ8+exdatW/HZZ58ZTOPt7Q1FUbBlyxbcuHFDvaqi0jFJT4lK4uzZs9KtWzdxc3MTnU4nDRo0kHnz5qmPr1ixQvz9/cXKykqcnJykQ4cOsm7dOhH5X+ewlStXSuvWrcXKykr8/Pxk165d6vyZmZkycOBAcXR0lGrVqsmbb74p77///gM7nhXl/o6GeT3yfXx8xNLSUtzd3eWFF16QkydPikjhnX/Wr18v+Xd7dna2jBw5UhwcHMTJyUnGjx8vffr0kVdeeUWdJiYmRtq0aSN6vV4AyKVLlwrtlHP8+HH1cVOravtWRGTs2LECQE6fPq2Oa9asmbi5uRl0ACtsv06fPl1cXV3Fzs5OBgwYIOPGjTOo5fr169KlSxexs7MTALJ79251PfM6WomIJCcnq49XFkFBQTJ8+HD1Sh0nJyd5//331W3yoONARGTYsGHi4uIiAGTSpEkiIrJy5Urx8fERnU4nbdu2lU2bNhWr41lhCtsn27Ztk3bt2olerxcHBwd54okn1F7+IoYd4fI4OjrKkiVL1OGNGzdKvXr1RKfTSXBwsNo5Ln8n4sLWzdvbW+bMmWOw7GbNmqmPVxZVYd+KiJw6dUoAyLvvvquOmzNnjgCQLVu2GEx7/349cOCANGvWTKysrMTf31+9+iH/cTdlyhRxd3cXRVFkwIAB6ra5v2N5jx491McrGm9RXUpxcXGoU6dOgVP2VV1ubi78/Pzw0ksvlesnrarkYd23VVVwcDD8/f3588UApk+fjoULF+LKlSumLqVccN9WHY98n4VH3eXLl7F9+3YEBQUhKysLX375JS5duoR+/fqZujSiR978+fPRqlUruLi4YN++fZg5c6bab4aoIj3SfRYqk/j4eIPLg+7/K4/LuQpjZmaGpUuXolWrVggMDMSpU6ewc+dO+Pn5GaW9R5Gp9i2Vn+7duxe5/2bMmGG0ds+dO4cePXqgUaNGmDp1KsaOHWvaX/F7CJlq31Y1/BqiksjJyTH4GeX7+fj4wMKCJ4KqIu7bqu+vv/5CRkZGoY85OzvD2dm5giui8sJ9WzwMC0RERKSJX0MQERGRJoYFIiIi0sSwQERERJoYFoiIiEgTwwLRQ27fvn1o0qQJLC0t0bNnT1OXowoPD4eiKLh582alXF5+IoI33ngDzs7OUBQFJ06cQHBwMN5+++1yb4uoMmJYoIfWwIEDoShKgb/z58+Xy/KXLl2KatWqlcuyjGnMmDHw9/fHpUuX1HsLVAbt2rVDQkICHB0dTV3KA23btg1Lly7Fli1bkJCQgMaNG5u6JKIKxYu76aH29NNPY8mSJQbj3NzcTFRN0bKzswvcjra8XLhwAcOGDUPt2rWNsvyiPGidrKys4O7uXoEVPdidO3fUuwDmd+HCBXh4eKBdu3YmqKp4jPkcIuKZBXqo6XQ6uLu7G/yZm5sDADZv3owWLVrA2toajz32GCZPnoycnBx13tmzZ6NJkyawtbWFp6cnhg8frt4RLjw8HK+//jpSUlLUMxZ5v6ynKAo2bNhgUEe1atXUT/VxcXFQFAWrV69GcHAwrK2tsXz5cgDAkiVL4OfnB2tra/j6+mL+/Pma65eVlYVRo0ahevXqsLa2xpNPPqne/TKvnaSkJAwaNAiKohR6ZmHChAlo06ZNgfFNmzbFpEmT1GGt2opap8uXL+P555+Hk5MTbG1t8fjjj6t3DCzsa4N9+/YhKCgINjY2cHJyQrdu3ZCcnPzAdS3K2rVr8fjjj0On08HHxwezZs0yeNzHxwfTpk3DwIED4ejoiCFDhhRYxsCBA/HWW28hPj4eiqLAx8en0LaSk5Px2muvwcnJCTY2NujevTvOnTsH4N7XGG5ubli7dq06vb+/P6pXr64OHzhwAJaWlupzLCUlBW+88QaqV68OBwcHPPXUU/jjjz/U6UNDQ+Hv74/vvvsOjz32GHQ6HUQEa9asQZMmTaDX6+Hi4oLOnTvj9u3bmtuJ6IFMcvsqogqgddfHbdu2iYODgyxdulQuXLgg27dvFx8fHwkNDVWnmTNnjvz2229y8eJF2bVrlzRs2FDefPNNERHJysqSuXPnioODgyQkJEhCQoKkpaWJyIPvJph3t0cfHx9Zu3atXLx4Uf766y9ZtGiReHh4qOPWrl0rzs7OsnTp0iLXcdSoUVKzZk3ZunWrnDlzRgYMGCBOTk6SlJQkOTk5kpCQIA4ODjJ37lxJSEiQ9PT0AsvIu6Pe+fPn1XGnT58WABITEyMi8sDailqnZ599Vrp06SInT56UCxcuyObNmyUiIkJECt757/jx46LT6eTNN9+UEydOyOnTp2XevHly48aNB65rYcs7evSomJmZyZQpUyQmJkaWLFkier3e4K6O3t7e4uDgIDNnzpRz587JuXPnCmyfmzdvypQpU6R27dqSkJAg169fF5GCdwX817/+JX5+fvL777/LiRMnpFu3blKvXj25c+eOiIj06tVLRo4cKSIi//zzj1haWkq1atXkzJkzIiIyY8YMad26tYiI5ObmSmBgoDz//PNy5MgRiY2NlbFjx4qLi4u6vpMmTRJbW1vp1q2bHDt2TP744w+5evWqWFhYyOzZs+XSpUty8uRJ+eqrr9TnJlFpMSzQQ2vAgAFibm4utra26l/v3r1FRKR9+/YyY8YMg+l/+OEH8fDwKHJ5q1evFhcXF3W4sNsSixQ/LMydO9dgGk9PT1m5cqXBuKlTp0rbtm0LrefWrVtiaWkpK1asUMfduXNHatasKZ9++mmhbReladOmMmXKFHV4woQJ0qpVq2LXVtQ6NWnSxCCA5Xf/m3vfvn0lMDCw1Ot6//L69esnXbp0MVjOe++9J40aNVKHvb29pWfPnoW2md+cOXPE29vbYFz+sBAbGysAZN++ferjiYmJotfrZfXq1SIi8sUXX0jjxo1FRGTDhg3SsmVL6dWrl3z11VciItK1a1cZP368iIjs2rVLHBwcJDMz06DNunXrytdffy0i98KCpaWlGl5ERCIjIwWAxMXFPXCdiEqCX0PQQ61jx444ceKE+vfFF18AACIjIzFlyhSDm8YMGTIECQkJSE9PBwDs3r0bXbp0Qa1atWBvb4/XXnsNSUlJ5XZKt2XLlur/b9y4gStXrmDw4MEGNU2bNg0XLlwodP4LFy4gOzsbgYGB6jhLS0s88cQTiIqKKlEt/fv3x4oVKwDcO2X+448/on///iWuLf86AcCoUaMwbdo0BAYGYtKkSTh58mSRNZw4cQKdOnUqt3WNiooymB4AAgMDce7cOdy9e7fImksjKioKFhYWaN26tTrOxcUFDRs2VOsLDg7GmTNnkJiYiIiICAQHByM4OBgRERHIycnB/v37ERQUBODe8/PWrVtwcXEx2OaXLl0y2Obe3t4GfXCaNWuGTp06oUmTJujTpw8WL16sfo1DVBbs4EgPNVtbW9SrV6/A+NzcXEyePBm9evUq8Ji1tTUuX76MZ555BsOGDcPUqVPh7OyMvXv3YvDgwcjOztZsU1EUyH23XClsHltbW4N6AGDx4sUGbzgA1D4W98trQ1GUAuPvH/cg/fr1w/vvv49jx44hIyMDV65cwSuvvFLi2vKvEwD8+9//Rrdu3fDzzz9j+/btCAsLw6xZs/DWW28VqEGv1xdZX2nWtbDH7t8vhdVcGoUt9/4aGjduDBcXF0RERCAiIgJTpkyBp6cnpk+fjiNHjiAjIwNPPvkkgHvb3MPDA+Hh4QWWmf8KnPtrNzc3x44dO7B//35s374d8+bNw4cffohDhw6hTp06ZV5PenTxzAI9kgICAhATE4N69eoV+DMzM8PRo0eRk5ODWbNmoU2bNmjQoAGuXr1qsAwrKyuDT6h53NzckJCQoA6fO3dOPVtRlBo1aqBWrVq4ePFigXqKepGvV68erKyssHfvXnVcdnY2jh49WuJbjNeuXRsdOnTAihUrsGLFCnTu3Bk1atQodW35eXp6YtiwYVi3bh3Gjh2LxYsXFzpd06ZNsWvXrnJb10aNGhlMDwD79+9HgwYNigxgpdWoUSPk5OTg0KFD6rikpCTExsaq9SmKgg4dOmDjxo04ffo02rdvjyZNmiA7OxsLFy5EQEAA7O3tAdx7fl67dg0WFhYFtrmrq6tmLYqiIDAwEJMnT8bx48dhZWWF9evXl+v60qOHZxbokTRx4kQ899xz8PT0RJ8+fWBmZoaTJ0/i1KlTmDZtGurWrYucnBzMmzcPzz//PPbt24eFCxcaLMPHxwe3bt3Crl270KxZM9jY2MDGxgZPPfUUvvzyS7Rp0wa5ubkYP358sS5pCw0NxahRo+Dg4IDu3bsjKysLR48eRXJyMsaMGVNgeltbW7z55pt477334OzsDC8vL3z66adIT0/H4MGDS7xN+vfvj9DQUNy5cwdz5swpU2153n77bXTv3h0NGjRAcnIyfvvttyLf3CdMmIAmTZpg+PDhGDZsGKysrLB792706dMHrq6uJV7XsWPHolWrVpg6dSpefvllHDhwAF9++eUDrzApjfr166NHjx4YMmQIvv76a9jb2+P9999HrVq10KNHD3W64OBgvPPOO2jevDkcHBwAQA1p+bdj586d0bZtW/Ts2ROffPIJGjZsiKtXr2Lr1q3o2bNnkV+dHDp0CLt27ULXrl1RvXp1HDp0CDdu3ChxeCQqwFSdJYiMTetqCJF7V0S0a9dO9Hq9ODg4yBNPPCGLFi1SH589e7Z4eHiIXq+Xbt26yffff2/QgU5EZNiwYeLi4iIAZNKkSSIi8tdff0nXrl3F1tZW6tevL1u3bi20g+Px48cL1LRixQrx9/cXKysrcXJykg4dOsi6deuKXIeMjAx56623xNXVVXQ6nQQGBsrhw4cNpilOB0cRkeTk05PckgAAASRJREFUZNHpdGJjY1No73mt2opap5EjR0rdunVFp9OJm5ubvPrqq5KYmCgiBTskioiEh4dLu3btRKfTSbVq1aRbt27q4w9a18KWt2bNGmnUqJFYWlqKl5eXzJw506A+b29vmTNnzgO3zYM6OIrcu8Lh1VdfFUdHR/U5ExsbazBP3pUn7777rsGyAciWLVsMpk1NTZW33npLatasKZaWluLp6Sn9+/eX+Ph4EbnXwbFZs2YG85w9e1a6desmbm5uotPppEGDBjJv3rwHrh/RgygiRXzZRkRERAT2WSAiIqIHYFggIiIiTQwLREREpIlhgYiIiDQxLBAREZEmhgUiIiLSxLBAREREmhgWiIiISBPDAhEREWliWCAiIiJNDAtERESk6f8BT5tu7ZtFRJIAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, axes = plt.subplots(nrows=3, ncols=1, figsize=(6, 18))\n",
+ "\n",
+ "def subgraph(x,specie,axes,data):\n",
+ "\n",
+ " axes[x].boxplot([data[data['species'] == specie][data.columns[i]] for i in range(4)],\n",
+ " labels=data.columns[0:4],\n",
+ " patch_artist=True,\n",
+ " boxprops=dict(color='blue')\n",
+ " )\n",
+ " axes[x].set_xlabel(\"Feature of \"+specie+\" flowers\")\n",
+ " axes[x].set_ylabel(\"Values\")\n",
+ " axes[x].set_title(\"the box with 4 features for the \"+specie + \" flowers\")\n",
+ "\n",
+ "for idx,i in enumerate(list(set(data['species']))):\n",
+ " subgraph(idx,i,axes,data) \n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "acdd257b",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "dffa76b0-43ad-4ef3-a783-7a5e99f7e389",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "id": "43eaf74c-c25a-4841-a524-1474c1993aeb",
+ "metadata": {},
+ "source": [
+ "## 练习3:餐厅小费情况分析 (7个题)\n",
+ "\n",
+ "1. 小费和总消费之间的关系(提示:散点图+回归分析)\n",
+ "2. 男性顾客和女性顾客,谁更慷慨(提示:箱图或者提琴图)\n",
+ "3. 抽烟与否是否会对小费金额产生影响(提示:箱图或者提琴图)\n",
+ "4. 工作日和周末,什么时候顾客给的小费更慷慨(提示:箱图或者提琴图)\n",
+ "5. 午饭和晚饭,哪一顿顾客更愿意给小费(提示:箱图或者提琴图)\n",
+ "6. 就餐人数是否会对慷慨度产生影响(提示:箱图或者提琴图)\n",
+ "7. 性别+抽烟的组合因素对慷慨度的影响(提示:统计柱状图)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "899479bc-3d1b-4144-ac14-52d113ad26b5",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " total_bill \n",
+ " tip \n",
+ " sex \n",
+ " smoker \n",
+ " day \n",
+ " time \n",
+ " size \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 16.99 \n",
+ " 1.01 \n",
+ " Female \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 10.34 \n",
+ " 1.66 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 3 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 21.01 \n",
+ " 3.50 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 3 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 23.68 \n",
+ " 3.31 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 24.59 \n",
+ " 3.61 \n",
+ " Female \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " total_bill tip sex smoker day time size\n",
+ "0 16.99 1.01 Female No Sun Dinner 2\n",
+ "1 10.34 1.66 Male No Sun Dinner 3\n",
+ "2 21.01 3.50 Male No Sun Dinner 3\n",
+ "3 23.68 3.31 Male No Sun Dinner 2\n",
+ "4 24.59 3.61 Female No Sun Dinner 4"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = sns.load_dataset(\"tips\")\n",
+ "data.head()\n",
+ "# 总消费,小费,性别,吸烟与否,就餐星期,就餐时间,就餐人数"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "190abd86",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def scatterplot(x_data, y_data, x_label, y_label, title, ax = None):\n",
+ "\n",
+ " # 创建一个绘图对象\n",
+ " if ax:\n",
+ " pass\n",
+ " else:\n",
+ " fig, ax = plt.subplots()\n",
+ " # 调用plt句柄画一个图,返回两个变量fig,ax,分别是figure和 axes的缩写。函数返回一个figure图像和一个子图ax的array列表。\n",
+ " # 一个fig图里边会套好几个ax,而每个ax会负责当前坐标上的图。所以任何绘制的图形都是在ax上完成的;\n",
+ " # 而设置整个画布,将是在fig上完成。\n",
+ " \n",
+ " # 不显示顶部和右侧的坐标线\n",
+ " ax.spines['top'].set_color('none')\n",
+ " ax.spines['right'].set_color('none')\n",
+ " # 设置数据x_data和y_data、点的大小s、点的颜色color和透明度alpha\n",
+ " ax.scatter(x_data, y_data, s = 10, color = '#539caf', alpha = 0.75)\n",
+ "\n",
+ " # 添加标题和坐标说明\n",
+ " ax.set_title(title)\n",
+ " ax.set_xlabel(x_label)\n",
+ " ax.set_ylabel(y_label)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "2a4a0624",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "scatterplot(x_data = data['total_bill']\n",
+ " , y_data = data['tip']\n",
+ " , x_label = 'total_bill'\n",
+ " , y_label = 'tip'\n",
+ " , title = 'total_bill vs tip')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "0b931bd7",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import statsmodels.api as sm\n",
+ "from statsmodels.stats.outliers_influence import summary_table\n",
+ "x = sm.add_constant(data['total_bill']) # 线性回归增加常数项\n",
+ "y = data['tip']\n",
+ "regr = sm.OLS(y, x) # 普通最小二乘模型,ordinary least square model\n",
+ "res = regr.fit()\n",
+ "\n",
+ "# 从模型获得拟合数据\n",
+ "st, result_data, ss2 = summary_table(res, alpha=0.05) # 置信水平alpha=5%,st数据汇总,data数据详情,ss2数据列名\n",
+ "fitted_values = result_data[:,2]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "93c9e7c8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "predict_mean_ci_low, predict_mean_ci_upp = result_data[:,4:6].T\n",
+ "import pandas as pd\n",
+ "# 创建置信区间DataFrame,上下界\n",
+ "CI_df = pd.DataFrame(columns = ['x_data', 'low_CI', 'upper_CI'])\n",
+ "CI_df['x_data'] = data['total_bill']\n",
+ "CI_df['low_CI'] = predict_mean_ci_low\n",
+ "CI_df['upper_CI'] = predict_mean_ci_upp\n",
+ "CI_df.sort_values('x_data', inplace = True) # 根据x_data进行排序\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "86febbe6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def lineplotCI(x_data, y_data, sorted_x, low_CI, upper_CI, x_label, y_label, title):\n",
+ " # 创建绘图对象\n",
+ " _, ax = plt.subplots()\n",
+ "\n",
+ " # 绘制预测曲线\n",
+ " ax.plot(x_data, y_data, lw = 1, color = '#539caf', alpha = 1, label = 'Fit')\n",
+ " # 绘制置信区间,顺序填充\n",
+ " ax.fill_between(sorted_x, low_CI, upper_CI, color = '#539caf', alpha = 0.4, label = '95% CI')\n",
+ " # 添加标题和坐标说明\n",
+ " ax.set_title(title)\n",
+ " ax.set_xlabel(x_label)\n",
+ " ax.set_ylabel(y_label)\n",
+ "\n",
+ " # 显示图例,配合label参数,loc=“best”自适应方式\n",
+ " ax.legend(loc = 'best')\n",
+ " return ax"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "332f2ad6",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACIDUlEQVR4nO3deXxcZb0/8M+ZM/uefWnSJN33Fihbq1AslH1xuSroVUC9XkFk0ddV3EBFuKIoeL2iXr2IG8LvCohwewFZKsjWSlu6b0mapk2adfblzDnn+f0xyZBJs8wkk8xM+nm/XnlBzsyc85yT6ZzvPM/zfb6SEEKAiIiIqEgZ8t0AIiIioslgMENERERFjcEMERERFTUGM0RERFTUGMwQERFRUWMwQ0REREWNwQwREREVNQYzREREVNQYzBAREVFRYzBDBenXv/41JEnCli1bRn1Oa2srJEnCr3/96+lr2AS88MILWL16NRwOByRJwpNPPjni8wbPZ+iP2+3GypUrcf/990PTtClr409/+tOsrmNjY+MJbR38CYVCuPbaa9HY2Jj2mrvvvnvUcx9Ja2srLr30UpSWlkKSJNxyyy0Zv3Yism3fcMeOHcOdd96Jbdu2TXgfL7/8MiRJwssvv5z1a/7nf/5n3OfeeeedkCQpbdu6deuwbt26tG2SJOHOO+/MuA1TYazrOdJ50MnNmO8GEE1UTU0NXn/9dcydOzffTRmVEAIf/vCHsWDBAjz11FNwOBxYuHDhmK+56aabcM011wAAfD4fnnrqKdx66604cuQI7rvvvilp509/+lOUl5fj2muvzfg1a9euxQ9+8IMTttvtdnzjG9/AzTffnLb97rvvxoc+9CFcddVVGe3/1ltvxZtvvon//u//RnV1NWpqajJu20Rk277hjh07hm9961tobGzEqlWrctq2XPn0pz+Niy66KN/NyMhY17OYzoOmB4MZKloWiwVnnXVWvpsxpmPHjqGvrw/vf//7sX79+oxeM3v27LTzuuiii7Bz50488sgjUxbMTITX6x31+uciwNy5cyfOOOOMCQcXw2maBlVVYbFYcrK/YlRXV4e6urp8N2PSZsp5UO5wmImK1kjDTIPdz7t27cLVV18Nj8eDqqoqXH/99fD7/WmvF0Lgpz/9KVatWgWbzYaSkhJ86EMfQnNzc0bHf/XVV7F+/Xq4XC7Y7XasWbMGzzzzTFpbBj9wv/zlL0OSpBOGXjLl8XhgMplO2P7oo4/i7LPPhsPhgNPpxIUXXoitW7emPae5uRkf/ehHUVtbC4vFgqqqKqxfvz7Vfd/Y2Ihdu3Zh06ZNqaGiibZz0PBhJkmSEA6H8fDDD6eOMXxoY9DgsMnBgwexcePG1PNbW1sBAG1tbfj4xz+OyspKWCwWLF68GPfddx90XU/tY/C9ce+99+Kuu+5CU1MTLBYLXnrppRGPOV77du7ciSuvvBIlJSWwWq1YtWoVHn744bQ2n3766QCA6667LrWPwaGaLVu24KMf/SgaGxths9nQ2NiIq6++GocPH87+4o4iFovhtttuQ3V1NWw2G84999wT3gu5Gp5JJBKorKzEP//zP5/wmM/ng81mw2233QYA0HUdd911FxYuXAibzQav14sVK1bggQceGHX/413Pkc6jsbERl112GZ544gmsWLECVqsVc+bMwY9//ONJny8VPgYzNCN98IMfxIIFC/CnP/0JX/nKV/CHP/wBt956a9pzPvvZz+KWW27B+eefjyeffBI//elPsWvXLqxZswbHjx8fc/+bNm3C+973Pvj9fvzqV7/CI488ApfLhcsvvxyPPvoogGRX+OOPPw4gOXT0+uuv44knnhi37bquQ1VVqKqK3t5e/Pd//zf+7//+74Qbx913342rr74aS5YswWOPPYbf/va3CAaDeO9734vdu3ennnfJJZfgH//4B+699148//zzePDBB3HKKafA5/MBAJ544gnMmTMHp5xyCl5//fWM2ymESLVz8GdoQDHU66+/DpvNhksuuSR1jJ/+9KcjPvfUU0/F66+/jurqaqxduzb1/JqaGnR3d2PNmjV47rnn8J3vfAdPPfUUzj//fHzpS1/C5z//+RP29eMf/xgvvvgifvCDH2Djxo1YtGhR1u3bt28f1qxZg127duHHP/4xHn/8cSxZsgTXXnst7r333lSbH3roIQDA17/+9dQ+Pv3pTwNIBlcLFy7E/fffj2effRbf+9730NHRgdNPPx09PT3jXutMfPWrX0VzczN++ctf4pe//CWOHTuGdevWZRycZ8NkMuHjH/84/vSnPyEQCKQ99sgjjyAWi+G6664DANx777248847cfXVV+OZZ57Bo48+ik996lOp999Ixrueo9m2bRtuueUW3HrrrXjiiSewZs0a3Hzz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74477sDTTz+N8847D9/85jdRWlqK3//+93jmmWdw7733wuPxAEiurWOz2fD73/8eixcvhtPpRG1tLWpra3HOOefg+9//PsrLy9HY2IhNmzbhV7/6Fbxe74TbO1xXVxfe//734zOf+Qz8fj/uuOMOWK1W3H777Tk7xkiuv/56PProo/j85z+Puro6nH/++WmPX3755Vi2bBlWr16NiooKHD58GPfffz8aGhowf/78Ufc71vUcTW1tLa644grceeedqKmpwe9+9zs8//zz+N73vpfTHiAqQPmcfUw0msFsptF+Wlpaxsxm6u7uHnF/LS0tadv/+7//W5x55pnC4XAIm80m5s6dKz7xiU+ILVu2jNvGV155Rbzvfe9Lvfass84Sf/nLX9KeM9lsJqvVKhYsWCBuueUW0dHRccJrnnzySXHeeecJt9stLBaLaGhoEB/60IfEX//6VyGEEMePHxfXXnutWLRokXA4HMLpdIoVK1aIH/3oR2nZUa2trWLDhg3C5XIJACdkIg03UqbRUCNlM23btk2sXbtW2O12AWDc7KnRjnH48GFxzTXXiLKyMmEymcTChQvF97//faFpWuo52Vz3TNq3Y8cOcfnllwuPxyPMZrNYuXLliFk2jzzyiFi0aJEwmUxpGUHt7e3igx/8oCgpKREul0tcdNFFYufOnaKhoSEtg2oy2Uy//e1vxRe+8AVRUVEhLBaLeO9733vC+ziX2UyDNE0T9fX1adlsQ913331izZo1ory8XJjNZjF79mzxqU99SrS2to6779Gu52jZTJdeeqn4n//5H7F06VJhNptFY2Oj+OEPf5jReVBxk4QY0i9JRERUhBobG7Fs2TI8/fTT+W4K5QHnzBAREVFR45wZIqICJIQYd4KwLMusHk0E9swQERWkTZs2wWQyjfkztD7Uya61tZVDTCcxzpkhIipAwWBw3JWkm5qauH4KERjMEBERUZHjMBMREREVtRkfzAghEAgEwA4oIiKimWnGBzPBYBAejwfBYDDfTSEiIqIpMOODGSIiIprZGMwQERFRUWMwQ0REREWNwQwREREVNQYzREREVNRYm2mApmlIJBL5bsZJyWQyQZblfDeDiIiK1EkfzAgh0NnZCZ/Pl++mnNS8Xi+qq6tZNI+IiLJ20gczg4FMZWUl7HY7b6bTTAiBSCSCrq4uAEBNTU2eW0RERMXmpA5mNE1LBTIs1pY/NpsNANDV1YXKykoOORERUVZO6gnAg3Nk7HZ7nltCg38DzlsiIqJsndTBzCAOLeUf/wZERDRRDGaIiIioqOU1mPnb3/6Gyy+/HLW1tZAkCU8++WTa40II3HnnnaitrYXNZsO6deuwa9eu/DS2SKxbtw633HJLvptBREQ0bfIazITDYaxcuRI/+clPRnz83nvvxQ9/+EP85Cc/webNm1FdXY0LLriAFbABXHvttZAk6YSfe++9F9/5zndSz2tsbMT999+fv4YSEdGM1e4LYlt7F9p9+b0v5zWb6eKLL8bFF1884mNCCNx///342te+hg984AMAgIcffhhVVVX4wx/+gM9+9rPT2dSCdNFFF+Ghhx5K21ZRUcFsICIimnLP7WnBxt3NiKkarEYZFy+Zgw2Lm/LSloKdM9PS0oLOzk5s2LAhtc1iseDcc8/Fa6+9Nurr4vE4AoFA2s9MZbFYUF1dnfazfv361DDTunXrcPjwYdx6662pnhsiIqLJavcFsXF3MwSAcqcNAsDG3c1566Ep2GCms7MTAFBVVZW2vaqqKvXYSO655x54PJ7UT319/ZS2s5A9/vjjqKurw7e//W10dHSgo6Mj300iIqIZoCcURUzV4LKaYZAkuKxmxFQNPaFoXtpT8IvmDe9NEEKM2cNw++2347bbbkv9HggEsg5o4qqKo75Qdg2dpFleJyzG7P4cTz/9NJxOZ+r34UN2paWlkGUZLpcL1dXVOWknERFRudMGq1FGMKbAZTUjGFNgNcood9ry0p6CDWYGb76dnZ1pS9x3dXWd0FszlMVigcVimdSxj/pC+Lc/vzypfWTr3ivXYU65N6vXnHfeeXjwwQdTvzscDlx99dU5bhkREVG6Oq8LFy+Zg427m9ETisJqlHHJ0jmo87ry0p6CDWaamppQXV2N559/HqeccgoAQFEUbNq0Cd/73vem9NizvE7ce+W6KT3GSMfMlsPhwLx586agNURERGPbsLgJS2rK0ROKotxpy1sgA+Q5mAmFQjh48GDq95aWFmzbtg2lpaWYPXs2brnlFtx9992YP38+5s+fj7vvvht2ux3XXHPNlLbLYjRm3UtSqMxmMzRNy3cziIhoBqrzuvIaxAzKazCzZcsWnHfeeanfB+e6fPKTn8Svf/1r/Nu//Rui0ShuuOEG9Pf348wzz8Rzzz0Hlyv/F65YNDY24m9/+xs++tGPwmKxoLy8PN9NIiIiyqm8BjPr1q2DEGLUxyVJwp133ok777xz+ho1w3z729/GZz/7WcydOxfxeHzM601ERFSMJDHD726BQAAejwd+vx9utzvtsVgshpaWFjQ1NcFqteaphQTwb0FERBNXsOvMEBEREWWCwQwREREVNQYzREREVNQYzBAREVFRYzBDRERERY3BDBERERU1BjNERERU1BjMEBERUVFjMENERERFrWCrZudbNKEiMU0FGk2yDJuJfwoiIqKJ4B10BNGEiuf3tiAUT0zL8ZwWEy5Y1JRxQBMMBvGNb3wDTzzxBLq6unDKKafggQcewOmnn556zrXXXouHH3447XVnnnkm3njjjdTvt912G37961/D6XTi3nvvxUc/+tHUY4899hh++9vf4i9/+cu47VEUBffffz9+//vf48CBA7Db7Vi4cCE+/elP4+Mf/zhMJhOuvfZa+Hw+PPnkkxmdIxERUaYYzIwgoWkIxRMwyzLMRnlKj6WoyWMlNC3jYObTn/40du7cid/+9reora3F7373O5x//vnYvXs3Zs2alXreRRddhIceeij1u9lsTv3/X/7yF/zhD3/Ac889hwMHDuC6667DBRdcgLKyMvh8Pnzta1/DCy+8MH77FQUXXnghtm/fju985ztYu3Yt3G433njjDfzgBz/AKaecglWrVmV+QYiIiLLEYGYMZuP0DP8oWQxnRaNR/OlPf8Kf//xnnHPOOQCAO++8E08++SQefPBB3HXXXannWiwWVFdXj7ifPXv2YN26dVi9ejVWr16NW265Bc3NzSgrK8O//du/4YYbbsDs2bPHbc/999+Pv/3tb9iyZQtOOeWU1PY5c+bgn/7pn6AoSsbnRkRENBGcAFxkVFWFpmknVJa22Wx49dVX07a9/PLLqKysxIIFC/CZz3wGXV1dqcdWrlyJLVu2oL+/H//4xz8QjUYxb948vPrqq3j77bfxhS98IaP2/P73v8f555+fFsgMMplMcDgcEzhLIiKizDGYKTIulwtnn302vvOd7+DYsWPQNA2/+93v8Oabb6KjoyP1vIsvvhi///3v8eKLL+K+++7D5s2b8b73vQ/xeBwAcOGFF+LjH/84Tj/99NT8GofDgc997nP4+c9/jgcffBALFy7E2rVrsWvXrlHbc+DAASxatGjKz5uIiGg0HGYqQr/97W9x/fXXY9asWZBlGaeeeiquueYavP3226nnfOQjH0n9/7Jly7B69Wo0NDTgmWeewQc+8AEAyeGpO++8M/W8O++8E+effz5MJhPuuusu7NixA08//TQ+8YlP4B//+MeIbRFCQJKkqTlRIiKiDLBnpgjNnTsXmzZtQigUwpEjR/DWW28hkUigqalp1NfU1NSgoaEBBw4cGPHxvXv34ve//z2+853v4OWXX8Y555yDiooKfPjDH8bbb7+NQCAw4usWLFiAPXv25OS8iIiIJoLBTBFzOByoqalBf38/nn32WVx55ZWjPre3txdHjhxBTU3NCY8JIfAv//IvuO++++B0OqFpGhKJZFr64H91XR9xv9dccw3++te/YuvWrSc8pqoqwuHwRE6NiIgoYwxmxqCoGqIJdUp/FDX7hfmeffZZ/N///R9aWlrw/PPP47zzzsPChQtx3XXXAQBCoRC+9KUv4fXXX0draytefvllXH755SgvL8f73//+E/b3X//1X6isrMQVV1wBAFi7di1efPFFvPHGG/jRj36EJUuWwOv1jtiWW265BWvXrsX69evxn//5n9i+fTuam5vx2GOP4cwzzxy1J4iIiChXOGdmBCZZhtNiQiieyCpteqKcFhNMcubr2fj9ftx+++1ob29HaWkpPvjBD+K73/0uTCYTAECWZezYsQO/+c1v4PP5UFNTg/POOw+PPvooXC5X2r6OHz+Ou+++G6+99lpq2xlnnIEvfvGLuPTSS1FZWXnC4ntDWSwWPP/88/jRj36En//85/jSl74Eu92OxYsX4wtf+AKWLVuW5dUgIiLKjiSEEPluxFQKBALweDzw+/1wu91pj8ViMbS0tKCpqemEVGeWM5heY/0tiIiIxnJy30HHYDMZT/oAg4iIqBhwzgwREREVNQYzREREVNQYzBAREVFRYzCD5DorlF/8GxAR0USd1MHMYCpzJBLJc0to8G8w+DchIqLcaPcFsa29C+2+YL6bMmVO6nQdWZbh9XpT1aTtdjvrDE0zIQQikQi6urrg9XohZ7HeDhERje25PS3YuLsZMVWD1Sjj4iVzsGHx6KVvitVJHcwAQHV1NQCkAhrKD6/Xm/pbEBHR5LX7gti4uxkCQLnThmBMwcbdzVhSU446r2vc1xeTkz6YkSQJNTU1qKysTNUhoullMpnYI0NElGM9oShiqoZypw0GSYLLakZPKIqeUJTBzEwlyzJvqERENGOUO22wGmUEYwpcVjOCMQVWo4xypy3fTcu5k3oCMBER0UxV53Xh4iVzICHZSyMBuGTpnBnXKwOwZ4aIiGjG2rC4CUtqytETiqLcaZuRgQzAYIaIiGhGq/O6ZmwQM4jDTERERFTUGMwQERFRUWMwQ0REREWNwQwREREVNQYzREREVNQYzBAREVFRYzBDRERERY3BDBERERU1BjNERERU1BjMEBERUVFjMENERERFjcEMERERFTUGM0RERFTUGMwQERFRUWMwQ0REREWNwQwREREVNQYzREREVNQYzBAREVFRYzBDRERERY3BDBERERU1BjNERERU1BjMEBERUVFjMENERERFjcEMERERFTUGM0RERFTUGMwQERFRUWMwQ0REREWNwQwREREVtYIOZlRVxde//nU0NTXBZrNhzpw5+Pa3vw1d1/PdNCIiIioQxnw3YCzf+9738LOf/QwPP/wwli5dii1btuC6666Dx+PBzTffnO/mERERUQEo6GDm9ddfx5VXXolLL70UANDY2IhHHnkEW7ZsyXPLiIiIqFAU9DDTe97zHrzwwgvYv38/AGD79u149dVXcckll4z6mng8jkAgkPZDREREM1dB98x8+ctfht/vx6JFiyDLMjRNw3e/+11cffXVo77mnnvuwbe+9a1pbCURERHlU0H3zDz66KP43e9+hz/84Q94++238fDDD+MHP/gBHn744VFfc/vtt8Pv96d+jhw5Mo0tJiIioukmCSFEvhsxmvr6enzlK1/BjTfemNp211134Xe/+x327t2b0T4CgQA8Hg/8fj/cbvdUNZWIiIjypKB7ZiKRCAyG9CbKsszUbCIiIkop6Dkzl19+Ob773e9i9uzZWLp0KbZu3Yof/vCHuP766/PdNCIiIioQBT3MFAwG8Y1vfANPPPEEurq6UFtbi6uvvhrf/OY3YTabM9oHh5mIiIhmtoIOZnKBwQwREdHMVtBzZoiIiIjGw2CGiIiIihqDGSIiIipqDGaIiIioqDGYISIioqLGYIaIiIiKWkEvmkdERCefdl8QPaEoyp021Hld+W4OFQEGM0REVDCe29OCjbubEVM1WI0yLl4yBxsWN+W7WVTgOMxEREQFod0XxMbdzRAAyp02CAAbdzej3RfMd9OowDGYISKigtAT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ERFRUWMwQ0REREWNwQwREREVNQYzREREVNQYzBAREVFRYzBDRERERY3BDBERERU1BjNERERU1BjMEBERUVFjMENERERFzZjvBky1wTqagUAgzy0hIiKibLlcLkiSNOZzZnwwEwwGAQD19fV5bgkRERFly+/3w+12j/kcSQx2XcxQuq7j2LFjGUV2lL1AIID6+nocOXJk3Dcb5Q6ve/7w2ucHr3v+5Pvas2cGgMFgQF1dXb6bMeO53W5+wOQBr3v+8NrnB697/hTytecEYCIiIipqDGaIiIioqDGYoUmxWCy44447YLFY8t2Ukwqve/7w2ucHr3v+FMO1n/ETgImIiGhmY88MERERFTUGM0RERFTUGMwQERFRUWMwQ0REREWNwQxl5G9/+xsuv/xy1NbWQpIkPPnkk2mPCyFw5513ora2FjabDevWrcOuXbvy09gZ5J577sHpp58Ol8uFyspKXHXVVdi3b1/ac3jtc+/BBx/EihUrUouEnX322di4cWPqcV7z6XHPPfdAkiTccsstqW289lPjzjvvhCRJaT/V1dWpxwv9ujOYoYyEw2GsXLkSP/nJT0Z8/N5778UPf/hD/OQnP8HmzZtRXV2NCy64IFUbiyZm06ZNuPHGG/HGG2/g+eefh6qq2LBhA8LhcOo5vPa5V1dXh3//93/Hli1bsGXLFrzvfe/DlVdemfrw5jWfeps3b8YvfvELrFixIm07r/3UWbp0KTo6OlI/O3bsSD1W8NddEGUJgHjiiSdSv+u6Lqqrq8W///u/p7bFYjHh8XjEz372szy0cObq6uoSAMSmTZuEELz206mkpET88pe/5DWfBsFgUMyfP188//zz4txzzxU333yzEILv96l0xx13iJUrV474WDFcd/bM0KS1tLSgs7MTGzZsSG2zWCw499xz8dprr+WxZTOP3+8HAJSWlgLgtZ8Omqbhj3/8I8LhMM4++2xe82lw44034tJLL8X555+ftp3XfmodOHAAtbW1aGpqwkc/+lE0NzcDKI7rPuMLTdLU6+zsBABUVVWlba+qqsLhw4fz0aQZSQiB2267De95z3uwbNkyALz2U2nHjh04++yzEYvF4HQ68cQTT2DJkiWpD29e86nxxz/+EW+//TY2b958wmN8v0+dM888E7/5zW+wYMECHD9+HHfddRfWrFmDXbt2FcV1ZzBDOTO8RLsQYtyy7ZS5z3/+83jnnXfw6quvnvAYr33uLVy4ENu2bYPP58Of/vQnfPKTn8SmTZtSj/Oa596RI0dw880347nnnoPVah31ebz2uXfxxRen/n/58uU4++yzMXfuXDz88MM466yzABT2decwE03a4Iz3weh9UFdX1wmRPE3MTTfdhKeeegovvfQS6urqUtt57aeO2WzGvHnzsHr1atxzzz1YuXIlHnjgAV7zKfSPf/wDXV1dOO2002A0GmE0GrFp0yb8+Mc/htFoTF1fXvup53A4sHz5chw4cKAo3vMMZmjSmpqaUF1djeeffz61TVEUbNq0CWvWrMljy4qfEAKf//zn8fjjj+PFF19EU1NT2uO89tNHCIF4PM5rPoXWr1+PHTt2YNu2bamf1atX42Mf+xi2bduGOXPm8NpPk3g8jj179qCmpqY43vP5m3tMxSQYDIqtW7eKrVu3CgDihz/8odi6das4fPiwEEKIf//3fxcej0c8/vjjYseOHeLqq68WNTU1IhAI5Lnlxe1zn/uc8Hg84uWXXxYdHR2pn0gkknoOr33u3X777eJvf/ubaGlpEe+884746le/KgwGg3juueeEELzm02loNpMQvPZT5Ytf/KJ4+eWXRXNzs3jjjTfEZZddJlwul2htbRVCFP51ZzBDGXnppZcEgBN+PvnJTwohkql7d9xxh6iurhYWi0Wcc845YseOHflt9Aww0jUHIB566KHUc3jtc+/6668XDQ0Nwmw2i4qKCrF+/fpUICMEr/l0Gh7M8NpPjY985COipqZGmEwmUVtbKz7wgQ+IXbt2pR4v9OsuCSFEfvqEiIiIiCaPc2aIiIioqDGYISIioqLGYIaIiIiKGoMZIiIiKmoMZoiIiKioMZghIiKiosZghoiIiIoagxkiKlrXXnstrrrqqoyeu27dOtxyyy1jPqexsRH3339/6ndJkvDkk08CAFpbWyFJErZt2zahthLR1GEwQ0Q5lUnQkIvXTIXNmzfjX/7lX/LdDCLKkjHfDSAiKhQVFRX5bgIRTQB7ZogoZ6699lps2rQJDzzwACRJgiRJaG1txaZNm3DGGWfAYrGgpqYGX/nKV6Cq6piv0TQNn/rUp9DU1ASbzYaFCxfigQcemFT7VFXF5z//eXi9XpSVleHrX/86hlZ0GT7MRETFgcEMEeXMAw88gLPPPhuf+cxn0NHRgY6ODphMJlxyySU4/fTTsX37djz44IP41a9+hbvuumvU19TX10PXddTV1eGxxx7D7t278c1vfhNf/epX8dhjj024fQ8//DCMRiPefPNN/PjHP8aPfvQj/PKXv8zV6RNRnnCYiYhyxuPxwGw2w263o7q6GgDwta99DfX19fjJT34CSZKwaNEiHDt2DF/+8pfxzW9+c8TXAIAsy/jWt76V+r2pqQmvvfYaHnvsMXz4wx+eUPvq6+vxox/9CJIkYeHChdixYwd+9KMf4TOf+czkTpyI8oo9M0Q0pfbs2YOzzz4bkiSltq1duxahUAjt7e1jvvZnP/sZVq9ejYqKCjidTvzXf/0X2traJtyWs846K60dZ599Ng4cOABN0ya8TyLKPwYzRDSlhBBpAcTgNgAnbB/qsccew6233orrr78ezz33HLZt24brrrsOiqJMaXuJqPhwmImIcspsNqf1dCxZsgR/+tOf0oKa1157DS6XC7NmzRrxNQDwyiuvYM2aNbjhhhtS2w4dOjSptr3xxhsn/D5//nzIsjyp/RJRfrFnhohyqrGxEW+++SZaW1vR09ODG264AUeOHMFNN92EvXv34s9//jPuuOMO3HbbbTAYDCO+Rtd1zJs3D1u2bMGzzz6L/fv34xvf+AY2b948qbYdOXIEt912G/bt24dHHnkE//Ef/4Gbb745F6dNRHnEYIaIcupLX/oSZFnGkiVLUFFRgUQigf/93//FW2+9hZUrV+Jf//Vf8alPfQpf//rXR31NW1sb/vVf/xUf+MAH8JGPfARnnnkment703ppJuITn/gEotEozjjjDNx444246aabuEge0QwgiaGLLBAREREVGfbMEBERUVFjMENERa+trQ1Op3PUn8mkcxNR4eMwExEVPVVV0draOurjjY2NMBqZvEk0UzGYISIioqLGYSYiIiIqagxmiIiIqKgxmCEiIqKixmCGiIiIihqDGSIiIipqDGaIiIioqDGYISIioqLGYIaIiIiK2v8HlR654xbQ/H8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "ax = lineplotCI(x_data = data['total_bill']\n",
+ " , y_data = fitted_values\n",
+ " , sorted_x = CI_df['x_data']\n",
+ " , low_CI = CI_df['low_CI']\n",
+ " , upper_CI = CI_df['upper_CI']\n",
+ " , x_label = 'total_bill'\n",
+ " , y_label = 'tip'\n",
+ " , title = 'Line of Best Fit for total_bill vs tip')\n",
+ "\n",
+ "scatterplot(x_data = data['total_bill']\n",
+ " , y_data = data['tip']\n",
+ " , x_label = 'total_bill'\n",
+ " , y_label = 'tip'\n",
+ " , title = 'Line of Best Fit for total_bill vs tip'\n",
+ " , ax=ax)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "c2e72f50",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " total_bill \n",
+ " tip \n",
+ " sex \n",
+ " smoker \n",
+ " day \n",
+ " time \n",
+ " size \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 16.99 \n",
+ " 1.01 \n",
+ " Female \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 10.34 \n",
+ " 1.66 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 3 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 21.01 \n",
+ " 3.50 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 3 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 23.68 \n",
+ " 3.31 \n",
+ " Male \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 24.59 \n",
+ " 3.61 \n",
+ " Female \n",
+ " No \n",
+ " Sun \n",
+ " Dinner \n",
+ " 4 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 239 \n",
+ " 29.03 \n",
+ " 5.92 \n",
+ " Male \n",
+ " No \n",
+ " Sat \n",
+ " Dinner \n",
+ " 3 \n",
+ " \n",
+ " \n",
+ " 240 \n",
+ " 27.18 \n",
+ " 2.00 \n",
+ " Female \n",
+ " Yes \n",
+ " Sat \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 241 \n",
+ " 22.67 \n",
+ " 2.00 \n",
+ " Male \n",
+ " Yes \n",
+ " Sat \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 242 \n",
+ " 17.82 \n",
+ " 1.75 \n",
+ " Male \n",
+ " No \n",
+ " Sat \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ " 243 \n",
+ " 18.78 \n",
+ " 3.00 \n",
+ " Female \n",
+ " No \n",
+ " Thur \n",
+ " Dinner \n",
+ " 2 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
244 rows × 7 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " total_bill tip sex smoker day time size\n",
+ "0 16.99 1.01 Female No Sun Dinner 2\n",
+ "1 10.34 1.66 Male No Sun Dinner 3\n",
+ "2 21.01 3.50 Male No Sun Dinner 3\n",
+ "3 23.68 3.31 Male No Sun Dinner 2\n",
+ "4 24.59 3.61 Female No Sun Dinner 4\n",
+ ".. ... ... ... ... ... ... ...\n",
+ "239 29.03 5.92 Male No Sat Dinner 3\n",
+ "240 27.18 2.00 Female Yes Sat Dinner 2\n",
+ "241 22.67 2.00 Male Yes Sat Dinner 2\n",
+ "242 17.82 1.75 Male No Sat Dinner 2\n",
+ "243 18.78 3.00 Female No Thur Dinner 2\n",
+ "\n",
+ "[244 rows x 7 columns]"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "d35578b5-b9d5-4a2b-99a7-fc596e498865",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1 1.66\n",
+ "2 3.50\n",
+ "3 3.31\n",
+ "5 4.71\n",
+ "6 2.00\n",
+ " ... \n",
+ "236 1.00\n",
+ "237 1.17\n",
+ "239 5.92\n",
+ "241 2.00\n",
+ "242 1.75\n",
+ "Name: tip, Length: 157, dtype: float64"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.loc[data['sex'] == 'Male', 'tip']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "id": "59a646d6-59c6-444c-bddc-32b9b232b9f8",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#定义画Feature vs tip的函数\n",
+ "def plot_feature_vs_tip(feature): \n",
+ " plt.boxplot([data.loc[data[feature] == i,'tip'] for i in set(data[feature])],\n",
+ " labels=[i for i in set(data[feature])],\n",
+ " patch_artist=True,\n",
+ " boxprops=dict(color='blue')\n",
+ " )\n",
+ " plt.xlabel(feature)\n",
+ " plt.ylabel(\"tip\")\n",
+ " plt.title(feature+\" for tip\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "id": "2ac65625-6574-4d6a-8d10-5e40a1584a05",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqrElEQVR4nO3df3TU1Z3/8ddkIL+ACQINJBpMNNVgE0QQfwARIghW4BBj3FOQNZjdVltAEPUIlF/ZFrJIUFx1WaQVbTmipzhizbpQQcEIUSGAKxAUMFnoEuSXTUKAQDL3+4ffzDolCQlkMnPD83HOHDP3cz933pPjJ/Pifu7nMw5jjBEAAIClQgJdAAAAwOUgzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMALDCiy++qMTERIWGhsrhcOhvf/ub315ry5YtmjdvXr2vMWTIEA0ZMsRvrw2g+Rx8nQGAYLdz507dcsst+ud//mdlZWWpXbt26t+/v5xOp19eLy8vT08//bRKSkoUHx/vs23Pnj2SpJtuuskvrw2g+doFugAAuJjdu3dLkn7+85/rtttua5ExT58+rcjIyGbvR4gBgg+nmQA06NixY/rFL36huLg4hYWF6Uc/+pEGDhyo9evX+/Rbv369hg4dKpfLpcjISA0cOFAbNmzwbt+3b59cLpcefPBBn/0+/PBDOZ1OzZ49u8EahgwZovHjx0uSbr/9djkcDk2YMMG7/dVXX9XNN9+s8PBwdenSRffff7+Ki4t9xpgwYYI6duyoL7/8UsOHD1enTp00dOjQel9v3rx5evrppyVJCQkJcjgccjgc2rhxo7eeH55mKi0tlcPh0LPPPqv58+erZ8+eCg8P16233urzOwDgRwYAGjBixAjzox/9yLzyyitm48aNZs2aNWbOnDnmzTff9Pb54x//aBwOh0lPTzdut9u89957ZtSoUcbpdJr169d7+7355ptGknnhhReMMcaUlZWZ7t27m8GDB5uampoGa9i9e7eZNWuWkWRWrFhhCgsLzf79+40xxixYsMBIMmPHjjX/+Z//af7whz+Y6667zkRFRZmvv/7aO0ZWVpZp3769iY+PN7m5uWbDhg1m3bp19b7eoUOHzOTJk40k43a7TWFhoSksLDTl5eXGGGMGDx5sBg8e7O1fUlJiJJm4uDgzaNAg8/bbb5s//elPpn///qZ9+/Zmy5Ytzf/FA2gWwgyABnXs2NFMnTq1we1VVVWmS5cuZvTo0T7ttbW15uabbza33XabT/svf/lLExoaagoLC83dd99toqOjzeHDhy9ax4oVK4wks3XrVm/bd999ZyIiIsx9993n0/fgwYMmLCzMjBs3ztuWlZVlJJlXX331oq9ljDGLFi0ykkxJSckF2xoKM7GxsebMmTPe9oqKCtOlSxczbNiwJr0mgEvHmhkADbrtttv02muvqWvXrho2bJj69eun9u3be7dv2bJFJ0+eVFZWlmpqanz2vffee/Xss8+qqqpKHTp0kCQ9//zz+vTTT5WWlqZz585p7dq1iomJuaTaCgsLdebMGZ9TTpIUFxenu+++u95TPA888MAlvVZTZGRkKDw83Pu8U6dOGj16tFatWqXa2lq/LVYGwJoZAI146623lJWVpd/97ne688471aVLFz388MM6cuSIJOnbb7+VJGVmZqp9+/Y+j4ULF8oYo5MnT3rHCwsL07hx43T27Fn16dNH99xzzyXXduLECUmqNwzFxsZ6t9eJjIyUy+W65Ne7mB49etTbdu7cOZ06dcpvrwuAq5kANKJbt25asmSJlixZooMHD+rPf/6zpk+frqNHj2rt2rXq1q2bpO/vAXPHHXfUO0b37t29P+/atUtz5sxR//79tXXrVj333HOaNm3aJdXWtWtXSVJZWdkF2w4fPuytrY7D4bik12mquoD3922hoaHq2LGjX18buNIxMwOgSXr27KlJkybpnnvu0fbt2yVJAwcOVOfOnbVnzx7deuut9T5CQ0MlSVVVVXrwwQcVHx+vjz76SJMmTdL06dP12WefXVI9d955pyIiIrRy5Uqf9r/+9a/68MMPG7xaqSnCwsIkSWfOnGnyPm63W2fPnvU+r6ys1HvvvafU1FROMQF+xswMgHqVl5crLS1N48aNU1JSkjp16qStW7dq7dq1ysjIkCR17NhRL774orKysnTy5EllZmYqOjpax44d0xdffKFjx45p6dKlkqTHHntMBw8e1Oeff64OHTpo8eLFKiws1M9+9jPt2LFDnTt3blZ9nTt31uzZszVz5kw9/PDDGjt2rE6cOKGcnByFh4dr7ty5l/zeU1JSJEkvvPCCsrKy1L59e914443q1KlTg/s4nU7dc889mjZtmjwe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v379FB4eruuuu045OTmqqanx7udwOLRs2TKNGjVKkZGR6tWrlwoLC7V//34NGTJEHTp00J133ulzfB84cEBjxoxR9+7d1bFjR/Xv31/r169vtL7y8nL94he/UHR0tFwul+6++2598cUXfvt9wP8IMwhqjzzyiFasWOF9/uqrryo7O9unT1VVlaZNm6atW7dqw4YNCgkJ0f333y+Px1PvmGVlZRo8eLD69Omjbdu2ae3atfr222/1D//wD359L8CVbN26dRo/frwef/xx7dmzR8uWLdNrr72m+fPn+/T7zW9+o4cfflg7d+5UUlKSxo0bp0cffVQzZszQtm3bJEmTJk3y9j916pTuu+8+rV+/Xjt27NCIESM0evRoHTx4sN46jDEaOXKkjhw5ovfff19FRUXq27evhg4dqpMnT/rvFwD/MkAQysrKMmPGjDHHjh0zYWFhpqSkxJSWlprw8HBz7NgxM2bMGJOVlVXvvkePHjWSzJdffmmMMaakpMRIMjt27DDGGDN79mwzfPhwn30OHTpkJJmvvvrKn28LaPOysrKM0+k0HTp08D4yMzNNamqqWbBggU/fP/7xjyYmJsb7XJKZNWuW93lhYaGRZH7/+99721atWmXCw8MbreGmm24yL774ovf5tddea55//nljjDEbNmwwLpfLnD171mef66+/3ixbtqzZ7xfBoc1/azbs1q1bN40cOVKvv/66919U3bp18+lz4MABzZ49W59++qmOHz/unZE5ePCgkpOTLxizqKhIH330kTp27HjBtgMHDuiGG27wz5sBrhBpaWlaunSp93mHDh2UmJiorVu3+szE1NbW6uzZszp9+rQiIyMlSb179/Zu7969uyQpJSXFp+3s2bOqqKiQy+VSVVWVcnJylJ+fr8OHD6umpkZnzpxpcGamqKhIp06dUteuXX3az5w5c9HT0whehBkEvezsbO+08ssvv3zB9tGjRysuLk7Lly9XbGysPB6PkpOTde7cuXrH83g8Gj16tBYuXHjBtpiYmJYtHrgC1YWXH/J4PMrJyVFGRsYF/cPDw70/t2/f3vuzw+FosK3uHy1PP/201q1bp7y8PCUmJioiIkKZmZmNHv8xMTHauHHjBds6d+7ctDeIoEOYQdC79957vX+YRowY4bPtxIkTKi4u1rJly5SamipJ+uSTTxodr2/fvnr77bcVHx+vdu04BIDW0LdvX3311VcXhJzLVVBQoAkTJuj++++X9P0amtLS0kbrOHLkiNq1a6f4+PgWrQWBwwJgBD2n06ni4mIVFxfL6XT6bLvqqqvUtWtXvfLKK9q/f78+/PBDTZs2rdHxJk6cqJMnT2rs2LH6/PPP9c033+gvf/mLsrOzVVtb68+3Alyx5syZoz/84Q+aN2+edu/ereLiYr311luaNWvWZY2bmJgot9utnTt36osvvtC4ceMaXPwvScOGDdOdd96p9PR0rVu3TqWlpdqyZYtmzZrlXWAM+xBmYAWXyyWXy3VBe0hIiN58800VFRUpOTlZTzzxhBYtWtToWLGxsdq8ebNqa2s1YsQIJScna8qUKYqKilJICIcE4A8jRoxQfn6+PvjgA/Xv31933HGHnnvuOV177bWXNe7zzz+vq666SgMGDNDo0aM1YsQI9e3bt8H+DodD77//vu666y5lZ2frhhtu0M9+9jOVlpZ61+jAPg5jjAl0EQAAAJeKf4YCAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwCC0urVq5WSkqKIiAh17dpVw4YNU1VVlSRpxYoV6tWrl8LDw5WUlKR///d/9+6XnZ2t3r17q7q6WpJ0/vx59evXTw899FBA3gcA/yPMAAg6ZWVlGjt2rLKzs1VcXKyNGzcqIyNDxhgtX75cv/71rzV//nwVFxdrwYIFmj17tl5//XVJ0r/927+pqqpK06dPlyTNnj1bx48f9wk8ANoWvmgSQNDZvn27+vXrp9LS0gu+Vblnz55auHChxo4d62377W9/q/fff19btmyRJBUWFmrw4MGaPn26cnNztWHDBt11112t+h4AtB7CDICgU1tbqxEjRujzzz/XiBEjNHz4cGVmZqqmpkbR0dGKiIhQSMj/TSzX1NQoKipK3377rbdt5syZys3N1TPPPKN//dd/DcTbANBK2gW6AAD4e06nUx988IG2bNmiv/zlL3rxxRf161//Wu+9954kafny5br99tsv2KeOx+PR5s2b5XQ6tW/fvlatHUDrY80MgKDkcDg0cOBA5eTkaMeOHQoNDdXmzZt19dVX65tvvlFiYqLPIyEhwbvvokWLVFxcrE2bNmndunVasWJFAN8JAH9jZgZA0Pnss8+0YcMGDR8+XNHR0frss8907Ngx9erVS/PmzdPjjz8ul8uln/70p6qurta2bdv03Xffadq0adq5c6fmzJmj1atXa+DAgXrhhRc0ZcoUDR48WNddd12g3xoAP2DNDICgU1xcrCeeeELbt29XRUWFrr32Wk2ePFmTJk2SJL3xxhtatGiR9uzZow4dOiglJUVTp07VT3/6U/Xr10+DBg3SsmXLvONlZGTo22+/1ccff+xzOgpA20CYAQAAVmPNDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABW+3+PafFcF8bqngAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_feature_vs_tip(\"sex\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "id": "02f2d1da",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAtjklEQVR4nO3de1xVdb7/8fdmE4gIqBCKgcJIhAV5q6kgEkLzjOkjImpS86jUWGesk2ajaZZaCdVop46OTjqlnnG0GkRqqCnNS5KSI1iTNHjJJHXEUCvAa8Jevz/6uac94gUF9v5uX8/HYz10f9d3rfVh13a9+a7vWttmWZYlAAAAQ/m4uwAAAICLQZgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAHQIhYuXCibzaaSkhK3HP+HH37QQw89pIiICNntdvXo0aNZj7dkyRK9/PLLDa6z2WyaOnVqsx4fuJT4ursAAGgJc+fO1auvvqpZs2apd+/eatOmTbMeb8mSJSorK9OYMWNOW1dcXKzIyMhmPT5wKSHMAPAKlmXp+PHjCggIaHB9WVmZAgIC9PDDDzfZMY8dO3bG453NjTfe2GQ1AOAyE+DVDhw4oFGjRikqKkr+/v66/PLLlZycrA8//NDZJzU1VQkJCSouLlZSUpICAgIUHR2tBQsWSJLeffdd9erVS61bt1ZiYqLef//9047z8ccfKz09XUFBQWrdurWSkpL07rvvnrO+yspK9e7dW1deeaV27NghSaqpqdHjjz+umJgY+fn56YorrtCYMWN05MgRl21tNpsefvhh/f73v1e3bt3k7++vRYsWNXgcm82mP/zhDzp27JhsNptsNpsWLlwoSTp+/LgmTpzocrzRo0fr+++/d9lHdHS0Bg4cqPz8fPXs2VOtWrXStGnTGjxeamqq3n33XX399dfO49lsNpd6fnqZ6dQluJUrV2rkyJFq3769AgMDNWjQIH311VfnfB+BSx0jM4AXGzZsmDZv3qzp06crLi5O33//vTZv3qxDhw659Nu/f79Gjhyp8ePHKzIyUrNmzVJ2drb27NmjvLw8TZo0SSEhIXrmmWeUkZGhr776Sp06dZIkffTRR+rXr5+uvfZavfbaa/L399ecOXM0aNAgLV26VL/85S8brK2srEwDBgxQZGSkiouLFRYWpqNHj6pPnz7au3evJk2apGuvvVZffPGFnn76aW3ZskUffvihSygoKChQUVGRnn76aXXs2FHh4eENHqu4uFjPPvus1qxZo9WrV0uSunbtKsuylJGRoVWrVmnixIlKSUnR559/rilTpqi4uFjFxcXy9/d37mfz5s0qLy/X5MmTFRMTo8DAwAaPN2fOHI0aNUo7d+7U8uXLz/u/1/33369+/fppyZIl2rNnjyZPnqzU1FR9/vnnatu27XnvB7jkWAC8Vps2bawxY8actU+fPn0sSVZJSYmz7dChQ5bdbrcCAgKsf/7zn872zz77zJJk/e///q+z7cYbb7TCw8Ot2tpaZ1tdXZ2VkJBgRUZGWg6Hw7Isy1qwYIElydq0aZO1cuVKKzg42MrKyrKOHTvm3C43N9fy8fGxNm3a5FJjXl6eJcl67733nG2SrJCQEOvbb789r/di+PDhVmBgoEvb+++/b0myXnzxRZf2N99805JkzZs3z9nWpUsXy263W9u2bTuv491+++1Wly5dGlwnyZoyZYrz9an35s4773Tpt379ekuS9dxzz53XMYFLFZeZAC/285//XAsXLtRzzz2nTz75RCdPnmywX0REhHr37u183b59e4WHh6tHjx7OERhJ6tatmyTp66+/liQdOXJEGzduVFZWlsuEWrvdrmHDhmnv3r3atm2by7EWLVqkAQMG6IEHHtBbb72lVq1aOdcVFhYqISFBPXr0UF1dnXPp37+/bDab1q5d67KvW2+9Ve3atbuwN0dyjtKMGDHCpf3uu+9WYGCgVq1a5dJ+7bXXKi4u7oKPdy5Dhw51eZ2UlKQuXbpozZo1zXZMwBsQZgAv9uabb2r48OH6wx/+oJtuuknt27fXf/7nf2r//v0u/dq3b3/atn5+fqe1+/n5Sfpxnokkfffdd7IsSxEREadtfyoE/fslrTfeeEMBAQF64IEHXC4ZSdI333yjzz//XJdddpnLEhQUJMuydPDgQZf+DR23MQ4dOiRfX19dfvnlLu02m00dO3Y8rfaLPd65dOzYscG2f68DgCvmzABeLCwsTC+//LJefvll7d69W++8846eeOIJVVVVNTiRt7HatWsnHx8fVVZWnrZu3759zhp+6k9/+pOeeuop9enTRytWrHB53ktYWJgCAgL0+uuvn/Hn+al/D0ONFRoaqrq6Oh04cMAl0FiWpf37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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_feature_vs_tip(\"smoker\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "id": "31098a48-d053-4666-bf01-4ed59fb94601",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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vXq1zjjjjOPebl5enkpKSvTOO+/o4osv1nnnnafa2tpjrnPbbbdp4sSJmj17tqZOnar29nb9/ve/10UXXXTcdQD4bi7Lsiy7iwDQtzzzzDOaPXu26urqNHLkSLvLOWFNTU3KyMjQokWLNHfuXLvLAfocbgAGEDHr169XY2OjfvGLX2jKlCm9IsgAsB9hBkDEXHPNNdq+fbtyc3P1wgsv2F0OgF6Cy0wAAMBo3AAMAACMRpgBAABGI8wAAACj9fobgAOBgLZt26bExMSwD2UOAAB6hmVZam1t1dChQxUVdey+l14fZrZt26a0tDS7ywAAAMdh69atGjZs2DGX6fVhJjExUdLX34xwflouAADoOT6fT2lpacHz+LH0+jDTcWkpKSmJMAMAgGG6c4sINwADAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKP1+hGAAQAwld/vV01NjZqbm5Wamqrc3Fy53W67y3IcW3tmPvroI1111VUaOnSoXC6XqqqqOs23LEsPP/ywhg4dqri4OOXl5enPf/6zPcUCABBBlZWV8ng8ys/P19SpU5Wfny+Px6PKykq7S3McW8PMvn37NGrUKC1durTL+QsXLtQTTzyhpUuXas2aNRoyZIgmTpyo1tbWCFcKAEDkVFZWqqioSNnZ2fJ6vWptbZXX61V2draKiooINN/isizLsrsI6esPklq+fLkKCgokfd0rM3ToUN1555265557JEltbW069dRT9fjjj2vmzJnd2q7P51NycrJaWlr4oEkAgOP5/X55PB5lZ2erqqpKUVF/73cIBAIqKChQXV2dNm3a1KsvOYVy/nbsDcCNjY3avn27Lr/88uC02NhYTZgwQatXrz7qem1tbfL5fJ1eAACYoqamRk1NTbr33ns7BRlJioqKUklJiRobG1VTU2NThc7j2DCzfft2SdKpp57aafqpp54anNeV0tJSJScnB19paWlhrRMAgJ7U3NwsScrKyupyfsf0juXg4DDTweVydXpvWdYR076ppKRELS0twdfWrVvDXSIAAD0mNTVVklRXV9fl/I7pHcvBwWFmyJAhknREL8yOHTuO6K35ptjYWCUlJXV6AQBgitzcXKWnp2vBggUKBAKd5gUCAZWWliojI0O5ubk2Veg8jg0zGRkZGjJkiN5///3g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3DNTU1Oj1atX66yzzgpOO+uss/TMM8/ooosu6tHiAAAAvkvIPTPDhw/X4cOHj5je3t6u0047rUeKAgAA6K6Qw8zChQt1++23a+3ateoYb2/t2rW64447tHjx4h4vEAAA4FhCvsw0ffp07d+/XxdccIGio79evb29XdHR0SouLlZxcXFw2d27d/dcpQAAAF0IOcw8+eSTYSgDAADg+IQcZm666aZw1AEAAHBcuhVmfD5f8EOefD7fMZftSx/mCAAA7NetMHPyySerublZgwcP1kknnSSXy3XEMpZlyeVyye/393iRAAAAR9OtMPPBBx9o4MCBkqSysjKlpaUd8dkvgUBAW7Zs6fkKAQAAjqFbYWbChAnB/xcXFwd7ab5p165duuyyy7inBgAARFTI48x0XE76tr1796p///49UhQAAEB3dftpprvuukuS5HK59MADDyg+Pj44z+/36z//8z81evToHi8QAADgWLodZtavXy/p656Zzz//XDExMcF5MTExGjVqlObOndvzFQIAABxDt8PMypUrJUk333yznnrqKR7BBgAAjhDyoHllZWXhqAMAAOC4hBxmAITP/v371dDQEPJ6Bw4cUFNTk9LT0xUXFxfy+pmZmZ3ugwMAkxBmAAdpaGjQ2LFjI95ubW2txowZE/F2gb6EP1bChzADOEhmZqZqa2tDXq++vl7Tpk1TeXm5RowYcVztAggv/lgJH8IM4CDx8fEndNAZMWJErz9oAabij5XwIcwAABAB/LESPiGPAAwAAOAkhBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGI0PmgQAm+zfv18NDQ0hr3fgwAE1NTUpPT1dcXFxIa+fmZmp+Pj4kNcDnIowAwA2aWho0NixYyPebm1tLZ++jF6FMAMANsnMzFRtbW3I69XX12vatGkqLy/XiBEjjqtdoDchzACATeLj40+oh2TEiBH0sADiBmAAAGA4wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMZlSYKS0tlcvl0p133ml3KQAAwCGMCTNr1qzRr371K51zzjl2lwIAABzEiDCzd+9e/ehHP9JLL72kk08+2e5yAACAg0TbXUB3zJo1S5MmTdJll12mRx555JjLtrW1qa2tLfje5/OFu7xu27JF2rkzMm3V13f+NxIGDZKGD49cewAASAaEmTfeeEPr1q3TmjVrurV8aWmp5s2bF+aqQrdli3RWpqWDB1wRbXfatMi11T/O0hcNLgINACCiHB1mtm7dqjvuuEN/+MMf1L9//26tU1JSorvuuiv43ufzKS0tLVwldtvOndLBAy6lTF6vfil7w96e1X5Q7S0vKTp5l1zRNWFv7/CuBO2qPlc7d9I7AwCILEeHmdraWu3YsUNjx44NTvP7/froo4+0dOlStbW1ye12d1onNjZWsbGxkS612/ql7FXskAhd+hqWKunQ/78AAOidHB1mLr30Un3++eedpt18883KzMzUPffcc0SQAQAAfY+jw0xiYqKysrI6TRswYIBSUlKOmA4AAPomIx7NBgAAOBpH98x0ZdWqVXaXAAAAHISeGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABGI8wAAACjEWYAAIDRou0uAAAA02zZIu3cGZm26us7/xsJgwZJw4dHrr0TRZgBwoSDXd/C/u47tmyRzsq0dPCAK6LtTpsWubb6x1n6osFlzD4nzABhwMGub2F/9y07d0oHD7iUMnm9+qXsDXt7VvtBtbe8pOjkXXJF14S9vcO7ErSr+lzt3GlOgCXMAGHAwa5vYX/3Tf1S9ip2iC8yjQ1LlXTo/1/4NsIMEEYc7PoW9jdgD55mAgAARiPMAAAAoxFmAACA0QgzAADAaNwAHCGu9v06d8hGDYrZrH6ufXaX0+MOxwxQ6pBEudrPlBRvdzkAgD6EMBMh/fdu1LqZE+wuI3yGSpop1e/9UNJom4sBAPQlhJkIOZhwpsa8+KEGXbVe/VJ6Yc/MrgHa+c65+tcrz7S7FABAH0OYiRArOl7rt4/WkEOtirUiNA5FBLUdStL27aNl8RMFAIgwbgAGAABG4+9oADhB3OAP2IswAwAniBv8AXsRZgDgBHGDP2AvwgwAnCBu8AfsxQ3AAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABG40E7AABCwIjPzkOYAQAgBIz47DyEGQAAQsCIz85DmAEAIASM+Ow83AAMAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEM+hgpwByu9v06d8hGDYrZrH6uXvipujEDlDokUa72MyXF210OgD6OMAOEQf+9G7Vu5gS7ywifoZJmSvV7P5Q02uZiAPR1hBkgDA4mnKkxL36oQVetV7+UXtgzs2uAdr5zrv71yjPtLgUACDNAOFjR8Vq/fbSGHGpVrOWzu5we13YoSdu3j5bFEQSAA3ADMAAAMBphBgAAGI0wAwAAjEaYAQAARnN0mCktLdV5552nxMREDR48WAUFBfriiy/sLgsAADiIo8PMhx9+qFmzZumTTz7R+++/r/b2dl1++eXat6/3PeoKAACOj6MfrHzvvfc6vS8rK9PgwYNVW1urSy65xKaqTszhXQkRacdqP6j2lr8oOvl0uaL7h729SH1dAAB8m6PDzLe1tLRIkgYOHGhzJaEbNEjqH2dpV/W5EWpxnaTLJdVKGhORFvvHWRo0yBWRtgAA6GBMmLEsS3fddZcuvvhiZWVlHXW5trY2tbW1Bd/7fM4YsGz4cOmLBpd27oxMe/X10rRpUnm5NGJEZNocNMil4cMj05Yp6IkDei9+v53DmDBz22236bPPPtOf/vSnYy5XWlqqefPmRaiq0Awfroif7EeMkMZEpmMG30BPXN/Eya1v4PfbeYwIM7fffrvefvttffTRRxo2bNgxly0pKdFdd90VfO/z+ZSWlhbuEoFO6InrWzi59S38fjuPo8OMZVm6/fbbtXz5cq1atUoZGRnfuU5sbKxiY2MjUB1wbPTE9R2c3Poefr+dxdFhZtasWXrttdf0u9/9TomJidq+fbskKTk5WXFxcTZXBwB/x8kNsI+jx5l5/vnn1dLSory8PKWmpgZfb775pt2lAQAAh3B0z4xlWXaXAAAAHM7RPTMAAADfhTADAACMRpgBAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0aLtLgDA3+3fv18NDQ0hr1dfX9/p31BlZmYqPj7+uNYFALsRZgAHaWho0NixY497/WnTph3XerW1tRozZsxxtwsAdiLMAA6SmZmp2trakNc7cOCAmpqalJ6erri4uONqFwBMRZgBHCQ+Pv64e0guuuiiHq4GAMzADcAAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIzG00wOxyBqQO/F73ffwv4OH5dlWZbdRYSTz+dTcnKyWlpalJSUZHc5IVu3bt0JDaJ2vBhEDQg/fr/7FvZ3aEI5f9Mz43AMogb0Xvx+9y3s7/ChZwYAADhOKOdvbgAGAABGI8wAAACjEWYAAIDRCDMAAMBohBkAAGA0wgwAADAaYQYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYLRouwsIt44PBff5fDZXAgAAuqvjvN1xHj+WXh9mWltbJUlpaWk2VwIAAELV2tqq5OTkYy7jsroTeQwWCAS0bds2JSYmyuVy2V1OxPh8PqWlpWnr1q1KSkqyuxyEGfu7b2F/9y19dX9blqXW1lYNHTpUUVHHvium1/fMREVFadiwYXaXYZukpKQ+9cPf17G/+xb2d9/SF/f3d/XIdOAGYAAAYDTCDAAAMBphppeKjY3VQw89pNjYWLtLQQSwv/sW9nffwv7+br3+BmAAANC70TMDAACMRpgBAABGI8wAAACjEWYAgzQ1NcnlcmnDhg12lwIHcrlcqqqqsrsMIOIIM4bZsWOHZs6cqeHDhys2NlZDhgzRFVdcIa/Xa3dpOEEul+uYr+nTp9tdIiJs+vTpXf4sbN68ucvlm5ub9cMf/jDCVeJEnOgx/ZVXXtFJJ50U3iIN0OtHAO5trr32Wh0+fFjLli3T9773Pf3P//yPVqxYod27d9tdGk5Qc3Nz8P9vvvmmHnzwQX3xxRfBaXFxcdqzZ09Y2j506JBiYmLCsm2cmH/4h39QWVlZp2mnnHJKp/cd+2/IkCGRLA09gGN6D7FgjD179liSrFWrVnU5v7Gx0ZJkrV+//oh1Vq5caVmWZa1cudKSZP3xj3+0xo4da8XFxVkXXnih1dDQEIGvAN1VVlZmJScnHzG9Yx+/9dZbVl5enhUXF2edc8451urVq4PLPPTQQ9aoUaM6rffLX/7SOv3004Pvb7rpJmvKlCnWggULrNTU1E7z4Bwd++nbJkyYYM2aNcv62c9+ZqWkpFiXXHKJZVmWJclavnx5ZIvEcfuuY7plWdaSJUusrKwsKz4+3ho2bJj105/+1GptbbUs6+/H82++HnrooQhV7yxcZjJIQkKCEhISVFVVpba2thPa1n333aclS5Zo7dq1io6OVnFxcQ9ViUi47777NHfuXG3YsEFnnnmmbrjhBrW3t4e0jRUrVqi+vl7vv/++qqurw1QpwmXZsmWKjo7Wxx9/rBdffNHucnAcunNMj4qK0tNPP626ujotW7ZMH3zwgf7lX/5FkpSTk6Mnn3xSSUlJam5uVnNzs+bOnRvJL8ExuMxkkOjoaL3yyiu65ZZb9MILL2jMmDGaMGGC/vEf/1HnnHNOSNt69NFHNWHCBEnSz3/+c02aNEkHDx5U//79w1E6etjcuXM1adIkSdK8efM0cuRIbd68WZmZmd3exoABA/TrX/+ay0sOV11drYSEhOD7jntiPB6PFi5caFdZ6AHdOabfeeedweUzMjI0f/58/fSnP9Vzzz2nmJgYJScny+Vy9flLjPTMGObaa6/Vtm3b9Pbbb+uKK67QqlWrNGbMGL3yyishbeeb4Sc1NVXS1zeiwQw9sf+ys7MJMgbIz8/Xhg0bgq+nn35akjRu3DibK0NP+K5j+sqVKzVx4kSddtppSkxM1I033qhdu3Zp37599hbuMIQZA/Xv318TJ07Ugw8+qNWrV2v69Ol66KGHFBX19e60vvEJFYcPH+5yG/369Qv+3+VySZICgUAYq0ZPOtb+i4qK6vQzIHX9czBgwIAwVoieMmDAAHk8nuCrI7yy/3qPox3T//KXv+jKK69UVlaW3nrrLdXW1urZZ5+VdPRje19FmOkFzj77bO3bty/4hMM3n4phPJK+55RTTtH27ds7BRp+DgBzdBzT165dq/b2di1ZskTjx4/XmWeeqW3btnVaNiYmRn6/36ZKnYN7Zgyya9cuXXfddSouLtY555yjxMRErV27VgsXLtSUKVMUFxen8ePH67HHHlN6erp27typ+++/3+6yEWF5eXn63//9Xy1cuFBFRUV677339O677yopKcnu0gB8w3cd07///e+rvb1dzzzzjK666ip9/PHHeuGFFzptIz09XXv37tWKFSs0atQoxcfHKz4+3qavyD70zBgkISFBF1xwgX75y1/qkksuUVZWlh544AHdcsstWrp0qSTp5Zdf1uHDhzVu3DjdcccdeuSRR2yuGpE2YsQIPffcc3r22Wc1atQo/dd//VeffcIBcLLvOqaPHj1aTzzxhB5//HFlZWXpN7/5jUpLSzttIycnR7feequuv/56nXLKKX32pnCX9e2L6wAAAAahZwYAABiNMAMAAIxGmAEAAEYjzAAAAKMRZgAAgNEIMwAAwGiEGQAAYDTCDAAj5OXldfoEYQDoQJgBAABGI8wAAACjEWYAOM6+fft04403KiEhQampqVqyZEmn+eXl5Ro3bpwSExM1ZMgQTZ06VTt27JAkWZYlj8ejxYsXd1qnrq5OUVFR+vLLLyP2dQCIDMIMAMe5++67tXLlSi1fvlx/+MMftGrVKtXW1gbnHzp0SPPnz9enn36qqqoqNTY2avr06ZIkl8ul4uJilZWVddrmyy+/rNzcXH3/+9+P5JcCIAL4oEkAjrJ3716lpKTo1Vdf1fXXXy9J2r17t4YNG6af/OQnevLJJ49YZ82aNTr//PPV2tqqhIQENTc3Ky0tTatXr9b555+vw4cP67TTTtOiRYt00003RfgrAhBu9MwAcJQvv/xShw4d0oUXXhicNnDgQJ111lnB9+vXr9eUKVN0+umnKzExUXl5eZKkLVu2SJJSU1M1adIkvfzyy5Kk6upqHTx4UNddd13kvhAAEUOYAeAo39VZvG/fPl1++eVKSEhQeXm51qxZo+XLl0v6+vJThx//+Md64403dODAAZWVlen6669XfHx8WGsHYA/CDABH8Xg86tevnz755JPgtD179mjjxo2SpIaGBu3cuVOPPfaYcnNzlZmZGbz595uuvPJKDRgwQM8//7zeffddFRcXR+xrABBZ0XYXAADflJCQoBkzZujuu+9WSkqKTj31VN13332Kivr6b6/hw4crJiZGzzzzjG699VbV1dVp/vz5R2zH7XZr+vTpKikpkcfj6XTZCkDvQs8MAMdZtGiRLrnkEl199dW67LLLdPHFF2vs2LGSpFNOOUWvvPKKfvvb3+rss8/WY489dsRj2B1mzJihQ4cO0SsD9HI8zQSg1/r444+Vl5enr776Sqeeeqrd5QAIE8IMgF6nra1NW7du1U9+8hOlpqbqN7/5jd0lAQgjLjMB6HVef/11nXXWWWppadHChQvtLgdAmNEzAwAAjEbPDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAw2v8B6s6WoN9vc3UAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_feature_vs_tip(\"day\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "f2fa7ef2-68ff-4900-9ef9-353fac1c6d19",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAArTklEQVR4nO3df3RU9Z3/8ddkQn5MfoEgJJHgpERINBFEObJoSlJ/YDVqGrNrRQqI7rqnFkVBKFhbsJIsElxx/dHC1uCRBe3JDmmbrXZdBYwaFYKo0SCKSYESQFCT8MNAZu73D7+ZOgIhIQn3fpLn45w5OJ/7mc99D8eZefG5n3uvy7IsSwAAAIYKs7sAAACAriDMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABGI8wAkCS9+eabWrBggb766qvjtuXk5CgnJ+eM19SeV155RZdccoliYmLkcrlUXl7eY/vavXu3FixYoC1bthy3bcGCBXK5XD22bwCn5uJ2BgAkqaSkRPfff7/q6urk9XpDtn300UeSpPPPP9+Gyo5nWZYGDRqkESNG6OGHH1ZMTIxGjhypAQMG9Mj+Nm3apLFjx6q0tFTTpk0L2bZr1y7t2rVL48aN65F9Azi1cLsLAOB8TgkxbXbv3q0vvvhCP/rRj3TFFVd0y5hHjhxRVFRUp2dZhg4dqqFDh3ZLDQBOD4eZAGjBggW6//77JUmpqalyuVxyuVxav369pOMPM9XX18vlcmnJkiVavHixvF6voqOjlZOTo23btunYsWP6+c9/ruTkZCUkJOhHP/qR9u3bd9x+X3jhBf3DP/yDYmJiFBsbq4kTJ+rdd989Za1t4WHu3LlyuVwhM0mvv/66rrjiCsXFxcnj8Wj8+PH6n//5n5AxVq5cKZfLpf/93//V9OnTdfbZZ8vj8ailpeW4/a1fv15jx46VJN12223Bv5sFCxYE6/luAPJ6vcrLy9PatWt14YUXKioqSt/73vf0+OOPt/veAJwewgwA3XHHHZoxY4YkyefzqaqqSlVVVRozZky7r3vyySf1xhtv6Mknn9R//ud/auvWrbr++ut1++236/PPP9czzzyjRx55RP/3f/+nO+64I+S1RUVFuuWWW3T++efr97//vZ577jk1NzcrOzs7eFjrZLX6fD5J0owZM1RVVaW1a9dKkjZs2KAf/OAHamxs1O9+9zutWbNGcXFxuv766/XCCy8cN9b06dPVr18/PffccyorK1O/fv2O6zNmzBiVlpZKkn7xi18E/26++36+a8uWLZo5c6buvfderV27VuPHj9c999yjkpKSdl8H4DRYAGBZ1pIlSyxJVl1d3XHbJkyYYE2YMCH4vK6uzpJkjRo1yvL7/cH2xx57zJJk3XDDDSGvnzlzpiXJamxstCzLsnbs2GGFh4dbM2bMCOnX3NxsJSYmWv/0T//Ubq1t+1+yZElI+7hx46zBgwdbzc3NwbbW1lYrMzPTGjp0qBUIBCzLsqzS0lJLkjVlypR299Nm48aNliSrtLT0uG2/+tWvrO9+lZ577rmWy+WytmzZEtJ+1VVXWfHx8dahQ4c6tF8AHcPMDIDTdu211yos7O9fIxkZGZKk6667LqRfW/uOHTskSX/5y1/U2tqqKVOmqLW1NfiIiorShAkTgoe3OuPQoUN6++23VVhYqNjY2GC72+3WT37yE+3atUsff/xxyGtuuummTu+noy644AKNGjUqpG3SpElqamrS5s2be2y/QF/EAmAAp+2ss84KeR4REdFu+9dffy1J2rt3ryQF16J817cDUkd9+eWXsixLSUlJx21LTk6WJB04cCCk/UR9u0tiYuJJ275bB4CuIcwAOOMGDRokSSorK9O5557bLWMOGDBAYWFhamhoOG7b7t27Q/bbpievD7Nnz56Ttg0cOLDH9gv0RYQZAJKkyMhISd+cotzTJk6cqPDwcG3fvr3bDvXExMTo0ksvlc/nU0lJiaKjoyVJgUBAq1at0tChQzVixIjTGvt0/m4+/PBDvffeeyGHmlavXq24uLhTLqwG0DmEGQCSpKysLEnSsmXLNHXqVPXr108jR45UXFxct+/L6/XqoYce0gMPPKDPPvtM11xzjQYMGKC9e/fqnXfeUUxMjBYuXNjpcYuLi3XVVVcpNzdXs2fPVkREhJ566inV1NRozZo1pz0TM3z4cEVHR+u//uu/lJGRodjYWCUnJwcPX51IcnKybrjhBi1YsEBJSUlatWqVXn75ZS1evFgej+e06gBwYiwABiDpm2vJzJs3T3/60590+eWXa+zYsaquru6x/c2bN09lZWXatm2bpk6dqokTJ2rOnDn661//qu9///unNeaECRP06quvKiYmRtOmTdOPf/xjNTY2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dtllys3N1YsvvqjBgwdr+/bt6t+/v92lAQAAh3B0mFm8eLFSUlJUWloabPN6vfYVBAAAHMfRYeaPf/yjJk6cqH/8x3/Uhg0bdM455+inP/2p/vmf//mkr2lpaVFLS0vweVNT05koFQDQBYcPH9bWrVvb7XPkyBHV19fL6/UqOjq63b7p6enyeDzdWSIczNFh5rPPPtPTTz+t++67T/Pnz9c777yju+++W5GRkZoyZcoJX1NcXKyFCxee4UoBAF2xdetWXXzxxd02XnV1tcaMGdNt48HZHH2jyYiICF1yySV68803g2133323Nm7cqKqqqhO+5kQzMykpKdxosg/w+/2qrKxUQ0ODkpKSlJ2dLbfbbXdZADqgIzMztbW1mjx5slatWqWMjIx2+zIzY77O3GjS0TMzSUlJOv/880PaMjIy9N///d8nfU1kZKQiIyN7ujQ4jM/n06xZs1RfXx9s83q9Wrp0qQoKCuwrDECHeDyeDs+kZGRkMOuCEI4+Nfuyyy7Txx9/HNK2bds2nXvuuTZVBCfy+XwqLCxUVlaWqqqq1NzcrKqqKmVlZamwsFA+n8/uEgEAPcjRYebee+/VW2+9paKiIn366adavXq1li9frrvuusvu0uAQfr9fs2bNUl5ensrLyzVu3DjFxsZq3LhxKi8vV15enmbPni2/3293qQCAHuLoMDN27FitXbtWa9asUWZmpn7961/rscce06233mp3aXCIyspK1dfXa/78+QoLC/3fOSwsTPPmzVNdXZ0qKyttqhAA0NMcvWZGkvLy8pSXl2d3GXCohoYGSVJmZuYJt7e1t/UDAPQ+jp6ZAU4lKSlJklRTU3PC7W3tbf0AAL0PYQZGy87OltfrVVFRkQKBQMi2QCCg4uJipaamKjs726YKAQA9jTADo7ndbi1dulQVFRXKz88POZspPz9fFRUVKikp4XozANCLOX7NDHAqBQUFKisr06xZszR+/Phge2pqqsrKyrjODAD0coQZ9AoFBQW68cYbuQIwAPRBpx1mNm3apNraWrlcLqWnp+uSSy7pzrqATnO73crJybG7DADAGdbpMLNr1y7dcssteuONN9S/f39J0ldffaXx48drzZo1SklJ6e4aAQAATqrTC4CnT5+uY8eOqba2Vl988YW++OIL1dbWyrIs3X777T1RIwAAwEl1emamsrJSb775pkaO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ulQFBQWSpNTUVH300Uf67W9/G/wOkKSZM2cG+8BszMygV/B6vcEgI0lJSUnat2+fJKm2tlYtLS264oor2h3jwgsvDHm9pOAYALqPZVkhh4q/61SfRY/HEwwybX3atn/++efauXOnbr/9dsXGxgYfDz/8sLZv3x6yn0suuaRb3g/sx8wMHC0sLEzfvePGiRbq9evXL+S5y+UKnjERHR3doX19e4y2L9pvn3UBoHvU1tYqNTX1pNtP9Vk80ee97Xuird+KFSt06aWXhvRzu90hz2NiYk6jejgRMzNwtLPPPlvNzc06dOhQsK2z14M577zzFB0drVdeeaWbqwPQWa+++qo++OAD3XTTTT0y/pAhQ3TOOefos88+U1paWsijvQAFszEzA8dobGw8LqhccMEF8ng8mj9/vmbMmKF33nkneBZER0VFRWnu3LmaM2eOIiIidNlll+nzzz/Xhx9+qNtvv7373gCAEC0tLdqzZ4/8fr/27t2rl156ScXFxcrLy9OUKVN6bL8LFizQ3Xffrfj4eP3whz9US0uLNm3apC+//FL33Xdfj+0X9iHMwDHWr1+viy66KKRt6tSpWrVqle6//34tX75cV155pRYsWKB/+Zd/6dTYDz74oMLDw/XLX/5Su3fvVlJSkv71X/+1O8sH8B0vvfSSkpKSFB4ergEDBmjUqFF6/PHHNXXqVIWF9dyBgTvuuEMej0dLlizRnDlzFBMTo6ysLM2cObPH9gl7uazvLkgAAAAwCGtmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABGI8wAcKT169fL5XLpq6++srsUAA7HRfMAOEJOTo5Gjx6txx57TJJ09OhRffHFFxoyZEi7d1gGAG5nAMCRIiIilJiYaHcZAAzAYSYAtps2bZo2bNigZcuWyeVyyeVyaeXKlSGHmVauXKn+/furoqJCI0eOlMfjUWFhoQ4dOqRnn31WXq9XAwYM0IwZM+T3+4NjHz16VHPmzNE555yjmJgYXXrppVq/fr09bxRAj2BmBoDtli1bpm3btikzM1MPPfSQJOnDDz88rt/hw4f1+OOP6/nnn1dzc7MKCgpUUFCg/v37689//rM+++wz3XTTTbr88st18803S5Juu+021dfX6/nnn1dycrLWrl2ra665Rh988IHOO++8M/o+AfQMwgwA2yUkJCgiIkIejyd4aGnr1q3H9Tt27JiefvppDR8+XJJUWFio5557Tnv37lVsbKzOP/985ebmat26dbr55pu1fft2rVmzRrt27VJycrIkafbs2XrppZdUWlqqoqKiM/cmAfQYwgwAY3g8nmCQkaQhQ4bI6/UqNjY2pG3fvn2SpM2bN8uyLI0YMSJknJaWFg0cOPDMFA2gxxFmABijX79+Ic9dLtcJ2wKBgCQpEAjI7Xarurpabrc7pN+3AxAAsxFmADhCREREyMLd7nDRRRfJ7/dr3759ys7O7taxATgHZzMBcASv16u3335b9fX12r9/f3B2pStGjBihW2+9VVOmTJHP51NdXZ02btyoxYsX689//nM3VA3ACQgzABxh9uzZcrvdOv/883X22Wdrx44d3TJuaWmppkyZolmzZmnkyJG64YYb9PbbbyslJaVbxgdgP64ADAAAjMbMDAAAMBphBgAAGI0wAwAAjEaYAQAARiPMAAAAoxFmAACA0QgzAADAaIQZAABgNMIMAAAwGmEGAAAYjTADAACMRpgBAABG+3/ugh2UoikoNAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_feature_vs_tip(\"time\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "ae4d913b",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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VZXCwsJc+v726JGZqKgoXXvttS2OJSUl6dixYxd9T0BAgEJDQ1u84P2YGrl8+fn5Ki0t1dKlS1sEGUny8fHRkiVLdPToUeXn59tUIQC0zaPDzNixY3Xw4MEWxw4dOqQBAwbYVBE8EVMj7lFWViZJGjp0aJvnm443tQMAT+HRYeaRRx7Rnj17lJWVpSNHjmjTpk1at26d5syZY3dp8BCNjY1auHChJk+erNzcXN10003q1auXbrrpJuXm5mry5MlatGiRGhsb7S7V40VFRUmSioqK2jzfdLypHQB4Co8OM9dff722bt2qzZs3a+jQofr1r3+t1atX6+6777a7NHgIpkbcJzU1VXFxccrKypLT6Wxxzul0Kjs7W/Hx8UpNTbWpQgBom0evMyNJkydP1uTJk+0uAx6KqRH38fX11apVqzRt2jSlp6dryZIlGjp0qIqKipSdna28vDxt2bKFm38BeByPHpkBOsLUiHtlZGRoy5YtOnDggMaMGaPQ0FCNGTNGRUVF2rJlizIyMuwuEQBa8ehHs92hM492wTwXPk781ltv6Q9/+EPzo9ljx47VXXfdxePEl4DH3N2HR7OBS9OZ72+Pn2YC2tM0NXLXXXcpLCxMtbW1zeeCgoJUW1urt956iy/iTvL19VVaWprdZQCAS5hmgldwOBxtHmvrOADAuxBmYLQLH82urKzU9u3btWnTJm3fvl2nTp3i0WwA6AYueZpp3759Ki4ulsPhUGJiokaNGuXOugCXND2avXnzZvXo0aPV1MiSJUs0ZswY5efnM20CAF6q02Hm66+/1vTp0/WHP/xBvXv3liSdOnVKY8aM0ebNm9nYEVcUj2YDADo9zXTffffp3LlzKi4u1nfffafvvvtOxcXFsixL999/f1fUCFwUj2YDADodZvLz87V27VoNHjy4+djgwYP1/PPPs8oqrjhWrQUAdDrMxMbG6ty5c62ONzQ06Ec/+pFbigJc1fRodl5entLT01tsNJmenq68vDytXLmSR7MBwIt1OsysWLFCc+fO1b59+9S03t6+ffs0f/58rVy50u0FAh1h1VoA6N46vQLwVVddpTNnzqihoUF+fufvH2763z179mzR9rvvvnNfpZeIFYC7D1athSdiBWDg0nTpCsCrV6++1LqALsWqtQDQPXU6zMycObMr6gAAALgkLoWZqqqq5iGeqqqqdtsy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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_feature_vs_tip(\"size\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "9050a71c-23c4-4286-8188-86b0fc107026",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 100,
+ "id": "880db10e-d3f4-42ec-9b69-5c4fff7d710e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def groupedbarplot(x_data, y_data_list, y_data_names, colors, x_label, y_label, title):\n",
+ " _, ax = plt.subplots()\n",
+ " # 设置每一组柱状图的宽度\n",
+ " x_data_len = np.arange(len(x_data))\n",
+ " total_width = 0.8\n",
+ " # 设置每一个柱状图的宽度\n",
+ " ind_width = total_width / len(y_data_list)\n",
+ " # 计算每一个柱状图的中心偏移\n",
+ " alteration = np.arange(-total_width/2+ind_width/2, total_width/2+ind_width/2, ind_width)\n",
+ "\n",
+ " # 分别绘制每一个柱状图\n",
+ " for i in range(0, len(y_data_list)):\n",
+ " # 横向散开绘制\n",
+ " ax.bar(x_data, y_data_list[i], color = colors[i], label = y_data_names[i], width = ind_width)\n",
+ " ax.set_xticks(x_data_len + alteration / 2, x_data)\n",
+ " ax.set_ylabel(y_label)\n",
+ " ax.set_xlabel(x_label)\n",
+ " ax.set_title(title)\n",
+ " ax.legend(loc = 'upper right')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "99f133df-b29a-45d8-8f14-c962bc2b311d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "740f78a7-d039-407f-8888-fee0806e0a6e",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "id": "a8c7e586-a181-4c83-9900-8566f1a9fedb",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "mean_data = data[['tip', 'smoker', 'sex']].groupby(['smoker','sex']).mean()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "id": "4a06c2ab-0629-4847-bd03-c1021b4a4a4f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "pandas.core.frame.DataFrame"
+ ]
+ },
+ "execution_count": 61,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "type(mean_data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "id": "86cf51f9-8bcd-4bd1-a474-94ec764d4ba2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.0511666666666666"
+ ]
+ },
+ "execution_count": 69,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "mean_data['tip'][0]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "id": "89d39ff3-7267-4fc6-8ddd-198f373e7ad7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " tip \n",
+ " \n",
+ " \n",
+ " smoker \n",
+ " sex \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " Yes \n",
+ " Male \n",
+ " 3.051167 \n",
+ " \n",
+ " \n",
+ " Female \n",
+ " 2.931515 \n",
+ " \n",
+ " \n",
+ " No \n",
+ " Male \n",
+ " 3.113402 \n",
+ " \n",
+ " \n",
+ " Female \n",
+ " 2.773519 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " tip\n",
+ "smoker sex \n",
+ "Yes Male 3.051167\n",
+ " Female 2.931515\n",
+ "No Male 3.113402\n",
+ " Female 2.773519"
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "mean_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 104,
+ "id": "b28e80ee-39b1-48b6-b900-ed6a3634f372",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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J54wLBaLcfToUcMwDCM5OdmQZMyePdtITk426tWrZ9SrV884ceKEdczu3bsLrCU1NdVwd3c3Jk2aZG2LjIw0JBlffPFFofsH/FlEZqAIhg8frmvXrun999+3tq1cuVKurq4aMGCAte3y5cvW/0t2dnaWs7OzPDw8dOXKFR05cqREavn000/l4+Oj7t27Kycnx/pq3LixqlWrZr0Cq3HjxnJxcdHjjz+ut956K98hglupX7++GjVqZNM2YMAAZWRkaN++fZKkmjVrqlu3blq8eLEMw5AkvfPOOzp//ryefPLJQrd/33336eLFi+rfv78++uijfIeBbuxru3btFBgYaLOvN2ZBtm7dKkn67LPP5ObmdluHOM6cOaPRo0crKChIzs7OKl++vIKDgyWpwJ/ZQw89ZLPcsGFDXb9+XWfOnJEkbd68WZL06KOP2vT747+Twtx33306ePCgoqOj9fnnnysjI+Omff/3ira6devKYrHYzBI5Ozurdu3aNodGv/zyS9WrV0/33XefzfihQ4fKMAx9+eWXNu379u3T/fffL39/f+3cudP6+Ui//4wsFosGDhxo8zOqVq2aGjVqlO+KwEqVKql9+/ZF+iyA20W4AYqgfv36at68ufUwSG5urlatWqUePXqocuXK1n4DBgzQokWLNHLkSH3++ef6+uuv9c0336hq1aq6du1aidRy+vRpXbx4US4uLipfvrzNKz093RoSatWqpU2bNsnPz09jxoxRrVq1VKtWLZtzNwpTrVq1m7adP3/e2jZ+/HgdO3ZMiYmJkqTXXntNERERatKkSaHbHzRokFasWKGTJ0+qd+/e8vPz09/+9jfrdm7s6yeffJJvP+vXry9J1n09e/asAgMDi32IIy8vTx07dtSaNWs0adIkffHFF/r666+1Z88eSSrwZ+br62uz7OrqatP3/PnzcnZ2ztevoM+zILGxsZozZ4727Nmjzp07y9fXV1FRUUpKSsrX94//9iTJxcVFFSpUkJubW77269evW5fPnz+vgICAfNsLDAy0rv+jxMREnT59WiNHjpSPj4/NutOnT8swDPn7++f7Oe3ZsydfaC3ofYGSxjk3QBENGzZM0dHROnLkiH7++WelpaVp2LBh1vWXLl3Sp59+qmnTpmny5MnW9szMTF24cOGW23dzc8t3YqqkfH8cqlSpIl9fX23YsKHA7Xh6elr/u3Xr1mrdurVyc3OVlJSkhQsX6qmnnpK/v78eeeSRQutJT0+/adsf/3C3b99e4eHhWrRokTw8PLRv3z6tWrWq0G3fMGzYMA0bNkxXrlzRtm3bNG3aNHXr1k0//vijgoODVaVKFTVs2FAvvvhigeNv/DGuWrWqduzYoby8vGIFnO+//14HDx5UfHy8hgwZYm3/6aefiryN/+Xr66ucnBydP3/e5nMq6PMsiLOzs2JiYhQTE6OLFy9q06ZNmjJlijp16qTU1NRbnitV1BrT0tLytf/666+SlO/csKefflrHjx/X4MGDlZOTo8GDB1vXValSRRaLRdu3b7cGvT/63zaLxfKn6wduhZkboIj69+8vNzc3xcfHKz4+XnfddZc6duxoXW+xWGQYRr4v8zfffFO5ubm33H5ISIh+/PFHZWZmWtvOnz+f72qfbt266fz588rNzVWzZs3yvcLCwvJt28nJSX/729/02muvSZL1sFJhDh06pIMHD9q0vfPOO/L09Mw3KzNu3DitW7dOsbGx8vf3V58+fW65/T+qWLGiOnfurKlTpyorK0uHDh2y7uv333+vWrVqFbivN8JN586ddf36dcXHxxfrfW/8of3fn9nrr79erO38Ubt27SRJ//73v23a33nnnWJvy8fHR3//+981ZswYXbhwQSdOnLjtuv4oKipKhw8fzvfv4O2335bFYrHuww3lypXT66+/rvHjx2vo0KFasmSJdV23bt1kGIZOnTpV4M+oQYMGJVIzUBzM3ABF5OPjo549eyo+Pl4XL17UxIkTbWYJvLy81KZNG82ePVtVqlRRSEiItm7dquXLl+ebyi/IoEGD9Prrr2vgwIF67LHHdP78ec2aNUteXl42/R555BH9+9//VpcuXTR+/Hjdd999Kl++vH755Rdt3rxZPXr0UM+ePbV06VJ9+eWX6tq1q2rUqKHr169br+h54IEHbllPYGCgHnroIU2fPl0BAQFatWqVEhMTNXPmzHyzBwMHDlRsbKy2bdumf/zjH3Jxcbnl9h977DG5u7urZcuWCggIUHp6uuLi4uTt7a3mzZtLkmbMmKHExES1aNFC48aNU1hYmK5fv64TJ05o/fr1Wrp0qapXr67+/ftr5cqVGj16tI4ePap27dopLy9PX331lerWrXvTWao6deqoVq1amjx5sgzDUOXKlfXJJ5/YHBor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zjv66KOP5OnpqfT0dEmSt7e33N3dJf1+WOnUqVN6++23JUnz5s1TSEiI6tevr6ysLK1atUoJCQlKSEiw234AAADHYddws2TJEklS27ZtbdpXrlypoUOHSpLS0tKUkpJiXZeVlaWJEyfq1KlTcnd3V/369bVu3Tp16dKlrMoGAAAOzO6HpW4lPj7eZnnSpEmaNGlSKVUEAADudA5xQjEAAEBJIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTIdwAAABTsWu4iYuLU/PmzeXp6Sk/Pz89/PDDOnr06C3Hbd26VU2bNpWbm5tq1qyppUuXlkG1AADgTmDXcLN161aNGTNGe/bsUWJionJyctSxY0dduXLlpmOSk5PVpUsXtW7dWvv379eUKVM0btw4JSQklGHlAADAUTnb8803bNhgs7xy5Ur5+flp7969atOmTYFjli5dqho1amjevHmSpLp16yopKUlz5sxR7969S7tkAADg4BzqnJtLly5JkipXrnzTPrt371bHjh1t2jp16qSkpCRlZ2eXan0AAMDx2XXm5o8Mw1BMTIxatWql8PDwm/ZLT0+Xv7+/TZu/v79ycnJ07tw5BQQE2KzLzMxUZmamdTkjI6NkCwcAAA7FYWZunnzySX377bd69913b9nXYrHYLBuGUWC79PtJy97e3tZXUFBQyRQMAAAckkOEm7Fjx+rjjz/W5s2bVb169UL7VqtWTenp6TZtZ86ckbOzs3x9ffP1j42N1aVLl6yv1NTUEq0dAAA4FrseljIMQ2PHjtXatWu1ZcsWhYaG3nJMRESEPvnkE5u2jRs3qlmzZipfvny+/q6urnJ1dS2xmgEAgGO7rZmbo0eP6sknn1RUVJQeeOABPfnkk0W6P83/GjNm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fcOGDWrVqpV8fHzk6+urbt266fjx44XWd/jwYXXp0kUeHh7y9/fXoEGDdO7cuVL7PPDnEW7gEN566y1VqVJFX3/9tcaOHasnnnhCffr0UYsWLbRv3z516tRJgwYN0tWrV5WXl6fq1avrgw8+0OHDh/Xcc89pypQp+uCDD266/X/84x9auXKllixZokOHDmnChAkaOHCgtm7dWoZ7CaAg8+fP14wZM1S9enWlpaXpm2++KfLv7PTp07Vo0SLt2rVLqamp6tu3r+bNm6d33nlH69atU2JiohYuXGjtf+XKFcXExOibb77RF198oXLlyqlnz57Ky8srsLa0tDRFRkaqcePGSkpK0oYNG3T69Gn17du3VD8T/EkGYGeRkZFGq1atrMs5OTlGxYoVjUGDBlnb0tLSDEnG7t27C9xGdHS00bt3b+vykCFDjB49ehiGYRiXL1823NzcjF27dtmMGTFihNG/f/8S3BMAt+vVV181goODDcMo2u/s5s2bDUnGpk2brOvj4uIMScbx48etbaNGjTI6dep00/c9c+aMIcn47rvvDMMwjOTkZEOSsX//fsMwDOPZZ581OnbsaDMmNTXVkGQcPXr0tvcXpYtzbuAQGjZsaP1vJycn+fr6qkGDBtY2f39/SdKZM2ckSUuXLtWbb76pkydP6tq1a8rKylLjxo0L3Pbhw4d1/fp1dejQwaY9KytL9957bwnvCYA/qzi/s3/87vD391eFChVUs2ZNm7avv/7aunz8+HE9++yz2rNnj86dO2edsUlJSVF4eHi+Wvbu3avNmzfLw8Mj37rjx4/rnnvuub2dRKki3MAhlC9f3mbZYrHYtFksFklSXl6ePvjgA02YMEFz585VRESEPD09NXv2bH311VcFbvvGl9e6det011132azjWTOA4ynO7+z/fk8U9F3yx0NO3bt3V1BQkN544w0FBgYqLy9P4eHhysrKumkt3bt318yZM/OtCwgIKN6OocwQbnDH2b59u1q0aKHo6GhrW2EnBNarV0+urq5KSUlRZGRkWZQI4E8ord/Z8+fP68iRI3r99dfVunVrSdKOHTsKHdOkSRMlJCQoJCREzs78ybxT8JPCHad27dp6++239fnnnys0NFT/+te/9M033yg0NLTA/p6enpo4caImTJigvLw8tWrVShkZGdq1a5c8PDw0ZMiQMt4DAIUprd/ZSpUqydfXV8uWLVNAQIBSUlI0efLkQseMGTNGb7zxhvr376+nn35aVapU0U8//aT33ntPb7zxhpycnG6rFpQuwg3uOKNHj9aBAwfUr18/WSwW9e/fX9HR0dZLxQvywgsvyM/PT3Fxcfr555/l4+OjJk2aaMqUKWVYOYCiKo3f2XLlyum9997TuHHjFB4errCwMC1YsEBt27a96ZjAwEDt3LlTzzzzjDp16qTMzEwFBwfrwQcfVLlyXHDsqCyGYRj2LgIAAKCkEDsBAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4A3BHOnDmjUaNGqUaNGnJ1dVW1atXUqVMn7d69296lAXAwPH4BwB2hd+/eys7O1ltvvaWaNWvq9OnT+uKLL3ThwgV7lwbAwTBzA8DhXbx4UTt27NDMmTPVrl07BQcH67777lNsbKy6du0qSbp06ZIef/xx+fn5ycvLS+3bt9fBgwclSWfPnlW1atX00ksvWbf51VdfycXFRRs3brTLPgEoPYQbAA7Pw8NDHh4e+vDDD5WZmZlvvWEY6tq1q9LT07V+/Xrt3btXTZo0UVRUlC5cuKCqVatqxYoVmj59upKSknT58mUNHDhQ0dHR6tixox32CEBp4sGZAO4ICQkJeuyxx3Tt2jU1adJEkZGReuSRR9SwYUN9+eWX6tmzp86cOSNXV1frmNq1a2vSpEl6/PHHJUljxozRpk2b1Lx5cx08eFDffPON3Nzc7LVLAEoJ4QbAHeP69evavn27du/erQ0bNujrr7/Wm2++qbNnz2ry5Mlyd3e36X/t2jVNnDhRM2fOtC6Hh4crNTVVSUlJatiwoT12A0ApI9wAuGONHDlSiYmJio6O1sKFC7Vly5Z8fXx8fFSlShVJ0qFDh9SsWTNlZ2dr7dq16t69exlXDKAscLUUgDtWvXr19OGHH6pJkyZKT0+Xs7OzQkJCCuyblZWlRx99VP369VOdOnU0YsQIfffdd/L39y/bogGUOmZuADi88+fPq0+fPho+fLgaNmwoT09PJSUlaezYseratavefPNNtWnTRr/99ptmzpypsLAw/frrr1q/fr0efvhhNWvWTE8//bRWr16tgwcPysPDQ+3atZOnp6c+/fRTe+8egBJGuAHg8DIzMzV9+nRt3LhRx48fV3Z2toKCgtSnTx9NmTJF7u7u+u233zR16lQlJCRYL/1u06aN4uLidPz4cXXo0EGbN29Wq1atJEkpKSlq2LCh4uLi9MQTT9h5DwGUJMINAAAwFe5zAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATIVwAwAATOX/AgEQ5Tiz1jFfAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "categories = [\"male\",\"female\"]\n",
+ "values1 = [mean_data['tip'][0],mean_data['tip'][1]]\n",
+ "values2 = [mean_data['tip'][2],mean_data['tip'][3]]\n",
+ "\n",
+ "# 设置条形图的宽度\n",
+ "bar_width = 0.35\n",
+ "\n",
+ "# 计算并列的条形图的横坐标位置\n",
+ "x_data1 = np.arange(len(categories))\n",
+ "x_data2 = x_data1 + bar_width\n",
+ "\n",
+ "# 创建并列的条形图\n",
+ "\n",
+ "plt.bar(x_data1, values1, width=bar_width, color='#539caf', label='Yes')\n",
+ "plt.bar(x_data2, values2, width=bar_width, color='#7663b0', label='No')\n",
+ "\n",
+ "# 添加标签和标题\n",
+ "plt.xlabel('Sex')\n",
+ "plt.ylabel('Value of tip')\n",
+ "plt.title('values by sec and smoker')\n",
+ "plt.xticks(x_data1 + bar_width / 2, categories) # 设置横坐标刻度位置\n",
+ "\n",
+ "# 添加图例\n",
+ "plt.legend()\n",
+ "\n",
+ "# 显示图形\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4404cefc-b606-4f66-a1e9-1ddf2fa239eb",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "2c16e9a3-1b67-4a08-b6e8-3bba502d6ab5",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "e729c2ab-42fb-45e5-bb75-f0db5ffa244d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "3a978a67-991a-4dcd-9654-2931e8104c9b",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "6951f73f-8961-4457-a6f3-afc3b30dab8a",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "8d1b9708-a824-4160-bcf7-9e9977183cae",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "47193c0a-3a5a-4e9f-bda6-d5bfb603bbb2",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "5cdcdc34-b582-4d18-b103-cd6728a727c4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "id": "6d370196-265b-48bb-917f-c44ba3e20c8e",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "b894329d-88e7-48c1-886e-1b6131b913b9",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "smoker Yes No\n",
+ "sex \n",
+ "Male 3.051167 3.113402\n",
+ "Female 2.931515 2.773519\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "aefe2f74-5174-42cd-b32d-83991f0f1980",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ab2fba5b-ad22-43a3-a196-c0ae9a03a523",
+ "metadata": {},
+ "source": [
+ "## 练习4:泰坦尼克号海难幸存状况分析 (8个题)\n",
+ "\n",
+ "1. 不同仓位等级中幸存和遇难的乘客比例(提示:箱图或者提琴图)\n",
+ "2. 不同性别的幸存比例(提示:箱图或者提琴图)\n",
+ "3. 幸存和遇难乘客的票价分布(提示:箱图或者提琴图)\n",
+ "4. 幸存和遇难乘客的年龄分布(提示:箱图或者提琴图)\n",
+ "5. 不同上船港口的乘客仓位等级分布(提示:箱图或者提琴图)\n",
+ "6. 幸存和遇难乘客堂兄弟姐妹的数量分布(提示:箱图或者提琴图)\n",
+ "7. 幸存和遇难乘客父母子女的数量分布(提示:箱图或者提琴图)\n",
+ "8. 单独乘船与否和幸存之间有没有联系(提示:统计柱状图)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 105,
+ "id": "171e617f-9983-445a-b872-ad925ee239a4",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " survived \n",
+ " pclass \n",
+ " sex \n",
+ " age \n",
+ " sibsp \n",
+ " parch \n",
+ " fare \n",
+ " embarked \n",
+ " class \n",
+ " who \n",
+ " adult_male \n",
+ " deck \n",
+ " embark_town \n",
+ " alive \n",
+ " alone \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0 \n",
+ " 3 \n",
+ " male \n",
+ " 22.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 7.2500 \n",
+ " S \n",
+ " Third \n",
+ " man \n",
+ " True \n",
+ " NaN \n",
+ " Southampton \n",
+ " no \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1 \n",
+ " 1 \n",
+ " female \n",
+ " 38.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 71.2833 \n",
+ " C \n",
+ " First \n",
+ " woman \n",
+ " False \n",
+ " C \n",
+ " Cherbourg \n",
+ " yes \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 1 \n",
+ " 3 \n",
+ " female \n",
+ " 26.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 7.9250 \n",
+ " S \n",
+ " Third \n",
+ " woman \n",
+ " False \n",
+ " NaN \n",
+ " Southampton \n",
+ " yes \n",
+ " True \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 1 \n",
+ " 1 \n",
+ " female \n",
+ " 35.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 53.1000 \n",
+ " S \n",
+ " First \n",
+ " woman \n",
+ " False \n",
+ " C \n",
+ " Southampton \n",
+ " yes \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 3 \n",
+ " male \n",
+ " 35.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 8.0500 \n",
+ " S \n",
+ " Third \n",
+ " man \n",
+ " True \n",
+ " NaN \n",
+ " Southampton \n",
+ " no \n",
+ " True \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " survived pclass sex age sibsp parch fare embarked class \\\n",
+ "0 0 3 male 22.0 1 0 7.2500 S Third \n",
+ "1 1 1 female 38.0 1 0 71.2833 C First \n",
+ "2 1 3 female 26.0 0 0 7.9250 S Third \n",
+ "3 1 1 female 35.0 1 0 53.1000 S First \n",
+ "4 0 3 male 35.0 0 0 8.0500 S Third \n",
+ "\n",
+ " who adult_male deck embark_town alive alone \n",
+ "0 man True NaN Southampton no False \n",
+ "1 woman False C Cherbourg yes False \n",
+ "2 woman False NaN Southampton yes True \n",
+ "3 woman False C Southampton yes False \n",
+ "4 man True NaN Southampton no True "
+ ]
+ },
+ "execution_count": 105,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = sns.load_dataset(\"titanic\")\n",
+ "data.head()\n",
+ "# 幸存与否,仓位等级,性别,年龄,堂兄弟姐妹数,父母子女数,票价,上船港口缩写,仓位等级,人员分类,是否成年男性,所在甲板,上船港口,是否幸存,是否单独乘船"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "20fe467f-9267-47d8-b645-841c6cf50a25",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data1 = data.groupby(\"pclass\")[\"survived\"].sum()\n",
+ "\n",
+ "data2= data.groupby(\"pclass\")[\"pclass\"].count()\n",
+ "\n",
+ "data_df = pd.concat([data1, data2], axis=1, keys=[\"survived\",\"total\"])\n",
+ "\n",
+ "data_df[\"unsurvived\"] = data_df[\"total\"] - data_df[\"survived\"]\n",
+ "\n",
+ "data_df[\"survived_prop\"] = data_df[\"survived\"]/data_df[\"total\"]\n",
+ "\n",
+ "data_df[\"unsurvived_prop\"] = data_df[\"unsurvived\"]/data_df[\"total\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 129,
+ "id": "1414f1ba-9194-429b-8c04-a2e13b0ef580",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " survived \n",
+ " total \n",
+ " unsurvived \n",
+ " survived_prop \n",
+ " unsurvived_prop \n",
+ " \n",
+ " \n",
+ " pclass \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 136 \n",
+ " 216 \n",
+ " 80 \n",
+ " 0.629630 \n",
+ " 0.370370 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 87 \n",
+ " 184 \n",
+ " 97 \n",
+ " 0.472826 \n",
+ " 0.527174 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 119 \n",
+ " 491 \n",
+ " 372 \n",
+ " 0.242363 \n",
+ " 0.757637 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " survived total unsurvived survived_prop unsurvived_prop\n",
+ "pclass \n",
+ "1 136 216 80 0.629630 0.370370\n",
+ "2 87 184 97 0.472826 0.527174\n",
+ "3 119 491 372 0.242363 0.757637"
+ ]
+ },
+ "execution_count": 129,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4f40e9c0-5b2c-46d1-b4cc-34d167677cdb",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 130,
+ "id": "8af6710f-78a9-4021-8c5b-0608ffaadddf",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def stackedbarplot(x_data, y_data_list, y_data_names, colors, x_label, y_label, title):\n",
+ " _, ax = plt.subplots()\n",
+ " # 循环绘制堆积柱状图\n",
+ " for i in range(0, len(y_data_list)):\n",
+ " if i == 0:\n",
+ " ax.bar(x_data, y_data_list[i], color = colors[i], align = 'center', label = y_data_names[i])\n",
+ " else:\n",
+ " # 采用堆积的方式,除了第一个分类,后面的分类都从前一个分类的柱状图接着画\n",
+ " # 用归一化保证最终累积结果为1,下面bottom参数表示纵向从哪里开始画\n",
+ " ax.bar(x_data, y_data_list[i], color = colors[i], bottom = y_data_list[i - 1], align = 'center', label = y_data_names[i])\n",
+ " ax.set_ylabel(y_label)\n",
+ " ax.set_xlabel(x_label)\n",
+ " ax.set_title(title)\n",
+ " ax.legend(loc = 'upper right') # 设定图例位置"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 132,
+ "id": "e321b06a-767e-4630-8122-fea7e442a189",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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HAYGBkplenp6yMzM1HhQRERERNpO7eE8IQR69uypNF1AWloaBgwYAFNTU0VZaGioZiMkIiIi0kJqJ1E9evRQKevatatGgyEiIiIqLNROojZs2JCfcRAREREVKpJv+0JERERETKKIiIiI8oRJFBEREVEeMIkiIiIiygPJSdSrV6/yIw4iIiKiQkVyEmVvb4/evXvj1KlT+REPERERUaEgOYnasmULkpOT0bhxY5QtWxZz5szhrV+IiIjoiyM5iWrdujX++OMPPHnyBAMHDsSWLVvg5OSEr7/+GqGhobwNDBEREX0R8nxiubW1NUaMGIFr165h4cKFOHz4MNq3bw8HBwdMnjwZr1+/1mScRERERFpF7RnL3xcfH4+NGzdiw4YNiImJQfv27dGnTx88efIEc+bMwblz53Do0CFNxkpERESkNSQnUaGhodiwYQMOHjyIChUqYNCgQejatSssLS0VdTw9PVG1alVNxklERESkVSQnUb169ULnzp1x+vRpfPXVVznWcXV1xYQJEz45OCIiIiJtJTmJiouLg4mJSa51jI2NMWXKlDwHRURERKTtJCdRJiYmkMvl2LFjByIjIyGTyVC+fHn4+/tDTy/Pp1gRERERFSqSs56bN2/im2++wdOnT1GuXDkAwN27d2Fra4tdu3ahcuXKGg+SiIiISNtInuIgICAAlSpVwqNHjxAREYGIiAjExsbCw8MD/fr1y48YiYiIiLSO5J6oa9eu4dKlSyhatKiirGjRopg1a9YHTzQnIiIi+q+R3BNVrlw5PH36VKU8ISEBbm5uGgmKiIiISNuplUSlpKQoHrNnz8bQoUOxfft2PHr0CI8ePcL27dsxfPhwzJ07N7/jJSIiItIKag3nWVpaQiaTKZ4LIdCxY0dFmRACwLv76snl8nwIk4iIiEi7qJVEHTt2LL/jICIiIipU1EqiGjRokN9xEBERERUqkk8sJyIiIiImUURERER5wiSKiIiIKA+YRBERERHlAZMoIiIiojxQ6+q8qlWrKs0TlZuIiIhPCoiIiIioMFArifL391f8nZaWhhUrVqBChQrw9vYGAJw7dw63bt1CYGBgvgRJREREpG3USqKmTJmi+DsgIABDhw7FjBkzVOrExsZqNjoiIiIiLSX5nKht27ahe/fuKuVdu3bFH3/8oZGgiIiIiLSd5CTK2NgYp06dUik/deoU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RESFyifPWE5ERET0JZLcE+Xi4pLr1XkPHjz4pICIiIiICgPJSdTw4cOVnmdkZODKlSs4cOAAvv/+e03FRURERKTVJCdRw4YNy7F8+fLluHTp0icHRERERFQYaOycqBYtWuCPP/7QVHNEREREWk1jSdT27dthZWWlqeaIiIiItJrk4byqVasqnVguhEB8fDyePXuGFStWaDQ4IiIiIm0lOYny9/dXeq6jowNbW1s0bNgQ5cuX11RcRERERFpNchI1ZcqU/IiDiIiIqFCRfE5UREQEbty4oXj+559/wt/fH+PHj8fbt281GhwRERGRtpKcRPXv3x93794F8G5izU6dOsHExATbtm3DmDFjNB4gERERkTaSnETdvXsXnp6eAIBt27ahQYMG2Lx5M4KDgznFAREREX0xJCdRQghkZWUBAA4fPoyWLVsCABwdHZGYmKjZ6IiIiIi0lOQkqnr16pg5cyZ+/fVXHD9+HK1atQIAREVFwd7eXuMBEhEREWkjyUnU4sWLERERgcGDB2PChAlwc3MD8G6yzdq1a2s8QCIiIiJtJHmKAw8PD6Wr87L9+OOP0NXV1UhQRERERNpOchL1IUZGRppqioiIiEjraezeeURERERfEiZRRERERHmgVhKVkpKS33EQERERFSpqJVFFixZFQkICAKBRo0Z48eJFfsZEREREpPXUSqLMzMyQlJQEAAgPD0dGRka+BkVERESk7dS6Oq9Jkybw8fGBu7s7AKBNmzYwMDDIse7Ro0c1Fx0RERGRllIrifrtt9/wyy+/4P79+zh+/DgqVqwIExOT/I6NiIiISGuplUQZGxtjwIABAIBLly5h7ty5sLS0zM+4iIiIiLSa5Mk2jx07pvhbCAEAkMlkmouIiIiIqBDI0zxRGzduROXKlWFsbAxjY2N4eHjg119/1XRsRERERFpLck/UwoULMWnSJAwePBh16tSBEAKnT5/GgAEDkJiYiBEjRuRHnERERERaRXIStXTpUqxcuRLdu3dXlPn5+aFixYqYOnUqkygiIiL6IkgezouLi0Pt2rVVymvXro24uDiNBEVERESk7SQnUW5ubti6datKeUhICMqUKaORoIiIiIi0neThvGnTpqFTp044ceIE6tSpA5lMhlOnTuHIkSM5JldERERE/0WSe6LatWuH8+fPw8bGBjt37kRoaChsbGxw4cIFtGnT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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "stackedbarplot(x_data = [\"class1\",\"class2\",\"class3\"]\n",
+ " , y_data_list = [data_df[\"survived_prop\"], data_df[\"unsurvived_prop\"]]\n",
+ " , y_data_names = ['Survived', 'Unsurvived']\n",
+ " , colors = ['#539caf', '#7663b0']\n",
+ " , x_label = \"pclass\"\n",
+ " , y_label = 'Proportion of survived/unsurvived by Pclass(1,2,3)'\n",
+ " , title = 'Proportion of survived/unsurvived by Pclass(1,2,3)')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "0bc62adf-193e-415c-bd9d-42b3432a8643",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 133,
+ "id": "62ad1d42-2779-4354-802c-3653ac65f079",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data1 = data.groupby(\"sex\")[\"survived\"].sum()\n",
+ "\n",
+ "data2= data.groupby(\"sex\")[\"pclass\"].count()\n",
+ "\n",
+ "data_df = pd.concat([data1, data2], axis=1, keys=[\"survived\",\"total\"])\n",
+ "\n",
+ "data_df[\"unsurvived\"] = data_df[\"total\"] - data_df[\"survived\"]\n",
+ "\n",
+ "data_df[\"survived_prop\"] = data_df[\"survived\"]/data_df[\"total\"]\n",
+ "\n",
+ "data_df[\"unsurvived_prop\"] = data_df[\"unsurvived\"]/data_df[\"total\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 137,
+ "id": "8e1aaed2-6465-4ccd-a355-3645f0e3c117",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " survived \n",
+ " total \n",
+ " unsurvived \n",
+ " survived_prop \n",
+ " unsurvived_prop \n",
+ " \n",
+ " \n",
+ " sex \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " female \n",
+ " 233 \n",
+ " 314 \n",
+ " 81 \n",
+ " 0.742038 \n",
+ " 0.257962 \n",
+ " \n",
+ " \n",
+ " male \n",
+ " 109 \n",
+ " 577 \n",
+ " 468 \n",
+ " 0.188908 \n",
+ " 0.811092 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " survived total unsurvived survived_prop unsurvived_prop\n",
+ "sex \n",
+ "female 233 314 81 0.742038 0.257962\n",
+ "male 109 577 468 0.188908 0.811092"
+ ]
+ },
+ "execution_count": 137,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 136,
+ "id": "f5931df5-7705-4865-9296-68398e6e0ae1",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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fijuyZMnWL9+PYD3CVTnzp0xf/58fPvtt4peLGNjY1hYWEh9KURE+fLA54td1ExEWkRyT9TChQuRmpoKZ2dnlCxZEm5ubnBxcUFqaioWLFggqa22bdti3rx5mDRpEry8vHDixAns378fTk5OAIC4uDjExMQo6i9btgyZmZno168fihYtqngMGjRI6ssgIiIi+iySe6IcHR1x5coVhIeH488//4QQAmXLlv3kuUkfExwcjODg4FyXrV27Vul5REREvrZBREREpG75nieqYcOGaNiwoTpjISIiIiowVEqifvnlF/Tq1QtGRkb45Zdf8qybn2kOiIiIiAoalZKouXPn4ocffoCRkRHmzp370XoymYxJFBEREX0VVEqioqKicv2biIiI6Gsl+eq8SZMm4c2bNznK3759i0mTJqklKCIiIiJtJzmJmjhxIl69epWj/M2bN7xHHREREX01JCdRH7u33fXr12FlZaWWoIiIiIi0ncpTHBQuXBgymQwymQylS5dWSqTkcjlevXqlmGmciIiI6L9O5SRq3rx5EEKge/fumDhxotJtVgwMDODs7AwfHx+NBElERESkbVROorp06YLMzEwAQIMGDVC8eHGNBUVERESk7SSdE6Wnp4fg4GDI5XJNxUNERERUIEg+sbxatWq4evWqJmIhIiIiKjAk3zsvODgYQ4cOxePHj+Ht7Q1TU1Ol5Z6enmoLjoiIiEhbSU6i2rZtC0D5HnkymUwx9QGH+oiIiOhrIDmJ4m1fiIiIiPKRRDk5OWkiDiIiIqICRXISBQAPHjzAvHnzEBkZCZlMBg8PDwwaNAglS5ZUd3xEREREWkny1XkHDx5E2bJlceHCBXh6eqJ8+fI4f/48ypUrh/DwcE3ESERERKR1JPdEjRgxAiEhIZg+fXqO8p9++gkNGzZUW3BERERE2kpyT1RkZCSCgoJylHfv3h137txRS1BERERE2k5yEmVra4tr167lKL927Rrs7OzUERMRERGR1pM8nNezZ0/06tULDx8+RPXq1SGTyXDq1CnMmDEDQ4cO1USMRERERFpHchI1duxYFCpUCLNnz8bIkSMBAA4ODpgwYYLSBJxERERE/2WSkyiZTIaQkBCEhIQgNTUVAFCoUCG1B0ZERESkzfI1TxQAJCQk4O7du5DJZHB3d4etra064yIiIiLSapJPLE9JSUGnTp3g4OAA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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "stackedbarplot(x_data = [\"female\",\"male\"]\n",
+ " , y_data_list = [data_df[\"survived_prop\"], data_df[\"unsurvived_prop\"]]\n",
+ " , y_data_names = ['Survived', 'Unsurvived']\n",
+ " , colors = ['#539caf', '#7663b0']\n",
+ " , x_label = \"pclass\"\n",
+ " , y_label = 'Proportion of survived/unsurvived by sex'\n",
+ " , title = 'Proportion of survived/unsurvived by sex')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "ce087023-153c-4531-bbd5-b625753019b6",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "4284a40c-e56e-4098-9306-6d43ec00bdb9",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "id": "fb9c51de-39f4-432a-b877-74f5a31f5256",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " survived unservived total survived_prop unsurvived_prop\n",
+ "sex \n",
+ "female 233 314 314 0.742038 1.0\n",
+ "male 109 577 577 0.188908 1.0\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "08f88221-ed64-4529-a709-9c5cb0f1c54b",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 143,
+ "id": "5ff83825-c30c-4561-80c3-ad74a208ab95",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def plot_survived_vs_feature(feature): \n",
+ " plt.boxplot([data.loc[data[\"survived\"] == i,feature] for i in set(data[\"survived\"])],\n",
+ " labels=[i for i in set(data[\"survived\"])],\n",
+ " patch_artist=True,\n",
+ " boxprops=dict(color='blue')\n",
+ " )\n",
+ " plt.xlabel(\"survived\")\n",
+ " plt.ylabel(feature)\n",
+ " plt.title(\"The box with 2 teatures \"+\" for \"+ feature)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 144,
+ "id": "8b67fef7-81ff-416f-be5a-e30635f9b515",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABI8UlEQVR4nO3deVyU5f7/8fewDJuAAgKiKGimlmhJZWKE5nYyTTLLUkvL+mq24YJly0/rdPTk7sm0o+ecOi22K5VZuZuldYy01NTM3SOIW4AIjMD1+8Mv820EFRUduHk9H4956Fz3Nff9uQfHeXPd933dNmOMEQAAgEV5uLsAAACAS4mwAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wA8uw2WwVeqxcuVIrV66UzWbTRx99dElrulzbuZR2794tm82mN954w9m2Zs0ajRs3Tr///nuZ/jExMerRo8cFbSsjI0PPPfec2rVrp7CwMAUFBSk+Pl5z5sxRcXHxOV9/4MABjRs3Ths2bLig7Z+PEydOaNy4cVq5cuUl39bldPToUd1zzz0KDw+XzWZTcnLyJd2ew+HQ0KFDVa9ePXl6euqaa665pNtDzeTl7gKAyrJ27VqX53/+85+1YsUKLV++3KX9qquu0o8//ng5S6vW6tWrp7Vr16pJkybOtjVr1uiFF17QoEGDVLt27UrbVnp6ut58803df//9ev755+Xt7a0vvvhCjzzyiL777jv961//OuvrDxw4oBdeeEExMTGX/EvzxIkTeuGFFyRJHTp0uKTbupz+/Oc/a8GCBfrXv/6lJk2aKCQk5JJub/bs2fr73/+uV155RfHx8apVq9Yl3R5qJsIOLOPGG290eV63bl15eHiUacf58fHxuWzvYfv27bVjxw55e3s727p06SKHw6FXX31VL7zwgqKjoy9LLe5ijFFBQYH8/Pzcsv1NmzapSZMm6t+/f6Ws71z7s2nTJvn5+emxxx6rlO1Jp4Kov79/pa0P1R+HsVCjnTx5Us8++6yioqIUFBSkzp07a9u2bWX6LV26VJ06dVJQUJD8/f3Vvn17LVu2rMLbKSgo0IgRIxQZGSk/Pz8lJSVp/fr1Zfp9+umnateunfz9/RUYGKguXbq4jFi99957stlsmjlzpsvrxo4dK09PTy1ZsuSMNaSmpio4ONjlcNDjjz8um82mSZMmOduOHDkiDw8PvfLKK5LKHsYaN26cUlNTJUmxsbEuhwf/6Msvv1SbNm3k5+en5s2bn3NURpLq1KnjEnRK3XDDDZKk/fv3n/G1K1eu1PXXXy9JeuCBB5x1jRs3ztnnhx9+0O23366QkBD5+vrq2muv1QcffOCynkOHDmnYsGG66qqrVKtWLYWHh+uWW27R6tWrnX12796tunXrSpJeeOEF57YGDRokSRo0aJBiYmLK1Dhu3DjZbDaXNpvNpscee0yvvfaaWrRoIR8fH/373/+WJG3fvl39+vVTeHi4fHx81KJFC7366qsury8pKdFLL72kZs2ayc/PT7Vr11arVq00Y8aMM75X5Sn9OS9dulRbtmwp83M9evSohg0bpvr168tut6tx48Z69tlnVVhYWOH9OZ3NZtM//vEP5efnO7dX+u/s1Vdf1c0336zw8HAFBAQoLi5OEydO1MmTJ13W0aFDB7Vs2VJff/21EhIS5O/vrwcffFCSlJOTo1GjRik2NlZ2u13169dXSkqK8vLyzuu9gQUYwKIGDhxoAgICyl22YsUKI8nExMSY/v37m88//9y8++67pmHDhqZp06amqKjI2fett94yNpvNJCcnm/nz55vPPvvM9OjRw3h6epqlS5eetYbS7URHR5tevXqZzz77zLz99tvmiiuuMEFBQWbHjh3Ovu+8846RZLp27WrS0tLM+++/b+Lj443dbjerV6929hs6dKix2+1m3bp1xhhjli1bZjw8PMxzzz131lq+/PJLI8msWbPG2da8eXPj5+dnunTp4mx7//33jSTzyy+/GGOM2bVrl5FkXn/9dWOMMfv27TOPP/64kWTmz59v1q5da9auXWuys7ONMcY0atTINGjQwFx11VXmzTffNF999ZW56667jCSzatWqs9Z4JgMHDjReXl7m8OHDZ+yTnZ1tXn/9dSPJPPfcc8669u3bZ4wxZvny5cZut5vExETz/vvvmy+//NIMGjTIZd+MMWbr1q3mkUceMe+9955ZuXKlWbhwoRk8eLDx8PAwK1asMMYYU1BQ4Hw/Bw8e7NzWb7/95qy3UaNGZWocO3asOf2/XUmmfv36plWrVmbevHlm+fLlZtOmTWbz5s0mODjYxMXFmTfffNMsXrzYjBw50nh4eJhx48Y5Xz9hwgTj6elpxo4da5Yt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tGTJkvM6HHKmupo1a6amTZvqp59+0vjx48+6DpvNVmYU6eeff9batWtdLns/23sQExOjrKwsHTx40BmGHQ6Hvvrqqwrth7+/vzp27Kj169erVatWstvtFXpd7dq11adPH/33v/9VSkqKdu/erauuuqpCrz2bTp066YMPPlBaWpruuOMOZ/ubb77pXF6ZSv/9//HnYIzR3LlzK7yOHj16aPz48QoNDXUGQ9RchB3gLGrVqqVXXnlFAwcO1NGjR9WnTx+Fh4fr0KFD+umnn3To0KEyIwDlycrK0h133KGHH35Y2dnZGjt2rHx9fTVmzBhJkoeHhyZOnKj+/furR48eGjJkiAoLCzVp0iT9/vvv+utf/yrpVPi5++67FRsbq1mzZslut+uDDz5QmzZt9MADDygtLe2sdXh6eiopKUmfffaZYmNjnRMFtm/fXj4+Plq2bJmeeOKJc+5PXFycJGnGjBkaOHCgvL291axZMwUGBp7ztWezbds25yG0v/zlL9q+fbu2b9/uXN6kSRPnJd/ladKkifz8/PTOO++oRYsWqlWrlqKiohQVFaW///3vuvXWW9WtWzcNGjRI9evX19GjR7Vlyxb9+OOP+vDDDyWd+pL885//rLFjxyopKUnbtm3Tiy++qNjYWBUVFTm3FRgYqEaNGumTTz5Rp06dFBISorCwMMXExKhv3776f//v/+mee+5RamqqCgoK9Le//a1Cs0CXmjFjhm666SYlJibqkUceUUxMjHJzc/Xbb7/ps88+c06W2bNnT7Vs2VLXXXed6tatqz179mj69Olq1KiRmjZtel7v/5ncf//9evXVVzVw4EDt3r1bcXFx+uabbzR+/Hh17979og97nq5Lly6y2+269957NXr0aBUUFGj27Nkuh3LPJSUlRR9//LFuvvlmDR8+XK1atVJJSYn27t2rxYsXa+TIkRUaDYVFuPX0aOASqsjVWB9++KFLe3lXHhljzKpVq8xtt91mQkJCjLe3t6lfv7657bbbyrz+TNt56623zBNPPGHq1q1rfHx8TGJiovnhhx/K9E9LSzNt27Y1vr6+JiAgwHTq1Ml8++23zuUDBgww/v7+ZvPmzS6v+/DDD40kM23atLPWY4wxM2bMMJLMww8/7NLepUsXI8l8+umnFXpPxowZY6KiooyHh4eR5Lwsu1GjRua2224rs92kpCSTlJR01tpKLx0/06O8q6xO9+6775rmzZsbb2/vMldL/fTTT+buu+824eHhxtvb20RGRppbbrnFvPbaa84+hYWFZtSoUaZ+/frG19fXtGnTxqSlpZV7hdXSpUvNtddea3x8fIwkM3DgQOeyRYsWmWuuucb4+fmZxo0bm5kzZ57xaqxHH3203H3ZtWuXefDBB039+vWNt7e3qVu3rklISDAvvfSSs8+UKVNMQkKCCQsLM3a73TRs2NAMHjzY7N69+5zvVXnKuxrLGGOOHDlihg4daurVq2e8vLxMo0aNzJgxY5xX8VVkf8pzps/pZ599Zlq3bm18fX1N/fr1TWpqqvniiy9c/q2drV5jjDl+/Lh57rnnTLNmzYzdbndeyj98+HCTmZlZ4RpR/dmMMeaypisAAIDLiKuxAACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApTGpoKSSkhIdOHBAgYGBFz3NOQAAuDyMMcrNzVVUVJTLTZRPR9jRqXsP/XEaeAAAUH3s27dPDRo0OONywo7knOJ+3759CgoKcnM1AACgInJychQdHX3OW9UQdvR/N50LCgoi7AAAUM2c6xQUTlAGAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAFhCfn6+HnvsMXXr1k2PPfaY8vPz3V0SqgibMca4uwh3y8nJUXBwsLKzs7ldBABUQ8nJyfrkk0/KtPfq1UtpaWmXvyBcFhX9/mZkBwBQrZUGHbvdrqefflq//fabnn76adntdn3yySdKTk52d4lwM0Z2xMgOAFRX+fn58vf3l91uV25urux2u3OZw+FQYGCgHA6HTpw4IT8/PzdWikuBkR0AgOWlpqZKkkaMGOESdCTJbrcrJSXFpR9qJsIOAKDa2r59uyTpoYceKnf54MGDXfqhZiLsAACqraZNm0qS/vGPf5S7/J///KdLP9RMnLMjztkBgOqKc3ZqNs7ZAQBYnp+fn3r16uUMNk899ZR+/fVXPfXUU86g06tXL4JODefWsDNu3DjZbDaXR2RkpHO5MUbjxo1TVFSU/Pz81KFDB23evNllHYWFhXr88ccVFhamgIAA3X777dq/f//l3hUAgJukpaU5A8/EiRPVrFkzTZw40Rl0mGcHbh/Zufrqq5WRkeF8bNy40bls4sSJmjp1qmbOnKl169YpMjJSXbp0UW5urrNPSkqKFixYoPfee0/ffPONjh8/rh49eqi4uNgduwMAcIO0tDSdOHFCjz76qLp27apHH31UJ06cIOhAkpvP2Rk3bpzS0tK0YcOGMsuMMYqKilJKSoqeeuopSadGcSIiIvTyyy9ryJAhys7OVt26dfXWW2+pb9++kqQDBw4oOjpaixYtUrdu3SpUB+fsAABQ/VSbc3a2b9+uqKgoxcbG6p577tHOnTslSbt27VJmZqa6du3q7Ovj46OkpCStWbNGkpSenq6TJ0+69ImKilLLli2dfcpTWFionJwclwcAALAmt4adtm3b6s0339RXX32luXPnKjMzUwkJCTpy5IgyMzMlSRERES6viYiIcC7LzMyU3W5XnTp1ztinPBMmTFBwcLDzER0dXcl7BgAAqgq3hp1bb71Vd955p+Li4tS5c2d9/vnnkqR///vfzj42m83lNcaYMm2nO1efMWPGKDs72/nYt2/fRewFAACoytx+GOuPAgICFBcXp+3btzuvyjp9hCYrK8s52hMZGSmHw6Fjx46dsU95fHx8FBQU5PIAAADWVKXCTmFhobZs2aJ69eopNjZWkZGRWrJkiXO5w+HQqlWrlJCQIEmKj4+Xt7e3S5+MjAxt2rTJ2QcAANRsXu7c+KhRo9SzZ081bNhQWVlZeumll5STk6OBAwfKZrMpJSVF48ePV9OmTdW0aVONHz9e/v7+6tevnyQpODhYgwcP1siRIxUaGqqQkBCNGjXKeVgMAADArWFn//79uvfee3X48GHVrVtXN954o7777js1atRIkjR69Gjl5+dr2LBhOnbsmNq2bavFixcrMDDQuY5p06bJy8tLd999t/Lz89WpUye98cYb8vT0dNduAQCAKoR7Y4l5dgAAqI6qzTw7AAAAlxJhBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBph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9ddfq2fPnoqKipLNZlNaWpq7S0IVQthBjfH+++8rJSVFzz77rNavX6/ExETdeuut2rt3r7tLA3CR8vLy1Lp1a82cOdPdpaAK4tJz1Bht27ZVmzZtNHv2bGdbixYtlJycrAkTJrixMgCVyWazacGCBUpOTnZ3KagiGNlBjeBwOJSenq6uXbu6tHft2lVr1qxxU1UAgMuBsIMa4fDhwyouLlZERIRLe0REhDIzM91UFQDgciDsoEax2Wwuz40xZdoAANZC2EGNEBYWJk9PzzKjOFlZWWVGewAA1kLYQY1gt9sVHx+vJUuWuLQvWbJECQkJbqoKAHA5eLm7AOByGTFihO677z5dd911ateunebMmaO9e/dq6NCh7i4NwEU6fvy4fvvtN+fzXbt2acOGDQoJCVHDhg3dWBmqAi49R40ya9YsTZw4URkZGWrZsqWmTZumm2++2d1lAbhIK1euVMeOHcu0Dxw4UG+88cblLwhVCmEHAABYGufsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAKgRYmJiNH369Eu6jZUrV8pms+n333+/pNsBcH64XQSAGmHdunUKCAhwdxkA3ICwA6Baczgcstvt5+xXt27dy1ANgKqIw1gALruPPvpIcXFx8vPzU2hoqDp37qy8vDx16NBBKSkpLn2Tk5M1aNAg5/OYmBi99NJLGjRokIKDg/Xwww+rXbt2evrpp11ed+jQIXl7e2vFihXO15Uexrr33nt1zz33uPQ/efKkwsLC9Prrr0uSjDGaOHGiGjduLD8/P7Vu3VofffSRy2sWLVqkK6+8Un5+furYsaN279598W8OgEpH2AFwWWVkZOjee+/Vgw8+qC1btmjlypXq3bu3zuc2fZMmTVLLli2Vnp6u559/Xv3799e7777rso73339fERERSkpKKvP6/v3769NPP9Xx48edbV999ZXy8vJ05513SpKee+45vf7665o9e7Y2b96s4cOHa8CAAVq1apUkad++ferdu7e6d++uDRs26KGHHioTuABUDRzGAnBZZWRkqKioSL1791ajRo0kSXFxcee1jltuuUWjRo1yPu/bt6+GDx+ub775RomJiZKkefPmqV+/fvLwKPs7Xbdu3RQQEKAFCxbovvvuc/bv2bOngoKClJeXp6lTp2r58uVq166dJKlx48b65ptv9Pe//11JSUmaPXu2GjdurGnTpslms6lZs2bauHGjXn755Qt6XwBcOozsALisWrdurU6dOikuLk533XWX5s6dq2PHjp3XOq677jqX53Xr1lWXLl30zjvvSJJ27dqltWvXqn///uW+3tvbW3fddZezf15enj755BNn/19++UUFBQXq0qWLatWq5Xy8+eab2rFjhyRpy5YtuvHGG2Wz2ZzrLQ1GAKoWRnYAXFaenp5asmSJ1qxZo8WLF+uVV17Rs88+q++//14eHh5lDmedPHmyzDrKu6qqf//+evLJJ/XKK69o3rx5uvrqq9W6desz1tG/f38lJSUpKytLS5Yska+vr2699VZJUklJiSTp888/V/369V1e5+PjI0nnddgNgHsxsgPgsrPZbGrfvr1eeOEFrV+/Xna7XQsWLFDdunWVkZHh7FdcXKxNmzZVaJ3JyckqKCjQl19+qXnz5mnAgAFn7Z+QkKDo6Gi9//77euedd3TXXXc5r+q66qqr5OPjo7179+qKK65weURHRzv7fPfddy7rPP05gKqBkR0Al9X333+vZcuWqWvXrgoPD9f333+vQ4cOqUWLFgoICNCIESP0+eefq0mTJpo2bVqFJ+gLCAhQr1699Pzzz2vLli3q16/fWfvbbDb169dPr732mn799VfnVVuSFBgYqFGjRmn48OEqKSnRTTfdpJycHK1Zs0a1atXSwIEDNXToUE2ZMkUjRozQkCFDlJ6erjfeeOMi3hkAlwphB8BlFRQUpK+//lrTp09XTk6OGjVqpClTpujWW2/VyZMn9dNPP+n++++Xl5eXhg8fro4dO1Z43f3799dtt92mm2++WQ0bNqxQ//Hjx6tRo0Zq3769y7I///nPCg8P14QJE7Rz507Vrl1bbdq00TPPPCNJatiwoT7++GMNHz5cs2bN0g033KDx48frwQcfPL83BMAlZzMceAYAABbGOTsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDSCDsAAMDS/j+Rc1RwXwIKvgAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_survived_vs_feature(\"fare\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a11ec0f6-b1f5-4ec7-bd24-73de959e7f74",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a9e6cb91-876d-4f2b-83bd-69b7d2fa08be",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "id": "6cdf21fe-898f-450d-b69a-107c481bc8eb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "3ad17db6-8e44-497c-90b9-e9f4f9e38e8e",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "6db68cc5-3813-4099-8af4-f45cc2efe161",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 152,
+ "id": "d9c75118-e39c-4948-b51e-e64394096df5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAPUlEQVR4nO3de1xVVf7/8ffhdrgomKhcvAAqiqaW2mRihmbYaFpmdkNLa+ph0U0tLbK+QhmkltpkmjiNWWbZlDpljYqWZIM2ZmblLSs0GyHyBoQCAuv3hz/OdAIVETxn0+v5eOyH7rXX3udzNiJv1l57H5sxxggAAMCiPFxdAAAAwLkgzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzAAAAEsjzMAybDZbjZb169dr/fr1stlseuedd+q1pvP1OvVp7969stlsevXVVx1tWVlZSk5O1tGjR6v0j4yM1JAhQ2r1Wjk5OXriiSfUu3dvNWvWTIGBgerZs6fS09NVXl5+xv0PHDig5ORkffnll7V6/bNx7NgxJScna/369fX+WufT4cOHdcstt6hFixay2WwaNmyYq0sCzpmXqwsAamrjxo1O608//bQ+/vhjffTRR07tnTt31hdffHE+S7O0sLAwbdy4Ue3atXO0ZWVlKSUlRWPGjFGTJk3q7LW2bNmi1157TbfffruefPJJeXt761//+pfuvfdebdq0SX//+99Pu/+BAweUkpKiyMhIXXzxxXVWV3WOHTumlJQUSVK/fv3q9bXOp6efflrLly/X3//+d7Vr105NmzZ1dUnAOSPMwDIuu+wyp/XmzZvLw8OjSjvOjt1uP2/nsE+fPvr+++/l7e3taIuPj1dpaaleeuklpaSkqHXr1uelFlcxxqi4uFh+fn4uef1vvvlG7dq108iRI+vkeK5+P4DEZSY0cCdOnNDkyZMVHh6uwMBAXXXVVdq9e3eVfmvXrtWAAQMUGBgof39/9enTR+vWravx6xQXF2vChAkKDQ2Vn5+f4uLitHXr1ir93nvvPfXu3Vv+/v5q3Lix4uPjnUac3nrrLdlsNs2ZM8dpvylTpsjT01MZGRmnrGHixIkKCgpyulzzwAMPyGazacaMGY62Q4cOycPDQy+++KKkqpeZkpOTNXHiRElSVFSU0+W731q1apV69OghPz8/xcTEnHFURZIuuOACpyBT6dJLL5Uk/fTTT6fcd/369frTn/4kSbrjjjscdSUnJzv6fP7557r22mvVtGlT+fr6qnv37nr77bedjvPLL78oMTFRnTt3VqNGjdSiRQtdeeWV2rBhg6PP3r171bx5c0lSSkqK47XGjBkjSRozZowiIyOr1JicnCybzebUZrPZdP/99+vll19Wp06dZLfbtWjRIknSnj17lJCQoBYtWshut6tTp0566aWXnPavqKjQ1KlT1bFjR/n5+alJkybq1q2bXnjhhVOeq+pUfp3Xrl2rnTt3Vvm6Hj58WImJiWrZsqV8fHzUtm1bTZ48WSUlJTV+P9VZunSpBg4cqLCwMPn5+alTp0567LHHVFRUVKXvggUL1KFDB9ntdnXu3FlLliyp9lyXlpZq6tSpiomJkd1uV/PmzXXHHXfol19+OatzggbEABY1evRoExAQUO22jz/+2EgykZGRZuTIkeaDDz4wb775pmnTpo2Jjo42ZWVljr6vv/66sdlsZtiwYWbZsmXm/fffN0OGDDGenp5m7dq1p62h8nVat25trrvuOvP++++bxYsXm/bt25vAwEDz/fffO/q+8cYbRpIZOHCgWbFihVm6dKnp2bOn8fHxMRs2bHD0u+eee4yPj4/ZvHmzMcaYdevWGQ8PD/PEE0+ctpZVq1YZSSYrK8vRFhMTY/z8/Ex8fLyjbenSpUaS2bFjhzHGmOzsbCPJLFy40BhjzP79+80DDzxgJJlly5aZjRs3mo0bN5r8/HxjjDERERGmVatWpnPnzua1114zq1evNjfeeKORZDIzM09b46mMHj3aeHl5mYMHD56yT35+vlm4cKGRZJ544glHXfv37zfGGPPRRx8ZHx8f07dvX7N06VKzatUqM2bMGKf3Zowxu3btMvfee6956623zPr1683KlSvNX/7yF+Ph4WE+/vhjY4wxxcXFjvP5l7/8xfFa3333naPeiIiIKjVOmTLF/P6/VUmmZcuWplu3bmbJkiXmo48+Mt98843Zvn27CQoKMl27djWvvfaaWbNmjXn44YeNh4eHSU5OduyflpZmPD09zZQpU8y6devMqlWrzOzZs5361ERxcbHZuHGj6d69u2nbtq3T1/X48eOmW7duJiAgwDz33HNmzZo15sknnzReXl5m8ODBNXo/p/L000+bWbNmmQ8++MCsX7/evPzyyyYqKsr079/fqd/8+fONJHPDDTeYlStXmjfeeMN06NDBREREOJ3r8vJy8+c//9kEBASYlJQUk5GRYf72t7+Zli1bms6dO5tjx46d1XlBw0CYgWXVJMz8/j/it99+20gyGzduNMYYU1RUZJo2bWqGDh3q1K+8vNxcdNFF5tJLLz1tDZWv06NHD1NRUeFo37t3r/H29jZ33XWX43jh4eGma9eupry83NGvsLDQtGjRwsTGxjraiouLTffu3U1UVJTZsWOHCQkJMXFxcU4BrDpFRUXGx8fHPPXUU8YYY3766ScjyTz66KPGz8/PFBcXG2OMufvuu014eLhjv9+HGWOMmTFjhpFksrOzq7xORESE8fX1Nfv27XO0HT9+3DRt2tSMHTv2tDVWZ/Xq1cbDw8OMHz/+jH03b95cpdZKMTExpnv37ubEiRNO7UOGDDFhYWFO5/23ysrKzIkTJ8yAAQPM9ddf72j/5ZdfjCQzZcqUKvucbZgJCgoyhw8fdmq/+uqrTatWrRwhsdL9999vfH19Hf2HDBliLr744mprr424uDhz4YUXOrW9/PLLRpJ5++23ndqnTZtmJJk1a9ac8f3UREVFhTlx4oTJzMw0ksy2bduMMSe/P0JDQ02vXr2c+u/bt894e3s7nes333zTSDLvvvuuU9/Kfxtz584967pgfVxmQoN27bXXOq1369ZNkrRv3z5JJye6Hj58WKNHj1ZZWZljqaio0J///Gdt3ry52uHw30tISHC6vBAREaHY2Fh9/PHHkqTdu3frwIEDuu222+Th8b9vu0aNGumGG27Qpk2bdOzYMUkn57C8/fbbOnTokHr06CFjjN588015enqetgZ/f3/17t1ba9eulSRlZGSoSZMmmjhxokpLS/Xpp59KOnlJ7aqrrjrjezqdiy++WG3atHGs+/r6qkOHDo7zWlNffPGFbrrpJl122WVKS0urdT3fffeddu3a5ZgH8tuv5eDBg5WTk+N0efHll19Wjx495OvrKy8vL3l7e2vdunXauXNnrWs4nSuvvFIXXHCBY724uFjr1q3T9ddfL39//yr1FhcXa9OmTZJOXoLbtm2bEhMTtXr1ahUUFNR5fR999JECAgI0YsQIp/bKy2q/v+T6+/dzOj/88IMSEhIUGhoqT09PeXt7Ky4uTpIc53v37t3Kzc3VTTfd5LRvmzZt1KdPH6e2lStXqkmTJho6dKjTebv44osVGhra4O4+Q80QZtCgBQcHO63b7XZJ0vHjxyVJP//8syRpxIgR8vb2dlqmTZsmY4wOHz58xtcJDQ2ttu3QoUOS5PgzLCysSr/w8HBVVFToyJEjjrb27durb9++Ki4u1siRI6vdrzpXXXWVNm3apKKiIq1du1ZXXnmlgoOD1bNnT61du1bZ2dnKzs4+5zDz+/MqnTy3lee1JrZu3ar4+HhFR0frww8/dHxtaqPy6/jII49U+TomJiZKkg4ePChJmjlzpu6991716tVL7777rjZt2qTNmzfrz3/+81nVfzZ+//U7dOiQysrK9OKLL1apd/DgwU71JiUl6bnnntOmTZs0aNAgBQcHa8CAAfr888/rrL5Dhw4pNDS0ynyfFi1ayMvLy/Hv91Tv51R+/fVX9e3bV5999pmmTp2q9evXa/PmzVq2bJmk/30fVh4/JCSkyjF+3/bzzz/r6NGj8vHxqXLucnNzHecNfyzczYQ/tGbNmkmSXnzxxVPe0VPdf7C/l5ubW21b5Q/9yj9zcnKq9Dtw4IA8PDycftP929/+pg8++ECXXnqp5syZo5tvvlm9evU6Yx0DBgzQk08+qU8++UTr1q3TlClTHO1r1qxRVFSUY92Vtm7dqquuukoRERFas2aNgoKCzul4lV/HpKQkDR8+vNo+HTt2lCQtXrxY/fr107x585y2FxYW1vj1fH19q0yMlXTKH6S/DwkXXHCBPD09ddttt+m+++6rdp/Kr5WXl5cmTJigCRMm6OjRo1q7dq0ef/xxXX311dq/f7/8/f1rXPepBAcH67PPPpMxxqnWvLw8lZWVOc7vqd7PqXz00Uc6cOCA1q9f7xiNkVTl+UWV3x+VofS3fv+91axZMwUHB2vVqlXVvmbjxo1rVBsaFsIM/tD69OmjJk2aaMeOHbr//vtrfZw333xTEyZMcPwnv2/fPmVlZen222+XdPIHacuWLbVkyRI98sgjjn5FRUV69913HXc4SdLXX3+tBx98ULfffrsWLFig2NhY3Xzzzdq6desZh/YvvfRSBQYGavbs2crNzVV8fLykkyM206ZN09tvv63OnTsrPDz8tMf5/QhWXfryyy911VVXqVWrVsrIyKjx5YrT1dWxY0dFR0dr27ZtSk1NPe0xbDZblVGgr776Shs3bnS6Lfx05yAyMlJ5eXn6+eefHWG3tLRUq1evrtH78Pf3V//+/bV161Z169ZNPj4+NdqvSZMmGjFihP773/9q3Lhx2rt3rzp37lyjfU9nwIABevvtt7VixQpdf/31jvbXXnvNsb02Kv+d//58z58/32m9Y8eOCg0N1dtvv60JEyY42n/88UdlZWU5/XsdMmSI3nrrLZWXl9co4OOPgTCDP7RGjRrpxRdf1OjRo3X48GGNGDFCLVq00C+//KJt27bpl19+qfIbfHXy8vJ0/fXX6+6771Z+fr6mTJkiX19fJSUlSZI8PDw0ffp0jRw5UkOGDNHYsWNVUlKiGTNm6OjRo3r22WclnQw3N910k6KiojR37lz5+Pjo7bffVo8ePXTHHXdoxYoVp63D09NTcXFxev/99xUVFeV4EF6fPn1kt9u1bt06Pfjgg2d8P127dpUkvfDCCxo9erS8vb3VsWPHc/6td/fu3Y5LXM8884z27NmjPXv2OLa3a9fOcUt0ddq1ayc/Pz+98cYb6tSpkxo1aqTw8HCFh4dr/vz5GjRokK6++mqNGTNGLVu21OHDh7Vz50598cUX+sc//iHp5A/Dp59+WlOmTFFcXJx2796tp556SlFRUSorK3O8VuPGjRUREaF//vOfGjBggJo2bapmzZopMjJSN998s/7v//5Pt9xyiyZOnKji4mL99a9/rdFTjCu98MILuvzyy9W3b1/de++9ioyMVGFhob777ju9//77jodBDh06VF26dNEll1yi5s2ba9++fZo9e7YiIiIUHR19Vuf/VG6//Xa99NJLGj16tPbu3auuXbvq008/VWpqqgYPHlzry5KxsbG64IILdM8992jKlCny9vbWG2+8oW3btjn18/DwUEpKisaOHasRI0bozjvv1NGjR5WSkqKwsDCneWa33HKL3njjDQ0ePFgPPfSQLr30Unl7e+unn37Sxx9/rOuuu84pkOEPwsUTkIFaq8ndTP/4xz+c2qu7c8cYYzIzM80111xjmjZtary9vU3Lli3NNddcU2X/U73O66+/bh588EHTvHlzY7fbTd++fc3nn39epf+KFStMr169jK+vrwkICDADBgww//73vx3bR40aZfz9/c327dud9vvHP/5hJJlZs2adth5jjHnhhReMJHP33Xc7tcfHxxtJ5r333qvROUlKSjLh4eHGw8PDSHLcthwREWGuueaaKq8bFxdn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AABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAAABLO6cw891332n16tU6fvy4JMkYUydFAQAA1FStwsyhQ4d01VVXqUOHDho8eLBycnIkSXfddZcefvjhOi0QAADgdGoVZsaPHy8vLy/9+OOP8vf3d7TffPPNWrVqVZ0VBwAAcCZetdlpzZo1Wr16tVq1auXUHh0drX379tVJYQAAADVRq5GZoqIipxGZSgcPHpTdbj/nogAAAGqqVmHmiiuu0GuvveZYt9lsqqio0IwZM9S/f/86Kw4AAOBManWZacaMGerXr58+//xzlZaWatKkSdq+fbsOHz6sf//733VdIwAAwCnVamSmc+fO+uqrr3TppZcqPj5eRUVFGj58uLZu3ap27drVdY0AAACnVOvnzISGhiolJUUrV67Uhx9+qKlTpyosLKzWhaSlpclms2ncuHGONmOMkpOTFR4eLj8/P/Xr10/bt2+v9WsAAICGp1aXmb766qtq2202m3x9fdWmTZuzmgi8efNmpaenq1u3bk7t06dP18yZM/Xqq6+qQ4cOmjp1quLj47V79241bty4NqUDAIAGplZh5uKLL5bNZpP0v6f+Vq5Lkre3t26++WbNnz9fvr6+pz3Wr7/+qpEjR2rBggWaOnWqo90Yo9mzZ2vy5MkaPny4JGnRokUKCQnRkiVLNHbs2NqUDgAAGphaXWZavny5oqOjlZ6erm3btunLL79Uenq6OnbsqCVLluiVV17RRx99pCeeeOKMx7rvvvt0zTXX6KqrrnJqz87OVm5urgYOHOhos9vtiouLU1ZW1imPV1JSooKCAqcFAAA0XLUamXnmmWf0wgsv6Oqrr3a0devWTa1atdKTTz6p//znPwoICNDDDz+s55577pTHeeutt/TFF19o8+bNVbbl5uZKkkJCQpzaQ0JCTvtgvrS0NKWkpJztWwIAABZVq5GZr7/+WhEREVXaIyIi9PXXX0s6eSmq8jObqrN//3499NBDWrx48WkvRf328pV08vLT79t+KykpSfn5+Y5l//79Z3o7AADAwmoVZmJiYvTss8+qtLTU0XbixAk9++yziomJkST997//rTKq8ltbtmxRXl6eevbsKS8vL3l5eSkzM1N//etf5eXl5di3coSmUl5e3mmPa7fbFRgY6LQAAICGq1aXmV566SVde+21atWqlbp16yabzaavvvpK5eXlWrlypSTphx9+UGJi4imPMWDAAMcoTqU77rhDMTExevTRR9W2bVuFhoYqIyND3bt3lySVlpYqMzNT06ZNq03ZcGM//igdPHjux9m50/nPc9WsmdSmTd0cCwBQP2oVZmJjY7V3714tXrxY3377rYwxGjFihBISEhy3TN92222nPUbjxo3VpUsXp7aAgAAFBwc72seNG6fU1FRFR0crOjpaqamp8vf3V0JCQm3Khpv68UepY4xR8fFTXz48W6NG1c1xfP2Mdu+yEWgAwI3VKsxIUqNGjXTFFVcoMjLScbnp448/liRde+21dVLcpEmTdPz4cSUmJurIkSPq1auX1qxZwzNmGpiDB6Xi4zYFD9kq7+Bfz+lYpqxYZfkL5BV0SDavDed0rBOHGunQyu46eJDRGQBwZ7UKMz/88IOuv/56ff3117LZbFUm5ZaXl9eqmPXr1zut22w2JScnKzk5uVbHg7V4B/8qe2gd3ErfKkxS6f9fAAANXa0mAD/00EOKiorSzz//LH9/f33zzTfKzMzUJZdcUiWQAAAA1Kdajcxs3LhRH330kZo3by4PDw95enrq8ssvV1pamh588EFt3bq1rusEAACoVq1GZsrLy9WoUSNJUrNmzXTgwAFJJ58zs3v37rqrDgAA4AxqNTLTpUsXffXVV2rbtq169eql6dOny8fHR+np6Wrbtm1d1wgAAHBKtQozTzzxhIqKiiRJU6dO1ZAhQ9S3b18FBwdr6dKldVogAADA6dQqzPz2M5natm2rHTt26PDhw7rgggtO+1EDAAAAda3Wz5n5vaZNm9bVoQAAAGqsVhOAAQAA3AVhBgAAWFqdXWYCAKA6fJAs6hthBgBQb/ggWZwPhBkAQL3hg2RxPhBmAAD1jg+SRX1iAjAAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0wgwAALA0l4aZefPmqVu3bgoMDFRgYKB69+6tf/3rX47txhglJycrPDxcfn5+6tevn7Zv3+7CigEAgLtxaZhp1aqVnn32WX3++ef6/PPPdeWVV+q6665zBJbp06dr5syZmjNnjjZv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s2fX62usX79eNptNR48erdfXAXD2+DgDAJa3efNmBQQEuLoMAC5CmAHgtkpLS+Xj43PGfs2bNz8P1QBwV1xmAlCn3nnnHXXt2lV+fn4KDg7WVVddpaKiIvXr10/jxo1z6jts2DCNGTPGsR4ZGampU6dqzJgxCgoK0t13363evXvrsccec9rvl19+kbe3tz7++GPHfpWXmW699VbdcsstTv1PnDihZs2aaeHChZIkY4ymT5+utm3bys/PTxdddJHeeecdp30+/PBDdejQQX5+furfv7/27t177icHQL0gzACoMzk5Obr11lt15513aufOnVq/fr2GDx+us/kIuBkzZqhLly7asmWLnnzySY0cOVJvvvmm0zGWLl2qkJAQxcXFVdl/5MiReu+99/Trr7862lavXq2ioiLdcMMNkqQnnnhCCxcu1Lx587R9+3aNHz9eo0aNUmZmpiRp//79Gj58uAYPHqwvv/xSd911V5VABcB9cJkJQJ3JyclRWVmZhg8froiICElS165dz+oYV155pR555BHH+s0336zx48fr008/Vd++fSVJS5YsUUJCgjw8qv4+dvXVVysgIEDLly/Xbbfd5ug/dOhQBQYGqqioSDNnztRHH32k3r17S5Latm2rTz/9VPPnz1dcXJzmzZuntm3batasWbLZbOrYsaO+/vprTZs2rVbnBUD9YmQGQJ256KKLNGDAAHXt2lU33nijFixYoCNHjpzVMS655BKn9ebNmys+Pl5vvPGGJCk7O1sbN27UyJEjq93f29tbN954o6N/UVGR/vnPfzr679ixQ8XFxYqPj1ejRo0cy2uvvabvv/9ekrRz505ddtllstlsjuNWBh8A7oeRGQB1xtPTUxkZGcrKytKaNWv04osvavLkyfrss8/k4eFR5XLTiRMnqhyjuruSRo4cqYceekgvvviilixZogsvvFAXXXTRKesYOXKk4uLilJeXp4yMDPn6+mrQoEGSpIqKCknSBx98oJYtWzrtZ7fbJemsLosBcD1GZgDUKZvNpj59+iglJUVbt26Vj4+Pli9frubNmysnJ8fRr7y8XN98802Njjls2DAVFxdr1apVWrJkiUaNGnXa/rGxsWrdurWWLl2qN954QzfeeKPjrqjOnTvLbrfrxx9/VPv27Z2W1q1bO/ps2rTJ6Zi/XwfgPhiZAVBnPvvsM61bt04DBw5UixYt9Nlnn+mXX35Rp06dFBAQoAkTJuiDDz5Qu3btNGvWrBo/gC4gIEDXXXednnzySe3cuVMJCQmn7W+z2ZSQkKCXX35Z3377reOuJ0lq3LixHnnkEY0fP14VFRW6/PLLVVBQoKysLDVq1EijR4/WPffco+eff14TJkzQ2LFjtWXLFr366qvncGYA1CfCDIA6ExgYqE8++USzZ89WQUGBIiIi9Pzzz2vQoEE6ceKEtm3bpttvv11eXl4aP368+vfvX+Njjxw5Utdcc42uuOIKtWnTpkb9U1NTFRERoT59+jhte/rpp9WiRQulpaXphx9+UJMmTdSjRw89/vjjkqQ2bdro3Xff1fjx4zV37lxdeumlSk1N1Z133nl2JwTAeWEzXBwGAAAWxpwZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaf8PDM+AEf8gZ8gAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#age 中有nan,因此删除nan行\n",
+ "data = data.dropna(subset=['age'])\n",
+ "plot_survived_vs_feature(\"age\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "a315af12-89de-4bba-81a2-7820e3985258",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "id": "12dd5a11-623a-4c05-927e-355508daf357",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XucVXW9//HXG0RG8YLASF5BC/lp/Mp0UksyUPNIZdrFzG6YHMjsTCad0rBj+Ss49qhDJWUkkmApipZ5y9QMNMpjjpdMJS8pKKkwKniHAD+/P9Z3dDPOntkzzNp7Ztb7+Xisx17ru26ftWfP/uz1/a61vooIzMysuPrVOgAzM6stJwIzs4JzIjAzKzgnAjOzgnMiMDMrOCcCM7OCcyLohSR9S9Ivu2lb8yR9pzu21R0k3SdpXDvzF0v695z2PVzSLZJekPQ/eeyjFiRtJelqSc9JuiynfXTbZ9Kqb4taB2BvJOnFksmtgXXAxjT9+epHVD0R8daWcUnfAt4SEZ/uyrYkHQR8G9if7P1bDHwpIp4ss8oU4Glgu9jMG2wkzQNWRMQ3Nmc73eRjwHBgaERs2NyNpUT9y4jYdXO3ZT2Dzwh6oIjYpmUAHgOOKim7qNbx9SI7AOcBI4ERwAvABe0sPwK4f3OTQHeQ1J0/0kYAD3YlCXRzHNZDORH0XltKujBVY9wnqaFlhqSdJf1KUrOkRyV9qYNtDZN0Y9rWzZJGlGzr3ZJuT9UKt0t6dyofImmFpKPS9DaSHpb02dYblzRe0t9Kpn8v6S8l00skHZPGl0k6XNKRwDTgOEkvSvprySZHSPpTivcGScPaOqiIuC4iLouI5yPiZeDHwMFtLZt+wU8Evpb2d7ikfpJOl/QPSc9IWihpSMk6l0l6Kr03t0h6ayqfAnyqZFtXp/KQ9JbSfbZUy0kal97P0yQ9RUpYkj4o6W5JayT9WdLbStY/TdI/0/vwgKTD2jius4AzS97HSem4viFpuaRV6XO0fVp+ZIpzkqTHgD+02t4g4Dpg57S9FyXtnGZ3y2dS0gck3SXpeUmPpzPD0vmfTbE/I+m/Wj4zaV67fzMrIyI89OABWAYc3qrsW8Ba4P1Af+C/gf9N8/oBd5D9828J7Ak8Avxbme3PI/ulfAgwEPgRsCTNGwKsBj5DVo14fJoemuYfATwF7AjMAS4vs4864BVgWNrOU8ATwLbAVmne0NbHm47zl622tRj4B7BXWncxcHaF7+WXW96ndt6L77ReHtg1vTc/AxaUzD8xHcNA4IfA3eW2lcqCrKrrDcsA44ANwHfT9rYC9gNWAQemv/PE9P4MBEYDjwM7p/VHAm8uc1ybvI8p7ofTZ2Mb4NfAL0q2E8CFwCBgqza2N46s2iuvz+Q44P+m9d4GrASOSfP2AV4ExqZtfR9YX/KZafdv5qHMZ7/WAXjo4A9UPhH8vmR6H+CVNH4g8Fir5b8OXFBm+/OAS0qmtyGrT9+NLAH8pdXytwInlEzPAv5G9sU+tJ3j+CPwEeAg4AZgIXAkMB64p63jbf0FlsoWA98omT4Z+F0F7+PbgGeB97SzzDw2TQRLgcNKpndKXzpbtLHu4PQFun1b20plHSWCfwF1JfN/Cny71TYeAN4LvIUsSRwODOjg2Dd5H4GbgJNLpke3HBevJ4I929neONpOBN3ymWxjfz8EfpDGz2TTZLx1et9aPjMV/808vD64/q/3eqpk/GWgLtXnjiA7bV9TMr8/2RdxOY+3jETEi5KeBXZOw/JWyy4HdimZPg/4D2BGRDzTzj5uJn2BpPHVZF9o69J0Z7Q+9m3aWzhVx1wHnBIR7b0PrY0ArpD0aknZRmB4qr6ZDhwL1AMtywwDnuvEPko1R8TaVvufKKmxpGxLsrOAmyV9mewL+K2SrgemRsQTFeyn9d91OVkSGF5S9jid1y2fSUkHAmcDY8iOdyDQcrXTzmz6eX1ZUunnruzfDPhnF46pENxG0Pc8DjwaEYNLhm0j4v3trLNby4ikbciqhJ5Iw4hWy+5O+oeS1J/s1PtC4Aul9d9taEkEh6Txm8kSwXspnwg2u9E2tXf8nuyX9S86ufrjwIRW72VdRPwT+CRwNNkv8u3JfkkDqJ3YXyb7BdviTa3mt17ncWB6q/1vHRELACLi4ogYS/Y3CrJqpUq0/rvuTlYttbKdWNqLsyOd/UxeDFwF7BYR2wOzef19fZKs2gfILo0FhrbaV7m/mZXhRND3/AV4PjUkbiWpv6Qxkt7ZzjrvlzRW0pZkl1veFhGPA78F9pL0SUlbSDqO7JT/mrTetPR6Illd7YUpObTlz2RVEAeQVTfdR/ZldCBwS5l1VgIjJXXpcyppF7LGzp9ExOwubGI2MD0lEyTVSzo6zduW7GzmGbIv9xltxL5nq7K7gU+mv8mRZEmwPXOAkyQdqMyg1JC6raTRkg6VNJCsbv4VXr/EuCMLgFMl7ZES/wzg0qj8qqKVwNCWBuYKdPYzuS3wbESslXQAWdJtcTlwlLKLGLYEzuL1JAHt/82sDCeCPiYiNgJHAfsCj5JdF38+2a/Wci4GvklWh74/2RUvpKqeDwJfIfvC+xrwwYh4WtL+wFTgs2mf3yX7pXh6mbheAu4E7ouIf6XiW4HlEbGqTFwt1QHPSLqzg0Nvy7+TfRl/s+QKlxc7WqnEj8h+md4g6QWyRsgD07wLyapU/gncn+aVmgvsk672+U0qO4Xsb7OG7D3+De2IiCZgMtnVTqvJGnhPSLMHklWfPM3rDfbT3riVNv0c+AVZAn6ULJE0trvGpnH9nSyZPJKOb+cOlu/sZ/Jk4P+l9/xMsvaklm3dl2K9hOzs4AWytpJ1aZH2/mZWhlKDiplZr5POaNYAoyLi0VrH01v5jMDMehVJR0naOt3T8H2yq9aW1Taq3s2JwMx6m6N5/WKGUcAnwlUbm8VVQ2ZmBeczAjOzgusVN5QNGzYsRo4cWeswzMx6lTvuuOPpiKjvaLlekQhGjhxJU1NTrcMwM+tVJLV+MkCbXDVkZlZwTgRmZgXnRGBmVnBOBGZmBedEYGZWcLkmAkmnpi7r7pW0QFJdeuLhbZIeknRpeoKgmRXYggULGDNmDP3792fMmDEsWLCg1iEVSm6JID0C+EtAQ0SMIeuI4hNkT6n8QUSMInui4qS8YjCznm/BggWcccYZzJo1i7Vr1zJr1izOOOMMJ4MqyrtqaAtgq9RL0dZkj409lOyZ4gDzgWNyjsHMerDp06czd+5cxo8fz4ABAxg/fjxz585l+vTptQ6tMHJLBKlHoO8Dj5ElgOfIOrBeU9IBxgo27fbwNZKmSGqS1NTc3JxXmGZWY0uXLmXs2LGblI0dO5alS5fWKKLiybNqaAeypwTuQdbP6CBgQhuLtvnUu4g4LyIaIqKhvr7DO6TNrJfae++9WbJkySZlS5YsYe+9965RRMWTZ9XQ4WT9lDZHxHrg18C7gcGpqgiyvkcr6WzbzPqoM844g0mTJrFo0SLWr1/PokWLmDRpEmeccUatQyuMPJ819BhwkKStyfpTPQxoAhYBHyPram4icGWOMZhZD3f88ccD0NjYyNKlS9l7772ZPn36a+WWv1z7I5B0FnAcsAG4i6wP2V3IksCQVPbpiFhXdiNAQ0ND+KFzZmadI+mOiGjoaLlcnz4aEd8k6xS91CPAAXnu18zMKuc7i83MCs6JwMys4JwIzMwKzonAzKzgnAjMzArOicDMrOCcCArEj/o1s7bkeh+B9Rwtj/qdO3cuY8eOZcmSJUyalD0B3HdwmhVbrncWdxffWbz5xowZw6xZsxg/fvxrZYsWLaKxsZF77723hpGZWV4qvbPYiaAg+vfvz9q1axkwYMBrZevXr6euro6NGzfWMDIzy0ulicBtBAXhR/2aWTlOBAXhR/2aWTluLC4IP+rXzMpxG4GZWR/lNgJ7g8bGRurq6pBEXV0djY2NtQ7JzHoAJ4KCaGxs5Nxzz2Xw4MFIYvDgwZx77rlOBmaWX9WQpNHApSVFewJnAhem8pHAMuDjEbG6vW25amjzDRgwgP79+/Pqq6+yfv16BgwYQL9+/di4cSPr16+vdXhmloOaVw1FxAMRsW9E7AvsD7wMXAGcDtwUEaOAm9K05WzDhg1s2LCBs88+m5deeomzzz77tTIzK7ZqVQ0dBvwjIpYDRwPzU/l84JgqxVB4EyZMYOrUqWy99dZMnTqVCRMm1DokM+sBqpUIPgG0POFseEQ8CZBed2xrBUlTJDVJampubq5SmH3btddey8yZM3n55ZeZOXMm1157ba1DMrMeIPfLRyVtCTwBvDUiVkpaExGDS+avjogd2tuG2wg2X0ubQES81kYg6bU2AzPre2reRlBiAnBnRKxM0ysl7QSQXldVIYbCO+mkk9iwYQNDhgwBYMiQIWzYsIGTTjqpxpGZWa1VIxEcz+vVQgBXARPT+ETgyirEUHizZs3i5JNPZs2aNQCsWbOGk08+mVmzZtU4MjOrtVyrhiRtDTwO7BkRz6WyocBCYHfgMeDYiHi2ve24asjMrPMqrRrK9VlDEfEyMLRV2TNkVxGZmVkP4DuLzcwKzonAzKzgnAjMzArOicDMrODcMU0fJXVtvV7QPYWZdTMngj6q3S90yd/4ZvYaVw2ZmRWcE4GZWcE5EZhZzbkb1dpyIjCzmmpsbGT27NnMmDGDl156iRkzZjB79mwngyrK/THU3cHPGupmbiy2HqSuro4ZM2YwderU18pmzpzJtGnTWLt2bQ0j6/160mOozczKWrduHQ8++OAmVUMPPvgg69atq3VoheFEYGY11a9fP+bMmbNJ1dCcOXPo189fT9Xid9rMakoSrauoIwJ19a5I6zQnAjOrqY0bNzJ58mSmTZvGoEGDmDZtGpMnT2bjxo21Dq0wnAjMrKYGDhzI6NGjWbt2LRHB2rVrGT16NAMHDqx1aIWR6yMmJA0GzgfGAAGcCDwAXAqMBJYBH4+I1XnGYWY91+TJkznttNOArG/t2bNnc9ppp7k/7SrKu6vK+cAfI+J8SVsCWwPTgGcj4mxJpwM7RMRp7W3Hl492M18+aj1MY2Mjc+bMYd26dQwcOJDJkye7P+1uUOnlo7klAknbAX8l6684SsofAMZFxJOSdgIWR8To9rblRNDNnAjMCqEn3EewJ9AMXCDpLknnSxoEDI+IJwHS645trSxpiqQmSU3Nzc05hmlm1SZ1frD85JkItgD2A34aEe8AXgJOr3TliDgvIhoioqG+vj6vGM2sBiLKDKjsPMtPnolgBbAiIm5L05eTJYaVqUqI9LoqxxjMzKwDuSWCiHgKeFxSS/3/YcD9wFXAxFQ2EbgyrxjMzKxjefdQ1ghclK4YegT4HFnyWShpEvAYcGzOMZiZWTtyTQQRcTfQVov1YXnu18zMKuc7i83MCs6JwMys4JwIzMwKzonAzKzgnAjMzArOicDMrOCcCMzMCs6JwMys4JwIzMwKzonAzKzgnAjMzAquw0SgzKclnZmmd5d0QP6hmZlZNVRyRnAu8C7g+DT9AvCT3CIyM7OqquTpowdGxH6S7gKIiNXpsdJmZtYHVHJGsF5SfyAAJNUDr+YalZmZVU0lieAc4ApgR0nTgSXAjFyjMjOzqumwaigiLpJ0B1lnMgKOiYillWxc0jKyNoWNwIaIaJA0BLgUGAksAz4eEau7FL2ZmW22Sq4aGkLWwfwC4GKyzucHdGIf4yNi34ho6ansdOCmiBgF3JSmzcysRiqpGroTaAYeBB5K449KulPS/l3Y59HA/DQ+HzimC9swM7NuUkki+B3w/ogYFhFDgQnAQuBksktL2xPADZLukDQllQ2PiCcB0uuOba0oaYqkJklNzc3NlRyLmZl1QSWJoCEirm+ZiIgbgEMi4n+BgR2se3BE7EeWPL4o6ZBKA4uI8yKiISIa6uvrK13NzMw6qZJE8Kyk0ySNSMPXgNXpktJ2LyONiCfS6yqyK48OIGtj2Akgva7arCMwM7PNUkki+CSwK/Ab4Epg91TWH/h4uZUkDZK0bcs4cARwL3AVMDEtNjFt08zMaqSSy0efBhrLzH64nVWHA1dIatnPxRHxO0m3AwslTQIeA47tXMhmZtadOkwE6U7irwFvBepayiPi0PbWi4hHgLe3Uf4M2T0JZmbWA1RSNXQR8HdgD+AsspvAbs8xJjMzq6JKEsHQiJgLrI+ImyPiROCgnOMyM7MqqeTpo+vT65OSPgA8QdZ4bGZmfUAlieA7krYHvgLMArYDTs01KjMzq5pKrhq6Jo0+B4zPNxwzM6s291lsZlZwTgRmZgVXNhFIOiW9Hly9cMzMrNraOyP4XHqdVY1AzMysNtprLF6aehirl3RPSbmAiIi35RqZmZlVRdlEEBHHS3oTcD3woeqFZGZm1dTu5aMR8RTwdklbAnul4gciYn07q5mZWS9SyUPn3gtcSPaMIQG7SZoYEbfkHJuZmVVBJXcWzwSOiIgHACTtRdaRfVf6KzYzsx6mkvsIBrQkAYCIeBAYkF9IZmZWTZUkgiZJcyWNS8Mc4I5KdyCpv6S7JF2TpveQdJukhyRdmtofzMysRipJBF8A7gO+BJwC3A+c1Il9nAIsLZn+LvCDiBgFrAYmdWJbZmbWzTpMBBGxLiJmRsRHIuLDEfGDiFhXycYl7Qp8ADg/TQs4FLg8LTIfOKZroZuZWXfI+1lDPyTr5vLVND0UWBMRG9L0CmCXnGMwM7N25JYIJH0QWBURpe0JamPRKLP+FElNkpqam5tzidHMzDqZCCT1k7RdhYsfDHwoPabiErIqoR8CgyW1XLa6K1mPZ28QEedFRENENNTX13cmTDMz64QOE4GkiyVtJ2kQWUPxA5K+2tF6EfH1iNg1IkYCnwD+EBGfAhYBH0uLTQSu7HL0xsg3rUWicwPRqeVHvmltrQ/TzHJUyRnBPhHxPFmj7m+B3YHPbMY+TwOmSnqYrM1g7mZsq/CWr6wjsq/23IblK+tqfZhmlqNK7iweIGkAWSL4cUSsl9RmvX45EbEYWJzGHwEO6GScZmaWk0rOCH5G9pyhQcAtkkYAz+cZlJmZVU8lndefA5xTUrRckjuxNzPrIyppLB6eHjFxXZreh6yR18zM+oBKqobmkXVOs3OafhD4cl4BmZlZdVWSCIZFxELS3cHpruCNuUZlZmZVU0kieEnSUNIdwJIOAp7LNSoz6/V8j0vvUcnlo1OBq4A3S/oTUM/rN4SZmbWp5R6XPGllp65ktzIquWroztRd5WiyZwW5z2Izsz6kkj6LP9uqaD9JRMSFOcVkZmZVVEnV0DtLxuuAw4A7yTq0NzOzXq6SqqHG0mlJ2wO/yC0iMzOrqq70R/AyMKq7AzEzs9qopI3gal7vPKYfsA+wMM+gzMyseippI/h+yfgGYHlErMgpHjMzq7JK2ghurkYgZmZWG2UTgaQXaLs/YQEREZV2WWlmZj1Y2UQQEdtuzoYl1QG3AAPTfi6PiG9K2oOsD+MhZJehfiYi/rU5+zIzs66r+KohSTtK2r1lqGCVdcChEfF2YF/gyPScou8CP4iIUcBqYFJXAjczs+5RSX8EH5L0EPAocDNZb2XXdbReZF5MkwPSEMChwOWpfD5ZF5hmZlYjlZwRfBs4CHgwIvYgu7P4T5VsXFJ/SXcDq4AbgX8Aa9KjrAFWALuUWXeKpCZJTc3NzZXszszMuqCSRLA+Ip4B+knqFxGLyKp6OhQRGyNiX2BXsg7r925rsTLrnhcRDRHRUF9fX8nuzMysCyq5j2CNpG3IGn4vkrSK7H6CikXEGkmLyc4sBkvaIp0V7Ao80cmYzcysG1VyRnA08ApwKvA7suqdozpaSVK9pMFpfCvgcGApsIjX+zOYCFzZ+bDNzKy7tHcfwY+BiyPizyXF8zux7Z2A+ZL6kyWchRFxjaT7gUskfQe4C5jbhbjNzKybtFc19BDwP5J2Ai4FFkTE3ZVuOCLuAd7RRvkjZO0F1k3UdjOLWc35s9k7lK0aiogfRcS7gPcCzwIXSFoq6UxJe1UtQutQZD295jaYdZU/m71Dh20EEbE8Ir4bEe8APgl8mKyu38zM+oBKbigbIOkoSReR3Uj2IPDR3CMzM7OqaK+x+H3A8cAHgL+QPR9oSkS8VKXYzMysCtprLJ4GXAz8Z0Q8W6V4zMysytp7+uj4agZiZma10ZU+i83MrA9xIjAzKzgnAjOzgnMiMDMrOCcCM7OCcyIwMys4JwIzs4JzIjAzKzgnAjOzgnMiMDMruNwSgaTdJC1KfRjcJ+mUVD5E0o2SHkqvO+QVg5mZdSzPM4INwFciYm+yTuu/KGkf4HTgpogYBdyUpq2LRgxfm3PXH8GI4WtrfZhmlqP2nj66WSLiSeDJNP6CpKXALsDRwLi02HxgMXBaXnH0dcuequv8ShJEZ7oQ7MI+zKzXqEobgaSRZP0X3wYMT0miJVnsWGadKZKaJDU1NzdXI0wzs0LKPRFI2gb4FfDliHi+0vUi4ryIaIiIhvr6+vwCNDMruFwTgaQBZEngooj4dSpeKWmnNH8nYFWeMZiZWfvyvGpIwFxgaUTMLJl1FTAxjU8ErswrBjOrHV/I0Hvk1lgMHAx8BvibpLtT2TTgbGChpEnAY8CxOcZgZjXiCxl6jzyvGloCqMzsw/Lar5mZdY7vLDYzKzgnAjOzgnMiMDMrOCcCM7OCcyIwMys4JwIzs4JzIjAzKzgnAjOzgnMiMDMrOCcCM7OCcyIwMys4JwIzs4JzIjAzKzgnAjOzgnMiMDMrOCcCM7OCy7Oryp9LWiXp3pKyIZJulPRQet0hr/2bmVll8jwjmAcc2arsdOCmiBgF3JSmzcyshnJLBBFxC/Bsq+KjgflpfD5wTF77NzOzylS7jWB4RDwJkF53LLegpCmSmiQ1NTc3Vy1AM7Oi6bGNxRFxXkQ0RERDfX19rcMxM+uzqp0IVkraCSC9rqry/s3MrJVqJ4KrgIlpfCJwZZX3b2ZmreR5+egC4FZgtKQVkiYBZwPvk/QQ8L40bWZmNbRFXhuOiOPLzDosr32amVnn9djGYjMzqw4nAjOzgnMiMDMrOCcCM7OCcyIwMys4JwIzs4JzIjAzKzgnAjOzgnMiMDMrOCcCM7OCcyIwMys4JwIzs4JzIjAzKzgnAjOzgnMiMDMrOCcCM7OCq0kikHSkpAckPSzp9FrE0NdJ7QxE2XlmVjxVTwSS+gM/ASYA+wDHS9qn2nH0dRFdG8yseGpxRnAA8HBEPBIR/wIuAY6uQRxmViM+W+1ZapEIdgEeL5lekco2IWmKpCZJTc3NzVULzszy57PVnqUWiaCt3P6GP3NEnBcRDRHRUF9fX4WwzMyKqRaJYAWwW8n0rsATNYjDzMyoTSK4HRglaQ9JWwKfAK6qQRxmZgZsUe0dRsQGSf8BXA/0B34eEfdVOw4zM8tUPREARMRvgd/WYt9mZrYp31lsZlZwTgRmZgXnRGBmVnCKXnCnhqRmYHmt4+hDhgFP1zoIszb4s9m9RkREhzdi9YpEYN1LUlNENNQ6DrPW/NmsDVcNmZkVnBOBmVnBOREU03m1DsCsDH82a8BtBGZmBeczAjOzgnMiMDMrOCeCAnFf0dZTSfq5pFWS7q11LEXkRFAQ7ivaerh5wJG1DqKonAiKw31FW48VEbcAz9Y6jqJyIiiOivqKNrPicSIojor6ijaz4nEiKA73FW1mbXIiKA73FW1mbXIiKIiI2AC09BW9FFjovqKtp5C0ALgVGC1phaRJtY6pSPyICTOzgvMZgZlZwTkRmJkVnBOBmVnBORGYmRWcE4GZWcE5EVi3kbRR0t0lw8gubGOwpJO7P7qukfQ9SfdJ+l6r8nGS3l0yPU/Sx6ofYXmSGiSd003bWiZpWHdsy3qeLWodgPUpr0TEvpu5jcHAycC5nVlJUv+I2LiZ+27L54H6iFjXqnwc8CLw5xz2WTFJW6R7RN4gIpqApiqHZL2QzwgsV5L6p1/Vt0u6R9LnU/k2km6SdKekv0lqeRLq2cCb0xnF99Iv72tKtvdjSSek8WWSzpS0BDhW0psl/U7SHZL+KOn/pOWOlXSvpL9KuqWNGJX2dW+K5bhUfhUwCLitpSyVjwROAk5Ncb4nzTpE0p8lPVJ6diDpqyXHf1aZ92heyf5PTeWLJTWk8WGSlqXxEyRdJulq4AZJl0p6f8n25kn6aMt7J6lfeq8GlyzzsKThkuol/SrFd7ukg9P8oZJukHSXpJ/R9rOqrK+ICA8eumUANgJ3p+GKVDYF+EYaH0j2C3UPsrPR7VL5MOBhsi+bkcC9JdscB1xTMv1j4IQ0vgz4Wsm8m4BRafxA4A9p/G/ALml8cBtxfxS4EegPDAceA3ZK814sc6zfAv6zZHoecBnZj6t9yB75DXAEWYfsSvOuAQ5pta39gRtLpgen18VAQ8l7tCyNn0D27KghafrDwPw0viXZU2a3Kn3vgB8Bnyt5b36fxi8Gxqbx3YGlafwc4Mw0/gGyBxQOq/VnzEM+g6uGrDu1VTV0BPC2kl/I2wOjyL7IZkg6BHiV7JHYw7uwz0shO8MA3g1cJr3243Vgev0TME/SQuDXbWxjLLAgsqqllZJuBt5J55/F9JuIeBW4X1LLsRyRhrvS9DZkx196ZvIIsKekWcC1wA0V7OvGiGh5fv91wDmSBpJ17nJLRLxS8j5A9j6dCVxA9pypS1P54cA+JctuJ2lb4BDgIwARca2k1RXEZL2UE4HlTUBjRFy/SWFWvVMP7B8R61O1R10b629g0yrM1su8lF77AWvaSERExEmSDiT7ZXu3pH0j4plWMXaH0nYElbz+d0T8rNxKEbFa0tuBfwO+CHwcOJFNj73ccRMRayUtTusfByxoYze3Am+RVA8cA3wnlfcD3hURr5QunBKDnz9TEG4jsLxdD3xB0gAASXtJGkR2ZrAqJYHxwIi0/AvAtiXrLyf7xTpQ0vbAYW3tJCKeBx6VdGzaj9KXK5LeHBG3RcSZwNNs+jhuyH6dH5fq6uvJfg3/pYPjah1ne8d/YjpjQdIuknYsXSBdjdMvIn4F/BewX5q1jKzaCKCjK5IuAT4HvCftcxMREcAVwEyy6p+WRHgD2cMIW2JpSaS3AJ9KZROAHTo6UOv7Pre5AAAA50lEQVS9fEZgeTufrN7/TmU/M5vJfpFeBFwtqYmsTeHvABHxjKQ/KevE/LqI+Gqq0rkHeIjXq1ja8ingp5K+AQwg+3L8K/A9SaPIfp3flMpKXQG8K5UHWbvDUx0c19XA5amRu7HcQhFxg6S9gVvTr+wXgU8Dq0oW2wW4QFLLD7Ovp9fvAwslfQb4Qwfx3ABcCFwVWVekbbmU7HHkJ5SUfQn4iaR7yL4PbiFrCD8LWCDpTuBmsnYT66P89FEzs4Jz1ZCZWcE5EZiZFZwTgZlZwTkRmJkVnBOBmVnBORGYmRWcE4GZWcH9f0ill+lWMi1/AAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "745e2e00-98f8-4001-b630-a52c54527838",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 153,
+ "id": "d0265ec9-b07e-4130-8342-7af34e887797",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " survived \n",
+ " pclass \n",
+ " sex \n",
+ " age \n",
+ " sibsp \n",
+ " parch \n",
+ " fare \n",
+ " embarked \n",
+ " class \n",
+ " who \n",
+ " adult_male \n",
+ " deck \n",
+ " embark_town \n",
+ " alive \n",
+ " alone \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0 \n",
+ " 3 \n",
+ " male \n",
+ " 22.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 7.2500 \n",
+ " S \n",
+ " Third \n",
+ " man \n",
+ " True \n",
+ " NaN \n",
+ " Southampton \n",
+ " no \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 1 \n",
+ " 1 \n",
+ " female \n",
+ " 38.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 71.2833 \n",
+ " C \n",
+ " First \n",
+ " woman \n",
+ " False \n",
+ " C \n",
+ " Cherbourg \n",
+ " yes \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 1 \n",
+ " 3 \n",
+ " female \n",
+ " 26.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 7.9250 \n",
+ " S \n",
+ " Third \n",
+ " woman \n",
+ " False \n",
+ " NaN \n",
+ " Southampton \n",
+ " yes \n",
+ " True \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 1 \n",
+ " 1 \n",
+ " female \n",
+ " 35.0 \n",
+ " 1 \n",
+ " 0 \n",
+ " 53.1000 \n",
+ " S \n",
+ " First \n",
+ " woman \n",
+ " False \n",
+ " C \n",
+ " Southampton \n",
+ " yes \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 3 \n",
+ " male \n",
+ " 35.0 \n",
+ " 0 \n",
+ " 0 \n",
+ " 8.0500 \n",
+ " S \n",
+ " Third \n",
+ " man \n",
+ " True \n",
+ " NaN \n",
+ " Southampton \n",
+ " no \n",
+ " True \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " survived pclass sex age sibsp parch fare embarked class \\\n",
+ "0 0 3 male 22.0 1 0 7.2500 S Third \n",
+ "1 1 1 female 38.0 1 0 71.2833 C First \n",
+ "2 1 3 female 26.0 0 0 7.9250 S Third \n",
+ "3 1 1 female 35.0 1 0 53.1000 S First \n",
+ "4 0 3 male 35.0 0 0 8.0500 S Third \n",
+ "\n",
+ " who adult_male deck embark_town alive alone \n",
+ "0 man True NaN Southampton no False \n",
+ "1 woman False C Cherbourg yes False \n",
+ "2 woman False NaN Southampton yes True \n",
+ "3 woman False C Southampton yes False \n",
+ "4 man True NaN Southampton no True "
+ ]
+ },
+ "execution_count": 153,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data = sns.load_dataset(\"titanic\")\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 182,
+ "id": "c12388be-bddf-40d6-a91a-2ec111d975d6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df1 = data[data[\"pclass\"] == 1]\n",
+ "df2 = data[data[\"pclass\"] == 2]\n",
+ "df3 = data[data[\"pclass\"] == 3]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 183,
+ "id": "42155529-a456-45a7-9196-783c5c96086f",
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "df1 = df1.groupby(\"embarked\").count()[\"pclass\"]\n",
+ "df2 = df2.groupby(\"embarked\").count()[\"pclass\"]\n",
+ "df3 = df3.groupby(\"embarked\").count()[\"pclass\"]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 194,
+ "id": "ab81d4a4-f290-42df-9e83-50822ba21a8c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "embarked\n",
+ "C 66\n",
+ "Q 72\n",
+ "S 353\n",
+ "Name: pclass, dtype: int64"
+ ]
+ },
+ "execution_count": 194,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 196,
+ "id": "0b5364cc-b391-47ef-9fa2-de4565049b00",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJ+0lEQVR4nO3deVhV5d7/8c+WYQuIKCCTIpKzomZahlaOqORUalaeU1ra4HhIPfaopTQo6SnNRxMbnLIcmtQmTcyhPGqhZWbZYEcNTyDmAIoIiPfvj37spy2giODG1ft1Xeuqfa97r/Vdw958XNO2GWOMAAAALKqSqwsAAAAoT4QdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYSdYixevFg2m02VK1fWoUOHCo3v0KGDoqKiXFCZtHnzZtlsNr3zzjsumf/lOnjwoHr06CF/f3/ZbDbFxcW5uqQrUrD+N2/eXGbTrCjryGazKT4+3vG64HNw8OBBp35PPPGEateuLXd3d1WrVk2SlJubq0cffVShoaFyc3PT9ddff9Xqvlzbtm1TfHy8Tp48WaL+gwcPVpUqVS7Zr0OHDurQocOVFVfEvOvUqVOm0yxq+10N5bF+rtTBgwdls9n0/PPPl+t8Cr43ihsWL15cZvMq6f5aVurUqaOePXuW6zzi4+Nls9lK/X73MqzFknJycvTEE09o6dKlri7lmvXYY4/piy++0MKFCxUSEqLQ0FBXl1ThVNR11KNHD23fvt2pnjVr1mjq1KmaNGmSYmNjZbfbJUmJiYl6+eWXNWfOHLVq1eqqftlerm3btumpp57S4MGDy/SP/bx588psWuWluO2Hq2PatGnq2LFjofa6deu6oJq/DsLOJXTv3l3Lli3TuHHj1KJFC1eXc1VlZ2ercuXKV5SmJWnv3r266aabdMcdd5RNYRZU1usoPz9f586du+I/ZDVq1FCNGjWc2vbu3StJGj16tIKCgpzavby8NHLkyCua55+dOXNG3t7eZTa98takSRNXl3BJxW0/XB3169fXzTff7OoyysS19PnkNNYljB8/XgEBAXr88ccv2q/gUGhRhyIvPDVQcDhuz549uuuuu+Tn5yd/f3+NGTNG586d048//qju3bvL19dXderU0YwZM4qc59mzZzVmzBiFhITIy8tL7du319dff12o386dO9W7d2/5+/urcuXKatmypd566y2nPgWnK9avX68HH3xQNWrUkLe3t3Jycopd5l9//VV///vfFRQUJLvdrsaNG+uFF17Q+fPnJf3fYdv9+/dr7dq1jsO1F54SuXBdjRw5Ui+//LIaNGggu92uJk2aaMWKFYX6pqWl6ZFHHlGtWrXk6empyMhIPfXUUzp37pxTv+PHj2v48OGqWbOmPD09dd1112nSpEmFlu1y5l2UkqznC11qHV1qHUv/t+/NmDFDzz77rCIjI2W327Vp06Zi55uZmamHHnpIAQEBqlKlirp3766ffvqpUL8LT2PVqVNHTzzxhCQpODjYsW/bbDa99tprys7OLnRY3hijefPm6frrr5eXl5eqV6+u/v376z//+Y/TvApODX/22Wdq27atvL299eCDDzrqHTdunCIjI+Xp6amaNWsqLi5OWVlZTtMo2IZLly5V48aN5e3trRYtWujDDz909ImPj9c///lPSVJkZKSj3ss9Lfnvf/9bgYGB6tmzp6OOC0/T/PkUycyZMxUZGakqVaooOjpaO3bsKHJ9N2zY0LGtX3/99RLXc/78ec2YMUONGjWS3W5XUFCQ7r//fh0+fNjRp7jtV5yC0yHfffedOnfuLB8fH9WoUUMjR47UmTNnCs1/zpw5ju1crVo13XzzzXr//fcvWvdTTz2lNm3ayN/fX1WrVtUNN9ygBQsW6MLfqN64caM6dOiggIAAeXl5qXbt2urXr59THYmJiWrRooWqVKkiX19fNWrUSBMnTizx+ps6dapq166typUrq3Xr1vr0008d4z///HPZbDYtX7680Htff/112Ww2JScnl2hel1JwWujDDz9Uy5Yt5eXlpcaNGzv248WLF6tx48by8fHRTTfdpJ07dxY5nZJst5deekm33XabgoKC5OPjo2bNmmnGjBnKy8tz6nexz2dR5s2bJ3d3d02ZMsXRtmHDBnXu3FlVq1aVt7e32rVr57SOC3z00Ue6/vrrZbfbFRkZWTanGA2KtGjRIiPJJCcnm9mzZxtJ5tNPP3WMb9++vWnatKnj9YEDB4wks2jRokLTkmSmTJnieD1lyhQjyTRs2NA888wzJikpyYwfP95IMiNHjjSNGjUy//u//2uSkpLMAw88YCSZd9991/H+TZs2GUkmPDzc9OnTx3zwwQfmjTfeMPXq1TNV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7N+/f6HP8fTp02WM0fHjx3XixAmdP3++1J+Di+FurBKy2WyaPn26YmJi9MorrxQaXxBQLrzo9Uq+ZC4lLS2tyLaCHTwwMFCSNGHCBPXt27fIaTRs2NDpdUnvvAoICFBqamqh9t9++81p3qVR3HIVzLdg+s2bN9fUqVOLnEZBIAgICNAXX3whY4zTsqWnp+vcuXOF6izJvC9UmvVcEpe7ji9n2507d07Hjh1zWqailv1KBQYGymaz6fPPPy/yj8GFbUUtQ2BgoLy8vLRw4cJi53E1FFz03a1bN3Xp0kXr1q1T9erVy2TaBdvhYvtfSd6fmpqqWrVqOY377bffrmgdXWxfKWirUaOG8vPzlZaWdlmPTVixYoU8PDz04YcfOv0jb/Xq1YX63nrrrbr11luVn5+vnTt3as6cOYqLi1NwcLDuueceSdIDDzygBx54QFlZWfrss880ZcoU9ezZUz/99JMiIiIuWktx697T09PpMQrDhg3Tc889p4ULF+rs2bM6d+6cHn300RIv89VSku22evVqZWVl6b333nNaP7t37y5ymhf7jomOjtZdd92lIUOGSPrjYvFKlf44nlKw/82ZM6fYO9GCg4OVl5cnm81W6s/BxXBk5zJ06dJFMTExevrppx1Jv0BwcLAqV66sPXv2OLWvWbOm3OpZvny50x0Lhw4d0rZt2xx3gzRs2FD169fXN998U+S/JFq3bu10uP9ydO7cWd9//72++uorp/aCuxKKeo5ESX366aeOfwlIf9xGvXLlStWtW9fxRd6zZ0/t3btXdevWLXK5CsJO586ddfr06UJfngV3ufz5UGtJ532h8lrP5bWOC9735ptvOrUvW7asVNO7mJ49e8oYo//+979FrpdmzZqVaBq//PKLAgICipxGaR64d+GRlZJq2bKltmzZosOHD6tDhw6O0yxXqmHDhgoNDS32M30pBacW3njjDaf25ORk7du3r9B+frmK21cKvmsKjnQlJiZe1nRtNpvc3d2dTvFlZ2df9Llmbm5uatOmjePow4WfD0ny8fFRbGysJk2apNzcXH333XeXrOW9995zOjpy6tQpffDBB7r11lud6gsNDdVdd92lefPmaf78+erVq5dq165douW92i613QrCy5//0WGM0auvvlqq+Q0aNEgrVqzQokWLHKfCJKldu3aqVq2avv/++2K/Iz09PR13lxW3La4ER3Yu0/Tp09WqVSulp6c7TplIclyXsHDhQtWtW1ctWrTQl19+WS5/QAqkp6frzjvv1EMPPaSMjAxNmTJFlStX1oQJExx9Xn75ZcXGxqpbt24aPHiwatasqePHj2vfvn366quv9Pbbb5dq3o899phef/119ejRQ08//bQiIiL00Ucfad68eRo2bJgaNGhQ6uUKDAxUp06d9OSTT8rHx0fz5s3TDz/84HQL+NNPP62kpCS1bdtWo0ePVsOGDXX27FkdPHhQH3/8sebPn69atWrp/vvv10svvaRBgwbp4MGDatasmbZu3app06bp9ttvV5cuXS573kUpj/VcXuu4a9euuu222zR+/HhlZWWpdevW+ve//10uD85s166dHn74YT3wwAPauXOnbrvtNvn4+Cg1NVVbt25Vs2bNNGzYsItOIy4uTu+++65uu+02PfbYY2revLnOnz+vX3/9VevXr9fYsWPVpk2by6qrIGTNnj1bgwYNkoeHhxo2bFiiUNq4cWN9/vnn6tKli2677TZt2LCh2CBcUpUqVdIzzzyjoUOHOj7TJ0+eVHx8fIkO3zds2FAPP/yw5syZo0qVKik2NlYHDx7Uk08+qfDwcD322GOlrs3T01MvvPCCTp8+rRtvvFHbtm3Ts88+q9jYWN1yyy2S/jjqct999+nZZ5/VkSNH1LNnT9ntdn399dfy9vbWqFGjipx2jx49NHPmTA0cOFAPP/ywjh07pueff77QEb/58+dr48aN6tGjh2rXrq2zZ886jvQVfIYfeugheXl5qV27dgoNDVVaWpoSEhLk5+enG2+88ZLL6ebmppiYGI0ZM0bnz5/X9OnTlZmZqaeeeqpQ33/84x+OfW7RokUlX5mSfv755yIfO1CrVq0r3o/+rCTbLSYmRp6enrr33ns1fvx4nT17VomJiTpx4kSp59u/f395e3urf//+ys7O1vLly1WlShXNmTNHgwYN0vHjx9W/f38FBQXp6NGj+uabb3T06FFHUH7mmWfUvXt3xcTEaOzYscrPz9f06dPl4+Oj48ePl36FlPrSZov7891YFxo4cKCR5HQ3ljF/3EY8dOhQExwcbHx8fEyvXr3MwYMHi70bqyR3sxhT+M6vgqv6ly5dakaPHm1q1Khh7Ha7ufXWW83OnTsLvf+bb74xAwYMMEFBQcbDw8OEhISYTp06mfnz55doeYtz6NAhM3DgQBMQEGA8PDxMw4YNzb/+9a9Cdx5d7t1YI0aMMPPmzTN169Y1Hh4eplGjRubNN98s1Pfo0aNm9OjRJjIy0nh4eBh/f3/TqlUrM2nSJHP69GlHv2PHjplHH33UhIaGGnd3dxMREWEmTJhQ6Bb4ks67qLuxjCnZei5OceuoJOu44G6Sf/3rX5ecT4GTJ0+aBx980FSrVs14e3ubmJgY88MPP5T53VgFFi5caNq0aWN8fHyMl5eXqVu3rrn//vud9tcL9/M/O336tHniiSdMw4YNjaenp/Hz8zPNmjUzjz32mNPdcwXb8EIRERFm0KBBTm0TJkwwYWFhplKlSkVuz0st2+HDh02jRo1MnTp1HLe1F3c3VlHb5sJ1bYwxr732mqlfv77x9PQ0DRo0MAsXLjSDBg0q0a3n+fn5Zvr06aZBgwbGw8PDBAYGmr///e+Fbi2/3LuxfHx8zJ49e0yHDh2Ml5eX8ff3N8OGDXP6jBXMf9asWSYqKsqxjaKjo80HH3zg6FPU3VgLFy40DRs2NHa73Vx33XUmISHBLFiwwGm/2759u7nzzjtNRESEsdvtJiAgwLRv397pDqQlS5aYjh07muDgYOPp6WnCwsLMgAEDzJ49ey66jAXbaPr06eapp54ytWrVMp6enqZly5bmk08+KfZ9derUMY0bN77kOixwqbux/nwnW3HfB0Xt30XtY5ez3T744APTokULU7lyZVOzZk3zz3/+03HH5p8/Exf7fBZV76ZNm0yVKlVM9+7dHbfFb9myxfTo0cP4+/sbDw8PU7NmTdOjRw+nR3sYY8z7779vmjdv7rh9/rnnnnPst6VlM+aCJzcBLmSz2TRixAjNnTv3LzVvoCIaPHiw3nnnnUKn7f/q9uzZoxYtWuill15y3ISAio3TWAAAlMAvv/yiQ4cOaeLEiQoNDS10qz8qLi5QBgCgBJ555hnFxMTo9OnTevvtt6+Z34WCxGksAABgaRzZAQAAlkbYAQAAlkbYAQAAlsbdWJLOnz+v3377Tb6+viV+5D4AAHAtY4xOnTqlsLAwx89TFIWwoz9+OyY8PNzVZQAAgFJISUm56BOoCTuS4xHxKSkpqlq1qourAQAAJZGZmanw8PBL/tQLYUf/92NoVatWJewAAHCNudQlKFygDAAALI2wAwAALI2wAwAALI1rdi5Dfn6+8vLyXF1GufLw8JCbm5urywAAoMwQdkrAGKO0tDSdPHnS1aVcFdWqVVNISAjPHAIAWAJhpwQKgk5QUJC8vb0tGwKMMTpz5ozS09MlSaGhoS6uCACAK0fYuYT8/HxH0AkICHB1OeXOy8tLkpSenq6goCBOaQEArnlcoHwJBdfoeHt7u7iSq6dgWa1+fRIA4K+BsFNCVj11VZS/0rICAKyPsAMAACyNsAMAACyNC5RLqf+C1Vd1fu8MuaNU70tLS9PUqVP10Ucf6b///a+CgoJ0/fXXKy4uTp07dy7bIgEAqIAIOxZ28OBBtWvXTtWqVdOMGTPUvHlz5eXl6ZNPPtGIESP0ww8/uLpEAADKnUtPYyUmJqp58+aOXxuPjo7W2rVrHeMHDx4sm83mNNx8881O08jJydGoUaMUGBgoHx8f9e7dW4cPH77ai1IhDR8+XDabTV9++aX69++vBg0aqGnTphozZox27Njh6vIAALgqXBp2atWqpeeee047d+7Uzp071alTJ/Xp00ffffedo0/37t2VmprqGD7++GOnacTFxWnVqlVasWKFtm7dqtOnT6tnz57Kz8+/2otToRw/flzr1q3TiBEj5OPjU2h8tWrVrn5RAAC4gEtPY/Xq1cvp9dSpU5WYmKgdO3aoadOmkiS73a6QkJAi35+RkaEFCxZo6dKl6tKliyTpjTfeUHh4uDZs2KBu3bqV7wJUYPv375cxRo0aNXJ1KQAAFwkeusbVJUiSjrzWx6XzrzB3Y+Xn52vFihXKyspSdHS0o33z5s0KCgpSgwYN9NBDDzl+ykCSdu3apby8PHXt2tXRFhYWpqioKG3btu2q1l/RGGMk8cwcAABcfoHyt99+q+joaJ09e1ZVqlTRqlWr1KRJE0lSbGys7rrrLkVEROjAgQN68skn1alTJ+3atUt2u11paWny9PRU9erVnaYZHBystLS0YueZk5OjnJwcx+vMzMzyWTgXql+/vmw2m/bt26c77rjD1eUAAOAyLj+y07BhQ+3evVs7duzQsGHDNGjQIH3//feSpLvvvls9evRQVFSUevXqpbVr1+qnn37SRx99dNFpGmMuekQjISFBfn5+jiE8PLxMl6ki8Pf3V7du3fTSSy8pKyur0Pi/yi+4AwDg8rDj6empevXqqXXr1kpISFCLFi00e/bsIvuGhoYqIiJCP//8syQpJCREubm5OnHihFO/9PR0BQcHFzvPCRMmKCMjwzGkpKSU3QJVIPPmzVN+fr5uuukmvfvuu/r555+1b98+/e///q/TqUIAAKzM5WHnQsYYp1NMf3bs2DGlpKQoNDRUktSqVSt5eHgoKSnJ0Sc1NVV79+5V27Zti52H3W533O5eMFhRZGSkvvrqK3Xs2FFjx45VVFSUYmJi9OmnnyoxMdHV5QEAcFW49JqdiRMnKjY2VuHh4Tp16pRWrFihzZs3a926dTp9+rTi4+PVr18/hYaG6uDBg5o4caICAwN15513SpL8/Pw0ZMgQjR07VgEBAfL399e4cePUrFkzx91Z5aW0TzS+2kJDQzV37lzNnTvX1aUAAOASLg07R44c0X333afU1FT5+fmpefPmWrdunWJiYpSdna1vv/1Wr7/+uk6ePKnQ0FB17NhRK1eulK+vr2Mas2bNkru7uwYMGKDs7Gx17txZixcvlpubmwuXDAAAVBQuDTsLFiwodpyXl5c++eSTS06jcuXKmjNnjubMmVOWpQEAAIuocNfsAAAAlCXCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDSXPlTwWvb40DVXdX7TX+tTqvelpKQoPj5ea9eu1e+//67Q0FDdcccdmjx5sgICAsq4SgAAKh6O7FjYf/7zH7Vu3Vo//fSTli9frv3792v+/Pn69NNPFR0drePHj7u6RAAAyh1HdixsxIgR8vT01Pr16+Xl5SVJql27tlq2bKm6detq0qRJ/Po5AMDyOLJjUcePH9cnn3yi4cOHO4JOgZCQEP3tb3/TypUrZYxxUYUAAFwdhB2L+vnnn2WMUePGjYsc37hxY504cUJHjx69ypUBAHB1EXb+ogqO6Hh6erq4EgAAyhdhx6Lq1asnm82m77//vsjxP/zwg2rUqKFq1apd3cIAALjKCDsWFRAQoJiYGM2bN0/Z2dlO49LS0vTmm29q8ODBrikOAICriLBjYXPnzlVOTo66deumzz77TCkpKVq3bp1iYmLUoEEDTZ482dUlAgBQ7gg7Fla/fn0lJyfruuuu04ABAxQREaHY2Fg1aNBA//73v1WlShVXlwgAQLnjOTulVNonGl9tderU0eLFix2vp0yZopkzZ+qbb75RdHS06woDAOAqIez8xTz11FOqU6eOvvjiC7Vp00aVKnFwDwBgbYSdv6AHHnjA1SUAAHDV8M96AABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaTxUsJSCh665qvM7Uoqfp0hPT9eTTz6ptWvX6siRI6pevbpatGih+Ph4fioCAPCXQdixsH79+ikvL09LlizRddddpyNHjujTTz/V8ePHXV0aAABXDWHHok6ePKmtW7dq8+bNat++vSQpIiJCN910k4srAwDg6uKaHYuqUqWKqlSpotWrVysnJ8fV5QAA4DKEHYtyd3fX4sWLtWTJElWrVk3t2rXTxIkTtWfPHleXBgDAVUXYsbB+/frpt99+0/vvv69u3bpp8+bNuuGGG7R48WJXlwYAwFVD2LG4ypUrKyYmRpMnT9a2bds0ePBgTZkyxdVlAQBw1RB2/mKaNGmirKwsV5cBAMBVw91YFnXs2DHdddddevDBB9W8eXP5+vpq586dmjFjhvr0ufxn9gAAcK0i7FhUlSpV1KZNG82aNUu//PKL8vLyFB4eroceekgTJ050dXkAAFw1Lg07iYmJSkxM1MGDByVJTZs21eTJkxUbGytJMsboqaee0iuvvKITJ06oTZs2eumll9S0aVPHNHJycjRu3DgtX75c2dnZ6ty5s+bNm6datWqVa+2leaLx1WS325WQkKCEhARXlwIAgEu59JqdWrVq6bnnntPOnTu1c+dOderUSX369NF3330nSZoxY4ZmzpypuXPnKjk5WSEhIYqJidGpU6cc04iLi9OqVau0YsUKbd26VadPn1bPnj2Vn5/vqsUCAAAViEvDTq9evXT77berQYMGatCggaZOnaoqVapox44dMsboxRdf1KRJk9S3b19FRUVpyZIlOnPmjJYtWyZJysjI0IIFC/TCCy+oS5cuatmypd544w19++232rBhgysXDQAAVBAV5m6s/Px8rVixQllZWYqOjtaBAweUlpamrl27OvrY7Xa1b99e27ZtkyTt2rVLeXl5Tn3CwsIUFRXl6AMAAP7aXH6B8rfffqvo6GidPXtWVapU0apVq9SkSRNHWAkODnbqHxwcrEOHDkmS0tLS5OnpqerVqxfqk5aWVuw8c3JynH5CITMzs6wWBwAAVDAuP7LTsGFD7d69Wzt27NCwYcM0aNAgff/9947xNpvNqb8xplDbhS7VJyEhQX5+fo4hPDz8knUaYy7Zxyr+SssKALA+l4cdT09P1atXT61bt1ZCQoJatGih2bNnKyQkRJIKHaFJT093HO0JCQlRbm6uTpw4UWyfokyYMEEZGRmOISUlpdi+Hh4ekqQzZ86UavmuRQXLWrDsAABcy1x+GutCxhjl5OQoMjJSISEhSkpKUsuWLSVJubm52rJli6ZPny5JatWqlTw8PJSUlKQBAwZIklJTU7V3717NmDGj2HnY7XbZ7fYS1ePm5qZq1aopPT1dkuTt7X3JI0vXKmOMzpw5o/T0dFWrVk1ubm6uLgkAgCvm0rAzceJExcbGKjw8XKdOndKKFSu0efNmrVu3TjabTXFxcZo2bZrq16+v+vXra9q0afL29tbAgQMlSX5+fhoyZIjGjh2rgIAA+fv7a9y4cWrWrJm6dOlSZnUWHGUqCDxWV61aNccyAwBwrXNp2Dly5Ijuu+8+paamys/PT82bN9e6desUExMjSRo/fryys7M1fPhwx0MF169fL19fX8c0Zs2aJXd3dw0YMMDxUMHFixeX6VEJm82m0NBQBQUFKS8vr8ymWxF5eHhwRAcAYCk2w9WoyszMlJ+fnzIyMlS1alVXlwMAQJkIHrrG1SVIKr9fHSjp32+XX6AMAABQngg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0lwadhISEnTjjTfK19dXQUFBuuOOO/Tjjz869Rk8eLBsNpvTcPPNNzv1ycnJ0ahRoxQYGCgfHx/17t1bhw8fvpqLAgAAKiiXhp0tW7ZoxIgR2rFjh5KSknTu3Dl17dpVWVlZTv26d++u1NRUx/Dxxx87jY+Li9OqVau0YsUKbd26VadPn1bPnj2Vn59/NRcHAABUQO6unPm6deucXi9atEhBQUHatWuXbrvtNke73W5XSEhIkdPIyMjQggULtHTpUnXp0kWS9MYbbyg8PFwbNmxQt27dym8BAABAhVehrtnJyMiQJPn7+zu1b968WUFBQWrQoIEeeughpaenO8bt2rVLeXl56tq1q6MtLCxMUVFR2rZtW5HzycnJUWZmptMAAACsqcKEHWOMxowZo1tuuUVRUVGO9tjYWL355pvauHGjXnjhBSUnJ6tTp07KycmRJKWlpcnT01PVq1d3ml5wcLDS0tKKnFdCQoL8/PwcQ3h4ePktGAAAcCmXnsb6s5EjR2rPnj3aunWrU/vdd9/t+P+oqCi1bt1aERER+uijj9S3b99ip2eMkc1mK3LchAkTNGbMGMfrzMxMAg8AABZVIY7sjBo1Su+//742bdqkWrVqXbRvaGioIiIi9PPPP0uSQkJClJubqxMnTjj1S09PV3BwcJHTsNvtqlq1qtMAAACsyaVhxxijkSNH6r333tPGjRsVGRl5yfccO3ZMKSkpCg0NlSS1atVKHh4eSkpKcvRJTU3V3r171bZt23KrHQAAXBtcehprxIgRWrZsmdasWSNfX1/HNTZ+fn7y8vLS6dOnFR8fr379+ik0NFQHDx7UxIkTFRgYqDvvvNPRd8iQIRo7dqwCAgLk7++vcePGqVmzZo67swAAwF+XS8NOYmKiJKlDhw5O7YsWLdLgwYPl5uamb7/9Vq+//rpOnjyp0NBQdezYUStXrpSvr6+j/6xZs+Tu7q4BAwYoOztbnTt31uLFi+Xm5nY1FwcAAFRANmOMcXURrpaZmSk/Pz9lZGRw/Q4AwDKCh65xdQmSpCOv9SmX6Zb073eFuEAZAACgvBB2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApRF2AACApbk07CQkJOjGG2+Ur6+vgoKCdMcdd+jHH3906mOMUXx8vMLCwuTl5aUOHTrou+++c+qTk5OjUaNGKTAwUD4+Purdu7cOHz58NRcFAABUUKUKOykpKU5h4ssvv1RcXJxeeeWVy5rOli1bNGLECO3YsUNJSUk6d+6cunbtqqysLEefGTNmaObMmZo7d66Sk5MVEhKimJgYnTp1ytEnLi5Oq1at0ooVK7R161adPn1aPXv2VH5+fmkWDwAAWIjNGGMu90233nqrHn74Yd13331KS0tTw4YN1bRpU/30008aPXq0Jk+eXKpijh49qqCgIG3ZskW33XabjDEKCwtTXFycHn/8cUl/HMUJDg7W9OnT9cgjjygjI0M1atTQ0qVLdffdd0uSfvvtN4WHh+vjjz9Wt27dLjnfzMxM+fn5KSMjQ1WrVi1V7QAAVDTBQ9e4ugRJ0pHX+pTLdEv697tUR3b27t2rm266SZL01ltvKSoqStu2bdOyZcu0ePHiUhUsSRkZGZIkf39/SdKBAweUlpamrl27OvrY7Xa1b99e27ZtkyTt2rVLeXl5Tn3CwsIcNRUlJydHmZmZTgMAALCmUoWdvLw82e12SdKGDRvUu3dvSVKjRo2UmppaqkKMMRozZoxuueUWRUVFSZLS0tIkScHBwU59g4ODHePS0tLk6emp6tWrF9vnQgkJCfLz83MM4eHhpaoZAABUfKUKO02bNtX8+fP1+eefKykpSd27d5f0x+mjgICAUhUycuRI7dmzR8uXLy80zmazOb02xhRqu9DF+kyYMEEZGRmOISUlpVQ1AwCAiq9UYWf69Ol6+eWX1aFDB917771q0aKFJOn99993nN66HKNGjdL777+vTZs2qVatWo72kJAQSSp0hCY9Pd1xtCckJES5ubk6ceJEsX0uZLfbVbVqVacBAABYU6nCTocOHfT777/r999/18KFCx3tDz/8sObPn1/i6RhjNHLkSL333nvauHGjIiMjncZHRkYqJCRESUlJjrbc3Fxt2bJFbdu2lSS1atVKHh4eTn1SU1O1d+9eRx8AAPDX5V6aN2VnZ8sY47hO5tChQ1q1apUaN25corufCowYMULLli3TmjVr5Ovr6ziC4+fnJy8vL9lsNsXFxWnatGmqX7++6tevr2nTpsnb21sDBw509B0yZIjGjh2rgIAA+fv7a9y4cWrWrJm6dOlSmsUDAAAWUqqw06dPH/Xt21ePPvqoTp48qTZt2sjDw0O///67Zs6cqWHDhpVoOomJiZL+OFL0Z4sWLdLgwYMlSePHj1d2draGDx+uEydOqE2bNlq/fr18fX0d/WfNmiV3d3cNGDBA2dnZ6ty5sxYvXiw3N7fSLB4AALCQUj1nJzAwUFu2bFHTpk312muvac6cOfr666/17rvvavLkydq3b1951FpueM4OAMCKeM7OH0p1zc6ZM2ccR1bWr1+vvn37qlKlSrr55pt16NCh0lUMAABQDkoVdurVq6fVq1crJSVFn3zyieOBfunp6RwZAQAAFUqpws7kyZM1btw41alTR23atFF0dLSkP47ytGzZskwLBAAAuBKlukC5f//+uuWWW5Samup4xo4kde7cWXfeeWeZFQcAAHClShV2pD8e5lfw0L8CpXmgIAAAQHkqddhJTk7W22+/rV9//VW5ublO4957770rLgwAAKAslOqanRUrVqhdu3b6/vvvtWrVKuXl5en777/Xxo0b5efnV9Y1AgAAlFqpws60adM0a9Ysffjhh/L09NTs2bO1b98+DRgwQLVr1y7rGgEAAEqtVGHnl19+UY8ePST98aOaWVlZstlseuyxx/TKK6+UaYEAAABXolRhx9/fX6dOnZIk1axZU3v37pUknTx5UmfOnCm76gAAAK5QqS5QvvXWW5WUlKRmzZppwIAB+sc//qGNGzcqKSlJnTt3LusaAQAASq1UYWfu3Lk6e/asJGnChAny8PDQ1q1b1bdvXz355JNlWiAAAMCVKNUPgVoNPwQKALAifgj0DyU+spOZmVnimRMYAABARVHisFOtWjXZbLaL9jHGyGazKT8//4oLAwAAKAslDjubNm0qzzoAAADKRYnDTvv27cuzDgAAgHJRqufsLFq0SG+//Xah9rfffltLliy54qIAAADKSqnCznPPPafAwMBC7UFBQZo2bdoVFwUAAFBWShV2Dh06pMjIyELtERER+vXXX6+4KAAAgLJSqrATFBSkPXv2FGr/5ptvFBAQcMVFAQAAlJVShZ177rlHo0eP1qZNm5Sfn6/8/Hxt3LhR//jHP3TPPfeUdY0AAAClVqqfi3j22Wd16NAhde7cWe7uf0wiPz9fgwYN4podAABQoZQq7Hh6emrlypV69tln9fXXX8vLy0vNmzdXREREWdcHAABwRUoVdiRpwYIFmjVrln7++WdJUv369RUXF6ehQ4eWWXEAAABXqlRh58knn9SsWbM0atQoRUdHS5K2b9+uxx57TAcPHtSzzz5bpkUCAACUVqnCTmJiol599VXde++9jrbevXurefPmGjVqFGEHAABUGKW6Gys/P1+tW7cu1N6qVSudO3fuiosCAAAoK6UKO3//+9+VmJhYqP2VV17R3/72tysuCgAAoKxc0QXK69ev18033yxJ2rFjh1JSUnT//fdrzJgxjn4zZ8688ioBALhGPD50jatLwAVKFXb27t2rG264QZL0yy+/SJJq1KihGjVqaO/evY5+NputDEoEAAAovVKFnU2bNpV1HQAAAOWiVNfsAAAAXCsIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNIIOwAAwNJcGnY+++wz9erVS2FhYbLZbFq9erXT+MGDB8tmszkNBU9sLpCTk6NRo0YpMDBQPj4+6t27tw4fPnwVlwIAAFRkLg07WVlZatGihebOnVtsn+7duys1NdUxfPzxx07j4+LitGrVKq1YsUJbt27V6dOn1bNnT+Xn55d3+QAA4BpQ6t/GKguxsbGKjY29aB+73a6QkJAix2VkZGjBggVaunSpunTpIkl64403FB4erg0bNqhbt25lXjMAALi2VPhrdjZv3qygoCA1aNBADz30kNLT0x3jdu3apby8PHXt2tXRFhYWpqioKG3btq3Yaebk5CgzM9NpAAAA1lShw05sbKzefPNNbdy4US+88IKSk5PVqVMn5eTkSJLS0tLk6emp6tWrO70vODhYaWlpxU43ISFBfn5+jiE8PLxclwMAALiOS09jXcrdd9/t+P+oqCi1bt1aERER+uijj9S3b99i32eMuegvrk+YMEFjxoxxvM7MzCTwAABgURX6yM6FQkNDFRERoZ9//lmSFBISotzcXJ04ccKpX3p6uoKDg4udjt1uV9WqVZ0GAABgTddU2Dl27JhSUlIUGhoqSWrVqpU8PDyUlJTk6JOamqq9e/eqbdu2rioTAABUIC49jXX69Gnt37/f8frAgQPavXu3/P395e/vr/j4ePXr10+hoaE6ePCgJk6cqMDAQN15552SJD8/Pw0ZMkRjx45VQECA/P39NW7cODVr1sxxdxYAAPhrc2nY2blzpzp27Oh4XXAdzaBBg5SYmKhvv/1Wr7/+uk6ePKnQ0FB17NhRK1eulK+vr+M9s2bNkru7uwYMGKDs7Gx17txZixcvlpub21VfHgAAUPHYjDHG1UW4WmZmpvz8/JSRkcH1OwCAK/L40DWuLsFhsasL+P+OvNanXKZb0r/f19Q1OwAAAJeLsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACzN3dUFAABwpfovWO3qEhzqyubqEnABjuwAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLc2nY+eyzz9SrVy+FhYXJZrNp9erVTuONMYqPj1dYWJi8vLzUoUMHfffdd059cnJyNGrUKAUGBsrHx0e9e/fW4cOHr+JSAACAisylYScrK0stWrTQ3Llzixw/Y8YMzZw5U3PnzlVycrJCQkIUExOjU6dOOfrExcVp1apVWrFihbZu3arTp0+rZ8+eys/Pv1qLAQAAKjB3V848NjZWsbGxRY4zxujFF1/UpEmT1LdvX0nSkiVLFBwcrGXLlumRRx5RRkaGFixYoKVLl6pLly6SpDfeeEPh4eHasGGDunXrdtWWBQAAVEwV9pqdAwcOKC0tTV27dnW02e12tW/fXtu2bZMk7dq1S3l5eU59wsLCFBUV5ehTlJycHGVmZjoNAADAmips2ElLS5MkBQcHO7UHBwc7xqWlpcnT01PVq1cvtk9REhIS5Ofn5xjCw8PLuHoAAFBRVNiwU8Bmszm9NsYUarvQpfpMmDBBGRkZjiElJaVMagUAABVPhQ07ISEhklToCE16errjaE9ISIhyc3N14sSJYvsUxW63q2rVqk4DAACwpgobdiIjIxUSEqKkpCRHW25urrZs2aK2bdtKklq1aiUPDw+nPqmpqdq7d6+jDwAA+Gtz6d1Yp0+f1v79+x2vDxw4oN27d8vf31+1a9dWXFycpk2bpvr166t+/fqaNm2avL29NXDgQEmSn5+fhgwZorFjxyogIED+/v4aN26cmjVr5rg7CwAA/LW5NOzs3LlTHTt2dLweM2aMJGnQoEFavHixxo8fr+zsbA0fPlwnTpxQmzZttH79evn6+jreM2vWLLm7u2vAgAHKzs5W586dtXjxYrm5uV315QEAABWPzRhjXF2Eq2VmZsrPz08ZGRlcvwMA16D+C1a7ugSHutsvfhPN1bTY1QX8f0de61Mu0y3p3+8Ke80OAABAWSDsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAAS3PpE5T/CirSg67eGXKHq0sAAOCq48gOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNH4IFABKIHjoGleX4HDktT6uLgG4pnBkBwAAWBphBwAAWBphBwAAWBphBwAAWBphBwAAWBp3Y8EluLMFAHC1cGQHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYWoUOO/Hx8bLZbE5DSEiIY7wxRvHx8QoLC5OXl5c6dOig7777zoUVAwCAiqZChx1Jatq0qVJTUx3Dt99+6xg3Y8YMzZw5U3PnzlVycrJCQkIUExOjU6dOubBiAABQkVT4sOPu7q6QkBDHUKNGDUl/HNV58cUXNWnSJPXt21dRUVFasmSJzpw5o2XLlrm4agAAUFFU+LDz888/KywsTJGRkbrnnnv0n//8R5J04MABpaWlqWvXro6+drtd7du317Zt2y46zZycHGVmZjoNAADAmip02GnTpo1ef/11ffLJJ3r11VeVlpamtm3b6tixY0pLS5MkBQcHO70nODjYMa44CQkJ8vPzcwzh4eHltgwAAMC1KnTYiY2NVb9+/dSsWTN16dJFH330kSRpyZIljj42m83pPcaYQm0XmjBhgjIyMhxDSkpK2RcPAAAqhAoddi7k4+OjZs2a6eeff3bclXXhUZz09PRCR3suZLfbVbVqVacBAABY0zUVdnJycrRv3z6FhoYqMjJSISEhSkpKcozPzc3Vli1b1LZtWxdWCQAAKhJ3VxdwMePGjVOvXr1Uu3Ztpaen69lnn1VmZqYGDRokm82muLg4TZs2TfXr11f9+vU1bdo0eXt7a+DAga4uHQAAVBAVOuwcPnxY9957r37//XfVqFFDN998s3bs2KGIiAhJ0vjx45Wdna3hw4frxIkTatOmjdavXy9fX18XVw4AACqKCh12VqxYcdHxNptN8fHx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GjlypNN79u/fr7feeksffPCB1q1bp927d2vEiBGO8adOndKgQYP0+eefa8eOHapfv75uv/12nTp1ymk6U6ZMUZ8+ffTtt9/qwQcfdBqXkZGhrl27Kjc3V59++qn8/f316quvatKkSZo6dar27dunadOm6cknn9SSJUskSVlZWerZs6caNmyoXbt2KT4+XuPGjSuP1QbgchgAKCeDBg0ybm5uxsfHx2l4+umnjTHGSDJPPPGEo//27duNJLNgwQJH2/Lly03lypUdr6dMmWLc3NxMSkqKo23t2rWmUqVKJjU1tcg6zp07Z3x9fc0HH3zgaJNk4uLinPpt2rTJSDI//PCDadGihenbt6/JyclxjA8PDzfLli1zes8zzzxjoqOjjTHGvPzyy8bf399kZWU5xicmJhpJ5uuvv77k+gJQPrhmB0C56tixoxITE53a/P39Hf/fvHlzx/8HBwdLkpo1a+bUdvbsWWVmZqpq1aqSpNq1a6tWrVqOPtHR0Tp//rx+/PFHhYSEKD09XZMnT9bGjRt15MgR5efn68yZM/r111+d6mjdunWRNXfp0kU33nij3nrrLbm5uUmSjh49qpSUFA0ZMkQPPfSQo++5c+fk5+cnSdq3b59atGghb29vp9oAuBZhB0C58vHxUb169Yod7+Hh4fh/m81WbNv58+eLnUZBn4L/Dh48WEePHtWLL76oiIgI2e12RUdHKzc3t1BtRenRo4feffddff/9947gVTD/V199VW3atHHqXxCIjDHF1gjAdQg7AK45v/76q3777TeFhYVJkrZv365KlSqpQYMGkqTPP/9c8+bN0+233y5JSklJ0e+//17i6T/33HOqUqWKOnfurM2bN6tJkyYKDg5WzZo19Z///Ed/+9vfinxfkyZNtHTpUmVnZ8vLy0uStGPHjitZVABlgLADoFzl5OQoLS3Nqc3d3V2BgYGlnmblypU1aNAgPf/888rMzNTo0aM1YMAAhYSESJLq1aunpUuXqnXr1srMzNQ///lPR/goqeeff175+fnq1KmTNm/erEaNGik+Pl6jR49W1apVFRsbq5ycHO3cuVMnTpzQmDFjNHDgQE2aNElDhgzRE088oYMHD+r5558v9XICKBvcjQWgXK1bt06hoaFOwy233HJF06xXr5769u2r22+/XV27dlVUVJTTLeALFy7UiRMn1LJlS913330aPXq0goKCLns+s2bN0oABA9SpUyf99NNPGjp0qF577TUtXrxYzZo1U/v27bV48WJFRkZKkqpUqaIPPvhA33//vVq2bKlJkyZp+vTpV7SsAK6czXCSGQAAWBhHdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKURdgAAgKX9P9zLbrOJ2BlkAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "categories = [1,2,3]\n",
+ "values1 = df1\n",
+ "values2 = df2\n",
+ "values3 = df3\n",
+ "# 设置条形图的宽度\n",
+ "bar_width = 0.2\n",
+ "\n",
+ "# 计算并列的条形图的横坐标位置\n",
+ "x_data1 = np.arange(len(categories))\n",
+ "x_data2 = x_data1 + bar_width\n",
+ "x_data3 = x_data2 + bar_width\n",
+ "# 创建并列的条形图\n",
+ "\n",
+ "plt.bar(x_data1, values1, width=bar_width, color='#539caf', label='C')\n",
+ "plt.bar(x_data2, values2, width=bar_width, color='#7663b0', label='Q')\n",
+ "plt.bar(x_data3, values3, width=bar_width, color='#1663b0', label='S')\n",
+ "\n",
+ "# 添加标签和标题\n",
+ "plt.xlabel('Embarked')\n",
+ "plt.ylabel('pclass')\n",
+ "plt.title('Number of people for different kind of pclass by Embarked')\n",
+ "plt.xticks(x_data1 + bar_width, categories) # 设置横坐标刻度位置\n",
+ "\n",
+ "# 添加图例\n",
+ "plt.legend()\n",
+ "\n",
+ "# 显示图形\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "58e5cc86-6d81-4970-9b24-91371f623e02",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "f0983a81-48ce-42db-b6ce-13521863ee67",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "7c1d49c4-9a90-420c-a477-cbbb6997e40b",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "pclass 1 2 3\n",
+ "embarked \n",
+ "C 85 17 66\n",
+ "Q 2 3 72\n",
+ "S 127 164 353\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "b80fc143-bf3e-430a-bcd1-f541be6d931f",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 197,
+ "id": "45b29fd1-03dd-460a-a837-df0f0c1dafa4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4KklEQVR4nO3deXgUVd7+/7sTskM6AgkQyAIB2XdklQFZZRsBRcWAoOgzKOJAHrwUlQEUjYoKDgiI44AM+6jEBWVfFAnKLiooIEvmAYZNkhBIIHB+f/hLf2kSIARIncD7dV11aVWdqvp0d5q++9SpapcxxggAAMBCPk4XAAAAcCkEFQAAYC2CCgAAsBZBBQAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVFCqXy5WvadWqVVq1apVcLpc++uijG1pTYR3nRtq7d69cLpemT5/uWbZ27VqNGjVKJ06cyNU+NjZWXbt2LdCxDh48qBdffFHNmjVT6dKlFRoaqoYNG2rq1Kk6d+7cFbc/cOCARo0apS1bthTo+Ffj1KlTGjVqlFatWnXDj1WYjh8/rgcffFARERFyuVzq3r270yXJ5XJp1KhRnvnp06fL5XJpw4YNzhWFm0IxpwvArSU5Odlr/uWXX9bKlSu1YsUKr+U1atTQpk2bCrO0Iq1cuXJKTk5WXFycZ9natWs1evRo9e/fX2FhYdftWBs3btSMGTP08MMPa8SIEfLz89NXX32lJ554QuvWrdM///nPy25/4MABjR49WrGxsapXr951qysvp06d0ujRoyVJrVu3vqHHKkwvv/yyFixYoH/+85+Ki4tTyZIlnS5JycnJqlChgtNl4CZEUEGhatq0qdd8eHi4fHx8ci3H1QkICCi057BFixbavXu3/Pz8PMvat2+vM2fO6N1339Xo0aMVFRVVKLU4xRijzMxMBQUFOXL8H3/8UXFxcYqPj78u+7sej4f3MG4UTv3AemfPntULL7ygyMhIhYaGql27dvrll19ytVu2bJnatm2r0NBQBQcHq0WLFlq+fHm+j5OZmamEhASVLVtWQUFBatWqlTZv3pyr3WeffaZmzZopODhYJUqUUPv27b16iubOnSuXy6WJEyd6bTdy5Ej5+vpq6dKll6zhmWeekdvt9jqFMnjwYLlcLo0dO9az7NixY/Lx8dGECRMk5T71M2rUKD3zzDOSpIoVK3qdUrvQokWL1KBBAwUFBalatWpX7A2RpNtuu80rpORo3LixJOk///nPJbddtWqV7rjjDknSI4884qnrwlMGGzZs0J///GeVLFlSgYGBql+/vubPn++1nyNHjujJJ59UjRo1VLx4cUVERKhNmzb65ptvPG327t2r8PBwSdLo0aM9x+rfv78kqX///oqNjc1V46hRo+RyubyWuVwuPfXUU5oyZYqqV6+ugIAAffjhh5KknTt36qGHHlJERIQCAgJUvXp1vfvuu17bnz9/XmPGjFHVqlUVFBSksLAw1alTR++8884ln6u85LzOy5Yt0/bt23O9rsePH9eTTz6p8uXLy9/fX5UqVdILL7ygrKysfD+evKxYsUKtW7dWqVKlFBQUpOjoaN177706deqU1z4vfB1z/P7773rkkUdUsmRJhYSEqFu3bvrtt9+82mzevFldu3b1PIeRkZHq0qWL199STs3vvfeebr/9dgUEBKhGjRqaO3fuVT2HKIIM4KB+/fqZkJCQPNetXLnSSDKxsbEmPj7eLFy40MyZM8dER0ebKlWqmOzsbE/bf/3rX8blcpnu3bubTz75xHz++eema9euxtfX1yxbtuyyNeQcJyoqytxzzz3m888/NzNnzjSVK1c2oaGhZvfu3Z62s2bNMpJMhw4dTFJSkpk3b55p2LCh8ff3N998842n3cCBA42/v79Zv369McaY5cuXGx8fH/Piiy9etpZFixYZSWbt2rWeZdWqVTNBQUGmffv2nmXz5s0zkszPP/9sjDFmz549RpKZNm2aMcaYlJQUM3jwYCPJfPLJJyY5OdkkJyeb1NRUY4wxMTExpkKFCqZGjRpmxowZZvHixaZXr15Gklm9evVla7yUfv36mWLFipmjR49esk1qaqqZNm2akWRefPFFT10pKSnGGGNWrFhh/P39TcuWLc28efPMokWLTP/+/b0emzHG7NixwzzxxBNm7ty5ZtWqVeaLL74wAwYMMD4+PmblypXGGGMyMzM9z+eAAQM8x9q1a5en3piYmFw1jhw50lz8T6MkU758eVOnTh0ze/Zss2LFCvPjjz+an376ybjdblO7dm0zY8YMs2TJEvO///u/xsfHx4waNcqzfWJiovH19TUjR440y5cvN4sWLTLjx4/3apMfmZmZJjk52dSvX99UqlTJ63U9ffq0qVOnjgkJCTFvvvmmWbJkiRkxYoQpVqyY6dy5c74eT1727NljAgMDTfv27U1SUpJZtWqVmTVrlunbt6/5/fffvfY5cuRIz3zO6xwVFWUeffRR89VXX5mpU6eaiIgIExUV5dn25MmTplSpUqZRo0Zm/vz5ZvXq1WbevHlm4MCBnr/vnP1HRUWZGjVqmDlz5pjPPvvM3H333UaS+fe//31VzyOKFoIKHJWfoHLxP7Lz5883kkxycrIxxpiMjAxTsmRJ061bN692586dM3Xr1jWNGze+bA05x2nQoIE5f/68Z/nevXuNn5+feeyxxzz7i4yMNLVr1zbnzp3ztEtPTzcRERGmefPmnmWZmZmmfv36pmLFiubnn382ZcqUMa1atfIKV3nJyMgw/v7+5qWXXjLGGPOf//zHSDLPPvusCQoKMpmZmcYYYx5//HETGRnp2e7ioGKMMWPHjjWSzJ49e3IdJyYmxgQGBpp9+/Z5lp0+fdqULFnS/OUvf7lsjXlZvHix8fHxMUOHDr1i2/Xr1+eqNUe1atVM/fr1zdmzZ72Wd+3a1ZQrV87reb9Qdna2OXv2rGnbtq3p0aOHZ/mRI0dyfYDmuNqg4na7zfHjx72Wd+zY0VSoUMETAHM89dRTJjAw0NO+a9eupl69ennWXhCtWrUyNWvW9Fo2ZcoUI8nMnz/fa/nrr79uJJklS5Zc8fHk5aOPPjKSzJYtWy7b7lJB5cLXwxhjvv32WyPJjBkzxhhjzIYNG4wkk5SUdMX9BwUFmUOHDnmWZWdnm2rVqpnKlStf8XGg6OLUD6z35z//2Wu+Tp06kqR9+/ZJ+mPQ6PHjx9WvXz9lZ2d7pvPnz+vuu+/W+vXrlZGRccXjPPTQQ15d/jExMWrevLlWrlwpSfrll1904MAB9e3bVz4+/++tU7x4cd17771at26dpys8ICBA8+fP17Fjx9SgQQMZYzRnzhz5+vpetobg4GA1a9ZMy5YtkyQtXbpUYWFheuaZZ3TmzBmtWbNG0h+nudq1a3fFx3Q59erVU3R0tGc+MDBQt99+u+d5za9Nmzbp/vvvV9OmTZWYmFjgenbt2qUdO3Z4xl1c+Fp27txZBw8e9DrlN2XKFDVo0ECBgYEqVqyY/Pz8tHz5cm3fvr3ANVxOmzZtdNttt3nmMzMztXz5cvXo0UPBwcG56s3MzNS6desk/XFabOvWrXryySe1ePFipaWlXff6VqxYoZCQEN13331ey3NOdV18GvTix3Mp9erVk7+/v/7nf/5HH374Ya7TNldy8Tia5s2bKyYmxvO+qly5sm677TY9++yzmjJlin7++edL7qtt27YqU6aMZ97X11cPPPCAdu3addlTjijaCCqwXqlSpbzmAwICJEmnT5+WJP33v/+VJN13333y8/Pzml5//XUZY3T8+PErHqds2bJ5Ljt27Jgkef5brly5XO0iIyN1/vx5/f77755llStXVsuWLZWZman4+Pg8t8tLu3bttG7dOmVkZGjZsmVq06aNSpUqpYYNG2rZsmXas2eP9uzZc81B5eLnVfrjuc15XvNj8+bNat++vapUqaIvv/zS89oURM7rOGzYsFyv45NPPilJOnr0qCTp7bff1hNPPKEmTZro448/1rp167R+/XrdfffdV1X/1bj49Tt27Jiys7M1YcKEXPV27tzZq97hw4frzTff1Lp169SpUyeVKlVKbdu2va6X7h47dkxly5bNNb4mIiJCxYoV8/z9XurxXEpcXJyWLVumiIgIDRo0SHFxcYqLi8v3+Jorva/cbrdWr16tevXq6fnnn1fNmjUVGRmpkSNH6uzZs/nal6Rcjw83D676QZFXunRpSdKECRMueeXBhd/CLuXQoUN5Lsv5QM/578GDB3O1O3DggHx8fLy+of7jH//QwoUL1bhxY02cOFEPPPCAmjRpcsU62rZtqxEjRujrr7/W8uXLNXLkSM/yJUuWqGLFip55J23evFnt2rVTTEyMlixZIrfbfU37y3kdhw8frp49e+bZpmrVqpKkmTNnqnXr1po8ebLX+vT09HwfLzAwMNcgU+n/hYuLXRwAbrvtNvn6+qpv374aNGhQntvkvFbFihVTQkKCEhISdOLECS1btkzPP/+8OnbsqJSUFAUHB+e77kspVaqUvvvuOxljvGo9fPiwsrOzPc/vpR7P5bRs2VItW7bUuXPntGHDBk2YMEFDhgxRmTJl9OCDD15220u9rypXruyZr127tubOnStjjH744QdNnz5dL730koKCgvTcc89dcV9S3sEbNwd6VFDktWjRQmFhYfr555/VqFGjPCd/f/8r7mfOnDkyxnjm9+3bp7Vr13ruv1G1alWVL19es2fP9mqXkZGhjz/+2HMlkCRt27ZNTz/9tB5++GF98803qlOnjh544AGvHpdLady4sUJDQzV+/HgdOnRI7du3l/RHT8vmzZs1f/581ahRQ5GRkZfdz8U9T9fTli1b1K5dO1WoUEFLly7N1ymEK9VVtWpVValSRVu3br3k61iiRAlJf3zIXtx788MPP+S6T8/lnoPY2FgdPnzY05MjSWfOnNHixYvz9TiCg4N11113afPmzapTp06e9eb14RkWFqb77rtPgwYN0vHjx7V37958He9K2rZtq5MnTyopKclr+YwZMzzrr5Wvr6+aNGniuaopP/c6mjVrltf82rVrtW/fvjzva+NyuVS3bl2NGzdOYWFhufa/fPlyr9fr3LlzmjdvnuLi4riHy02MHhUUecWLF9eECRPUr18/HT9+XPfdd58iIiJ05MgRbd26VUeOHMn1zTsvhw8fVo8ePfT4448rNTVVI0eOVGBgoIYPHy5J8vHx0RtvvKH4+Hh17dpVf/nLX5SVlaWxY8fqxIkTeu211yT9EVzuv/9+VaxYUZMmTZK/v7/mz5+vBg0a6JFHHsn1QXIxX19ftWrVSp9//rkqVqzouYlbixYtFBAQoOXLl+vpp5++4uOpXbu2JOmdd95Rv3795Ofnp6pVq3o+7Avql19+8Zx2euWVV7Rz507t3LnTsz4uLs5zWXBe4uLiFBQUpFmzZql69eoqXry4IiMjFRkZqffee0+dOnVSx44d1b9/f5UvX17Hjx/X9u3btWnTJv373/+WJHXt2lUvv/yyRo4cqVatWumXX37RSy+9pIoVKyo7O9tzrBIlSigmJkaffvqp2rZtq5IlS6p06dKKjY3VAw88oL/97W968MEH9cwzzygzM1N///vf83V33RzvvPOO7rzzTrVs2VJPPPGEYmNjlZ6erl27dunzzz/33MiwW7duqlWrlho1aqTw8HDt27dP48ePV0xMjKpUqXJVz/+lPPzww3r33XfVr18/7d27V7Vr19aaNWv06quvqnPnzgU+VThlyhStWLFCXbp0UXR0tDIzMz2Xsednnxs2bNBjjz2mXr16KSUlRS+88ILKly/vOZ33xRdfaNKkSerevbsqVaokY4w++eQTnThxwhPSc5QuXVpt2rTRiBEjFBISokmTJmnHjh1conyzc3AgL5Cvq34uvvQwrytcjDFm9erVpkuXLqZkyZLGz8/PlC9f3nTp0uWKly7mHOdf//qXefrpp014eLgJCAgw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48YqUaKEkpKStG3bNiUlJalEiRJq3Lix06XBEo7+S1+hQgW99tpr2rBhgzZs2KA2bdronnvu0U8//eRkWbCIj4+PjDGSpODgYI0dO1bBwcGSJGMMYQUowho3bqz169fL5XKpb9++2rp1q/r27SuXy6X169cTViBJcpmcTwFLlCxZUmPHjtWAAQOu2DYtLU1ut1upqakKDQ0thOpQmHbt2qUqVapIkg4ePKiyZct61h06dEjlypWTJO3cuVOVK1d2pEYABXPy5EmVKFFCLpdLp06dUmBgoGddZmamgoODZYxRenq6ihcv7mCluBGu5vPbmq+j586d09y5c5WRkaFmzZrl2SYrK0tpaWleE25eNWrUkPRHT8qFIUWSypYt6+lZyWkHoOjo27evJKlPnz5eIUWSAgMD9dBDD3m1w63L8aCybds2FS9eXAEBARo4cKAWLFhwyQ+exMREud1uzxQVFVXI1aIw5YxJGT16dJ7rn3/+ea92AIqO3bt3S5KGDRuW5/qEhASvdrh1OR5Uqlatqi1btmjdunV64okn1K9fP/388895th0+fLhSU1M9U0pKSiFXi8Lk5+cnSRo5cmSe61999VWvdgCKjri4OEnSm2++mef6t99+26sdbl3WjVFp166d4uLi9N57712xLWNUbm6MUQFuXoxRubUVyTEqOYwxysrKcroMWKBy5cpyuVySpHLlyikkJESvvPKKQkJCPCHF5XIRUoAiqHjx4rrjjjtkjFFwcLD69OmjTZs2qU+fPp6QcscddxBS4GyPyvPPP69OnTopKipK6enpmjt3rl577TUtWrRI7du3v+L29KjcGi68RPlCLpdL58+fd6AiANdLziXKF7vjjjv0/fffO1ARCkOR6VH573//q759+6pq1apq27atvvvuu3yHFNw6zp8/r507d3rGovj5+Wnnzp2EFOAm8P333ys9PV3du3dX7dq11b17d6WnpxNS4GHdGJWrQY8KAABFT5HpUQEAALgcggoAALAWQQUAAFiLoAIAAKxFUAEAANYiqAAAAGsRVAAAgLUIKgAAwFoEFQAAYC2CCgAAsBZBBQAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAAMBaBBUAAGAtggoAALAW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bdy4USNGjFB8fLzmzJnjtY958+apTJkyatWqVa7t4+Pj9dlnn+nkyZOeZYsXL1ZGRobuvfdeSdKLL76oadOmafLkyfrpp580dOhQ9enTR6tXr5YkpaSkqGfPnurcubO2bNmixx57LFdYAmAPTv0AyJeDBw8qOztbPXv2VExMjCSpdu3aV7WPNm3aaNiwYZ75Bx54QEOHDtWaNWvUsmVLSdLs2bP10EMPyccn9/eojh07KiQkRAsWLFDfvn097bt166bQ0FBlZGTo7bff1ooVK9SsWTNJUqVKlbRmzRq99957atWqlSZPnqxKlSpp3Lhxcrlcqlq1qrZt26bXX3+9QM8LgBuLHhUA+VK3bl21bdtWtWvXVq9evfT+++/r999/v6p9NGrUyGs+PDxc7du316xZsyRJe/bsUXJysuLj4/Pc3s/PT7169fK0z8jI0Keffupp//PPPyszM1Pt27dX8eLFPdOMGTO0e/duSdL27dvVtGlTuVwuz35zQg0A+9CjAiBffH19tXTpUq1du1ZLlizRhAkT9MILL+i7776Tj49PrlNAZ8+ezbWPvK7eiY+P11//+ldNmDBBs2fPVs2aNVW3bt1L1hEfH69WrVrp8OHDWrp0qQIDA9WpUydJ0vnz5yVJCxcuVPny5b22CwgIkKSrOlUFwHn0qADIN5fLpRYtWmj06NHavHmz/P39tWDBAoWHh+vgwYOedufOndOPP/6Yr312795dmZmZWrRokWbPnq0+ffpctn3z5s0VFRWlefPmadasWerVq5fn6qEaNWooICBA+/fvV+XKlb2mqKgoT5t169Z57fPieQD2oEcFQL589913Wr58uTp06KCIiAh99913OnLkiKpXr66QkBAlJCRo4cKFiouL07hx4/J987SQkBDdc889GjFihLZv366HHnrosu1dLpceeughTZkyRb/++qvn6iBJKlGihIYNG6ahQ4fq/PnzuvPOO5WWlqa1a9eqePHi6tevnwYOHKi33npLCQkJ+stf/qKNGzdq+vTp1/DMALiRCCoA8iU0NFRff/21xo8fr7S0NMXExOitt95Sp06ddPbsWW3dulUPP/ywihUrpqFDh+quu+7K977j4+PVpUsX/elPf1J0dHS+2r/66quKiYlRixYtvNa9/PLLioiIUGJion777TeFhYWpQYMGev755yVJ0dHR+vjjjzV06FBNmjRJjRs31quvvqpHH3306p4QAIXCZThhCwAALMUYFQAAYC2CCgAAsBZBBQAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACs9f8BltEevZjsV+gAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_survived_vs_feature(\"sibsp\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "id": "6f788970-a071-4986-b529-694f85aeb2b5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 608\n",
+ "1 209\n",
+ "2 28\n",
+ "4 18\n",
+ "3 16\n",
+ "8 7\n",
+ "5 5\n",
+ "Name: sibsp, dtype: int64"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8fc069d6-29dd-4c23-b657-2391baf2dcdf",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 198,
+ "id": "6afc1541-2a9b-4118-bcf6-4e7bd349744d",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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306L7d69W8OGDdOqVauUkpJS6PWtX79eZcuWVa9evVzac051XX4a9PLncy0NGjRQo0aNXNr69OmjlJQUl4nvH3/8sdq2bauAgADn+/LPf/4zz/fl8hrOnz+vjRs3qnfv3s7TdldzrX8bULIQVGCtihUrujz28fGRJF24cEGS9NNPP0mSevXqJS8vL5fl5ZdfljFG586du+Zxbrnlljzbzp49K0nO/4aEhOTqFxoaquzsbP3888/Ottq1a6tdu3bKyMhQ375989wuL507d9bWrVuVnp6utWvXqmPHjqpYsaKaNWumtWvX6siRIzpy5MgNB5XLX1fpt9c253XNj507d6pLly6qU6eOPv30U+d7UxA57+Po0aNzvY/Dhg2TJJ05c0aSNGXKFD322GNq1aqV/vWvf2nr1q3atm2b/vSnP11X/dfj8vfv7NmzunTpkqZNm5ar3rvvvtul3ri4OE2ePFlbt25V165dVbFiRXXq1KlQL689e/asbrnlllzza6pUqaIyZco4f36v9Hyu5Uq/HznHlqTFixerd+/eqlatmubNm6ctW7Zo27Ztevjhh5WRkZFr+8tr+Pnnn5WVlaXq1avnq6Zr/duAkoWrflBsVapUSZI0bdq0K175UrVq1Wvu5+TJk3m25fxjmPPfpKSkXP1OnDghDw8Pl78O//GPf2jFihVq2bKl3nzzTT3wwANq1arVNevo1KmTnnvuOX3++edat26dxo0b52xfvXq1IiMjnY/daefOnercubPCw8O1evVqBQcH39D+ct7HuLg49ezZM88+devWlSTNmzdPd9xxh2bOnOmyPjU1Nd/H8/X1zTU5U/q/cHG5ywNA+fLl5enpqf79+2v48OF5bpPzXpUpU0axsbGKjY3VL7/8orVr1+rpp5/WXXfdpcTERPn7++e77iupWLGivvrqKxljXGo9deqULl265Hx9r/R8ruVKvx85x5Z+e18iIyO1cOFCl/3n9TrnVUOFChXk6el51QnZKL0YUUGx1bZtW5UrV0779u1T8+bN81y8vb2vuZ8FCxbIGON8fOzYMW3evNl5/426deuqWrVqmj9/vku/9PR0/etf/3JeCSRJe/bs0eOPP64BAwZo06ZNio6O1gMPPOAy4nIlLVu2VFBQkKZOnaqTJ0+qS5cukn4badm5c6c++ugj1a9fX6GhoVfdz83863LXrl3q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qCh5eXm59I2Oji68CgEAQKnlMJfPhr0CDw8PORyOXJNnnTv633VFOZk2JSVFwcHBSk5OVlBQUJEcEwAA3Jjr+fzO94jKkSNHbrgwAACA65HvoBIeHn4z6wAAAMilQJNp4+Pj9fbbb+dqf/vtt/Xyyy/fcFEAAABSAYPKW2+9pVtvvTVXe4MGDTRr1qwbLgoAAEAq4H1UTp48qZCQkFztlStXVlJS0g0XBVzu4sWLmjFjhg4fPqxatWpp2LBh8vb2dndZAArBhQsX9OSTT+rgwYOqU6eOJk2aJD8/P3eXBUsUaEQlLCxMX375Za72L7/8UqGhofnez8yZMxUdHa2goCAFBQWpdevW+ve//12QklCCPfXUUypbtqxGjRqlN998U6NGjVLZsmX11FNPubs0ADcoJiZG/v7+mj59ulavXq3p06fL399fMTEx7i4NlihQUHnkkUc0cuRIvfPOOzp27JiOHTumt99+W6NGjdKQIUPyvZ/q1avrpZde0jfffKNvvvlGHTt2VPfu3fXtt98WpCyUQE899ZQmTZqkihUras6cOUpKStKcOXNUsWJFTZo0ibACFGMxMTFaunSpvL29NXbsWB06dEhjx46Vt7e3li5dSliBpOu4j8rvGWM0duxYvfHGG7p48aIkydfXV2PGjNHf//73GyqoQoUKmjRpkgYPHnzNvtxHpWS7ePGiypYtq4oVK+rHH39UmTL/d6by0qVLql69us6ePav09HROAwHFzIULF+Tv7y9vb2+lpqa6/A5fvHhRgYGBunjxos6fP89poBLoej6/r3tEJSsrS59//rnGjBmj06dPa+vWrdq9e7fOnTt3QyElKytLH374odLT09W6des8+2RmZiolJcVlQck1Y8YMXbp0SRMnTnQJKZJUpkwZPf/887p06ZJmzJjhpgoBFNSTTz4pSYqNjc31h4a3t7dGjhzp0g+l13UHFU9PT911111KTk5WQECAWrRooYYNG8rHx6dABezZs0cBAQHy8fHR0KFDtWTJEtWvXz/PvvHx8QoODnYuYWFhBTomiofDhw9Lkrp165bn+pz2nH4Aio+DBw9K+m0qQV5yRtVz+qH0KtAclaioKP3www+FUkDdunW1a9cubd26VY899pgGDhyoffv25dk3Li5OycnJziUxMbFQaoCdatWqJUlavnx5nutz2nP6ASg+6tSpI0n6xz/+kef6f/7zny79UHoVaI7K6tWrNWbMGL3wwgtq1qyZypYt67L+RuaLdO7cWbVq1dJbb711zb7MUSnZmKMClFzMUSndbuocFUn605/+pN27d+u+++5T9erVVb58eZUvX17lypVT+fLlC1R0DmOMMjMzb2gfKBm8vb01atQo/fTTT6pevbpmz56tEydOaPbs2apevbp++uknjRo1ipACFEN+fn7q3r27M5SMGTNG33//vcaMGeMMKd27dyekoGAjKhs3brzq+vbt2+drP08//bS6du2qsLAwpaam6sMPP9RLL72klStXqkuXLtfcnhGV0uGpp57Sa6+9pkuXLjnbypQpo1GjRumVV15xY2UAblTOJcqX6969uxISEoq+IBSJ6/n8LlBQKSyDBw/WunXrlJSUpODgYEVHR2vMmDH5CikSQaU04c60QMnFnWlLnyILKufPn9fx48ed91LJER0dXdBdXheCCgAAxc/1fH4X6Lt+Tp8+rb/85S9XvN19VlZWQXYLAADgokCTaUeOHKmff/5ZW7dulZ+fn1auXKn33ntPderU0bJlywq7RgAAUEoVaERl/fr1Wrp0qVq0aCEPDw+Fh4erS5cuCgoKUnx8vO65557CrhMAAJRCBRpRSU9PV5UqVST99t08p0+flvTbjeB27NhReNUBAIBSrUBBpW7dujpw4IAkqXHjxnrrrbf03//+V7NmzVJISEihFggAAEqvAp36GTlypJKSkiRJ48aN01133aV58+bJ29tb7733XqEWCAAASq8bvo+KMUYXLlzQd999pxo1aqhSpUqFVds1cXkyAADFz02/hb702xdGNWzYUL6+vipfvrwGDBjAXQQBAEChKtCpn+eee06vvfaaRowYodatW0uStmzZolGjRuno0aOaOHFioRYJAABKpwKd+qlUqZKmTZumhx56yKV9wYIFGjFihM6cOVNoBV4Np34AACh+bvqpn6ysLDVv3jxXe7NmzVy+OA4AAOBGFCio9OvXTzNnzszVPnv2bPXt2/eGiwIAAJAKOEdF+m0y7erVq3XbbbdJkrZu3arExEQNGDBAsbGxzn5Tpky58SoBAECpVKCgsnfvXjVt2lSSdPjwYUlS5cqVVblyZe3du9fZz+FwFEKJAACgtCpQUPnss88Kuw4AAIBcCnwfFQAAgJuNoAIAAKxFUAEAANYiqAAAAGsR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NG7cOPn4+Li7FACFjN9vXEmxnkwLAABKNkZUAACAtQgqAADAWgQVAABgLYIKAACwFkEFxcaMGTMUGRkpX19fNWvWTJs2bXJ3SQBu0Oeff657771XoaGhcjgcSkhIcHdJsAxBBcXCwoULNXLkSD3zzDPauXOn2rVrp65du+r48ePuLg3ADUhPT1ejRo305ptvursUWIrLk1EstGrVSk2bNtXMmTOdbfXq1VNMTIzi4+PdWBmAwuJwOLRkyRLFxMS4uxRYhBEVWO/ixYvavn277rzzTpf2O++8U5s3b3ZTVQCAokBQgfXOnDmjrKwsVa1a1aW9atWqOnnypJuqAgAUBYIKig2Hw+Hy2BiTqw0AULIQVGC9SpUqydPTM9foyalTp3KNsgAAShaCCqzn7e2tZs2aac2aNS7ta9asUZs2bdxUFQCgKJRxdwFAfsTGxqp///5q3ry5WrdurdmzZ+v48eMaOnSou0sDcAPS0tJ06NAh5+MjR45o165dqlChgmrUqOHGymALLk9GsTFjxgy98sorSkpKUsOGDfXaa6/pj3/8o7vLAnADNmzYoA4dOuRqHzhwoN59992iLwjWIagAAABrMUcFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAAMBaBBUAAGAtggoAq0VERGjq1Kk39RgbNmyQw+HQL7/8clOPA+D6cQt9AFbbtm2bypYt6+4yALgJQQWAW1y8eFHe3t7X7Fe5cuUiqAaArTj1AyDfFi1apKioKPn5+alixYrq3Lmz0tPTdccdd2jkyJEufWNiYjRo0CDn44iICE2cOFGDBg1ScHCwhgwZotatW2vs2LEu250+fVpeXl767LPPnNvlnPp56KGH9OCDD7r0//XXX1WpUiW98847kiRjjF555RXVrFlTfn5+atSokRYtWuSyzaeffqo//OEP8vPzU4cOHXT06NEbf3EA3BQEFQD5kpSUpIceekgPP/yw9u/frw0bNqhnz566nq8LmzRpkho2bKjt27frueeeU9++fbVgwQKXfSxcuFBVq1ZV+/btc23ft29fLVu2TGlpac62VatWKT09XX/+858lSc8++6zeeecdzZw5U99++61GjRqlfv36aePGjZKkxMRE9ezZU3fffbd27dqlRx55JFdYAmAPTv0AyJekpCRdunRJPXv2VHh4uCQpKirquvbRsWNHjR492vn4gQce0KhRo/TFF1+oXbt2kqT58+erT58+8vDI/XfUXXfdpbJly2rJkiXq37+/s/+9996roKAgpaena8qUKVq/fr1at24tSapZs6a++OILvfXWW2rfvr1mzpypmjVr6rXXXpPD4VDdunW1Z88evfzyywV6XQDcXIyoAMiXRo0aqVOnToqKitL999+vOXPm6Oeff76ufTRv3tzlceXKldWlSxd98MEHkqQjR45oy5Yt6tu3b57be3l56f7773f2T09P19KlS5399+3bp4yMDHXp0kUBAQHOZe7cuTp8+LAkaf/+/brtttvkcDic+80JNQDsw4gKgHzx9PTUmjVrtHnzZq1evVrTpk3TM888o6+++koeHh65TgH9+uuvufaR19U7ffv21d/+9jdNmzZN8+fPV4MGDdSoUaMr1tG3b1+1b99ep06d0po1a+Tr66uuXbtKkrKzsyVJK1asULVq1Vy28/HxkaTrOlUFwP0YUQGQbw6HQ23bttWECRO0c+dOeXt7a8mSJapcubKSkpKc/bKysrR379587TMmJkYZGRlauXKl5s+fr379+l21f5s2bRQWFqaFCxfqgw8+0P333++8eqh+/fry8fHR8ePHVbt2bZclLCzM2Wfr1q0u+7z8MQB7MKICIF+++uorrVu3TnfeeaeqVKmir776SqdPn1a9evVUtmxZxcbGasWKFapVq5Zee+21fN88rWzZsurevbuee+457d+/X3369Llqf4fDoT59+mjWrFn6/vvvnVcHSVJgYKBGjx6tUaNGKTs7W7fffrtSUlK0efNmBQQEaODAgRo6dKheffVVxcbG6tFHH9X27dv17rvv3sArA+BmIqgAyJegoCB9/vnnmjp1qlJSUhQeHq5XX31VXbt21a+//qrdu3drwIABKlOmjEaNGqUOHTrke999+/bVPffcoz/+8Y+qUaNGvvq/+OKLCg8PV9u2bV3WvfDCC6pSpYri4+P1ww8/qFy5cmratKmefvppSVKNGjX0r3/9S6NGjdKMGTPUsmVLvfjii3r44Yev7wUBUCQchhO2AADAUsxRAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCoAAMBa/x/FEgvo8xqWfAAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_survived_vs_feature(\"parch\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "id": "6770cfff-e584-4d79-87b5-b37dce7e2cfb",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 678\n",
+ "1 118\n",
+ "2 80\n",
+ "5 5\n",
+ "3 5\n",
+ "4 4\n",
+ "6 1\n",
+ "Name: parch, dtype: int64"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "df09fcdc-f6fb-4039-9a5b-6f20927a2f09",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 215,
+ "id": "adcca888-7fe0-48c6-bc26-e2e8e2646cf9",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df1 = data[data[\"survived\"] == 0].groupby(\"alone\")[\"alone\"].count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 217,
+ "id": "e6120007-73b1-4015-bbbd-5feebfca542b",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "df2 = data[data[\"survived\"] == 1].groupby(\"alone\")[\"alone\"].count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 222,
+ "id": "cc9465f1-c689-4ebe-9ffd-30a998cdf7a4",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEtklEQVR4nO3deVhWdf7/8dcty40goKBwgxKSaVmomZZLmSBulHum5VQ6aovrEDo25jihmaaWVlq2jONWjdpiWZmKaTYOlctUalm/bFy/QpgpuCACfn5/eHGmW0ABwRtPz8d13dfl+ZzPfc77HM997hdnux3GGCMAAACbqubpAgAAACoTYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYacUFi5cKIfDIT8/P+3bt6/I+Li4OMXGxnqgMunTTz+Vw+HQ22+/7ZH5l9XevXt15513KiQkRA6HQ0lJSZ4u6ZIUrv9PP/20wqZ5Jayjws/E1q1bK2yaq1atUkpKSrHjHA6HRo4cWWHzKqu9e/fK4XDomWee8VgNnlK/fn0NGjToss+3cJ0vXLjwss+7rOLi4hQXF+fpMmzh1KlTSklJqdB9qiR5V+jUbC43N1d//etftWTJEk+XcsV69NFH9eWXX+of//iHXC6XIiIiPF1SlfN7XUerVq3Siy++WGLggWesWLFCQUFBni4DvxOnTp3SpEmTJKlCAyRhpwy6du2qN998U2PHjlWzZs08Xc5llZOTIz8/Pzkcjkuazs6dO3XLLbeoV69eFVOYDVX0OiooKFB+fr6cTmeFTM+u8vLy5HA45O1t793iqVOn5O/vX+r+zZs3r8RqPOv38n9+qXJyclS9enVPl3FJOI1VBuPGjVNoaKgee+yxC/a70OFXh8Ph9pdrSkqKHA6Htm/frrvvvlvBwcEKCQlRcnKy8vPz9cMPP6hr164KDAxU/fr1NWPGjGLnefr0aSUnJ8vlcql69epq3769vvrqqyL9tm7dqh49eigkJER+fn5q3ry5li9f7tan8BTF2rVrNXjwYNWpU0f+/v7Kzc0tcZn379+v++67T2FhYXI6nWrcuLGeffZZnT17VtL/Tvfs3r1bH3/8sRwOhxwOh/bu3VviNAtPXbzyyitq1KiRnE6nrr/+ei1durRI34yMDD388MOqV6+efH19FRMTo0mTJik/P9+t36+//qrhw4erbt268vX11dVXX60JEyYUWbayzLs4pVnP57vYOrrYOpb+t+3NmDFDU6ZMUUxMjJxOpzZs2FDsPO+++27dcMMNbm3du3eXw+HQW2+9ZbX95z//kcPh0AcffODW9/jx4xo2bJhq166t0NBQ9enTR4cOHSoyn2XLlqlNmzYKCAhQjRo11KVLF7ftc9CgQXrxxRclyVru4raPJUuWqHHjxvL391ezZs304YcfFpnXjz/+qAEDBritp8Jpn7+ulyxZojFjxqhu3bpyOp3avXt3seup0NmzZ/XUU0/pqquukp+fn1q2bKlPPvmkXDWU5K233lKrVq0UHBwsf39/XX311Ro8eLA1vvDzef66Ke6UauEp9s8++0xt27aVv7+/Bg8erF69eik6Otpt2ynUqlUr3XTTTdbwb09jHT58WL6+vpo4cWKR933//fdyOBx64YUXrLbSfi4PHTqkfv36KTAwUMHBwerfv78yMjJKtb6kc38g9OzZU7Vq1ZKfn59uvPFGLVq0qNj1U5b/80mTJqlVq1YKCQlRUFCQbrrpJs2fP1+l+f3ssu5rKmrbLsnp06c1fvx4xcTEyNfXV3Xr1tWIESN07Ngxt37169dXt27d9O6776p58+by8/OzjrQUp3Ab27Jli9q1a2dts08//XSR7eti+7C9e/eqTp06ks6t+8L9QIWcRjW4qAULFhhJZsuWLeb55583kswnn3xijW/fvr254YYbrOE9e/YYSWbBggVFpiXJPPHEE9bwE088YSSZa6+91jz55JMmNTXVjBs3zkgyI0eONNddd5154YUXTGpqqvnjH/9oJJl33nnHev+GDRuMJBMVFWV69uxpPvjgA/P666+ba665xgQFBZmffvrJ6rt+/Xrj6+tr2rVrZ5YtW2ZWr15tBg0aVKTWwuWtW7eueeihh8zHH39s3n77bZOfn1/s+snMzDR169Y1derUMS+//LJZvXq1GTlypJFkhg0bZowxJisry3z++efG5XKZW2+91Xz++efm888/N6dPny5xvRcu1/XXX2/++c9/mpUrV5quXbsaSeatt96y+qWnp5uoqCgTHR1tXnnlFbNu3Trz5JNPGqfTaQYNGmT1y8nJMU2bNjUBAQHmmWeeMWvXrjUTJ0403t7e5o477ijXvAvX/4YNG8q8ns93oXVUmnVs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SEjQtGnT9J///MftLo7FixfL4XAoPj6+3NP+5JNP9PPPP1t/+RUUFGjZsmVq0KCB6tWrJ+ncKcBVq1apQYMGqlWr1gXrXL58ud577z317t3brc7C8WWd9/kqaz1X5jpOSEiQw+HQxIkTVa1aNd1+++2Szm3jf/7zn7Vv3z7dfvvtpTotdr4uXbrI29tbP/3000VPH/z2qFB5bnP19/dXfHy8vvrqKzVt2lS+vr5lnsbFvPvuu5o5c6b15Xf8+HF98MEHateunby8vCq0BqfTqfbt26tmzZpas2aNvvrqK7Vp00b169eXJG3fvt0tOK9cubLM8/jjH/+oYcOGadOmTfrggw+UnJzsFlhK0rhxY7Vq1UoLFixQQUGBcnNzixwRKu3nMj4+XsuXL9fKlSvdTmW9+eabpVqGhIQErVixQocOHbIClHTus+Hv71+ukC7JuiX9t+sjJyenVM9ZK+u+5mIudbtKSEjQjBkz9Prrr+vRRx+12t955x2dPHmyzPWUR2n3YecfHa4ohJ1LMH36dLVo0UKZmZlut+86HA7dd999+sc//qEGDRqoWbNm2rx5c6k/vOWRmZmp3r1768EHH1RWVpaeeOIJ+fn5afz48VafV155RYmJierSpYsGDRqkunXr6tdff9WuXbv0n//8x+1W47J49NFHtXjxYt15552aPHmyoqOj9dFHH+mll17SsGHDynTu93y1a9dWhw4dNHHiRAUEBOill17S999/73YL+OTJk5Wamqq2bdtq9OjRuvbaa3X69Gnt3btXq1at0ssvv6x69erpgQce0IsvvqiBAwdq7969atKkiTZt2qSpU6fqjjvuKHKapjTzLk5lrOfKXMdhYWGKjY3V2rVrFR8fbz2DpWPHjvr111/166+/atasWeWadv369TV58mRNmDBB//3vf9W1a1fVqlVLP//8szZv3qyAgADrttYmTZpIOve5SkxMlJeXV5l37M8//7xuu+02tWvXTsOGDVP9+vV1/Phx7d69Wx988MElXxfg5eWlTp06KTk5WWfPntX06dOVnZ3tdmvupdTwt7/9TQcPHlRCQoLq1aunY8eO6fnnn5ePj4/at28v6dwpwWuvvVZjx45Vfn6+atWqpRUrVmjTpk1lXp57771XycnJuvfee5Wbm1umW3wHDx6shx9+WIcOHVLbtm2LHLEsy+dy9uzZeuCB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MC8vL3414CK4QBkAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANgaYQcAANiaR8POvHnz1LRpUwUFBSkoKEht2rTRxx9/bI03xiglJUWRkZGqXr264uLi9O2337pNIzc3V6NGjVLt2rUVEBCgHj166ODBg5d7UQAAQBXl0bBTr149Pf3009q6dau2bt2qDh06qGfPnlagmTFjhmbNmqW5c+dqy5Ytcrlc6tSpk44fP25NIykpSStWrNDSpUu1adMmnThxQt26dVNBQYGnFgsAAFQhDmOM8XQRvxUSEqKZM2dq8ODBioyMVFJSkh577DFJ547ihIeHa/r06Xr44YeVlZWlOnXqaMmSJerfv78k6dChQ4qKitKqVavUpUuXUs0zOztbwcHBysrKUlBQUKUtGwD8XvWd/56nS/Cot4f08nQJtlTa7+8qc81OQUGBli5dqpMnT6pNmzbas2ePMjIy1LlzZ6uP0+lU+/btlZaWJknatm2b8vLy3PpERkYqNjbW6lOc3NxcZWdnu70AAIA9eTzs7NixQzVq1JDT6dQjjzyiFStW6Prrr1dGRoYkKTw83K1/eHi4NS4jI0O+vr6qVatWiX2KM23aNAUHB1uvqKioCl4qAABQVXg87Fx77bX6+uuv9cUXX2jYsGEaOHCgvvvuO2u8w+Fw62+MKdJ2vov1GT9+vLKysqzXgQMHLm0hAABAleXxsOPr66trrrlGLVu21LRp09SsWTM9//zzcrlcklTkCE1mZqZ1tMflcunMmTM6evRoiX2K43Q6rTvACl8AAMCePB52zmeMUW5urmJiYuRyuZSammqNO3PmjDZu3Ki2bdtKklq0aCEfHx+3Punp6dq5c6fVBwAA/L55e3Lmjz/+uBITExUVFaXjx49r6dKl+vTTT7V69Wo5HA4lJSVp6tSpatiwoRo2bKipU6fK399fAwYMkCQFBwdryJAhGjNmjEJDQxUSEqKxY8eqSZMm6tixoycXDQAAVBEeDTs///yz7r//fqWnpys4OFhNmzbV6tWr1alTJ0nSuHHjlJOTo+HDh+vo0aNq1aqV1q5dq8DAQGsas2fPlre3t/r166ecnBwlJCRo4cKF8vLy8tRiAQCAKqTKPWfHE3jODgBULp6z08vTJdjSFfecHQAAgMpA2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALZG2AEAALbm0bAzbdo03XzzzQoMDFRYWJh69eqlH374wa3PoEGD5HA43F6tW7d265Obm6tRo0apdu3aCggIUI8ePXTw4MHLuSgAAKCK8mjY2bhxo0aMGKEvvvhCqampys/PV+fOnXXy5Em3fl27dlV6err1WrVqldv4pKQkrVixQkuXLtWmTZt04sQJdevWTQUFBZdzcQAAQBXk7cmZr1692m14wYIFCgsL07Zt23T77bdb7U6nUy6Xq9hpZGVlaf78+VqyZIk6duwoSXr99dcVFRWldevWqUuXLpW3AAAAoMqrUtfsZGVlSZJCQkLc2j/99FOFhYWpUaNGevDBB5WZmWmN27Ztm/Ly8tS5c2erLTIyUrGxsUpLSyt2Prm5ucrOznZ7AQAAe6oyYccYo+TkZN12222KjY212hMTE/XGG29o/fr1evbZZ7VlyxZ16NBBubm5kqSMjAz5+vqqVq1abtMLDw9XRkZGsfOaNm2agoODrVdUVFTlLRgAAPAoj57G+q2RI0dq+/bt2rRpk1t7//79rX/HxsaqZcuWio6O1kcffaQ+ffqUOD1jjBwOR7Hjxo8fr+TkZGs4OzubwAMAgE1ViSM7o0aN0sqVK7VhwwbVq1fvgn0jIiIUHR2tH3/8UZLkcrl05swZHT161K1fZmamwsPDi52G0+lUUFCQ2wsAANiTR8OOMUYjR47Uu+++q/Xr1ysmJuai7zly5IgOHDigiIgISVKLFi3k4+Oj1NRUq096erp27typtm3bVlrtAADgyuDR01gjRozQm2++qffff1+BgYHWNTbBwcGqXr26Tpw4oZSUFN11112KiIjQ3r179fjjj6t27drq3bu31XfIkCEaM2aMQkNDFRISorFjx6pJkybW3VkAAOD3y6NhZ968eZKkuLg4t/YFCxZo0KBB8vLy0o4dO7R48WIdO3ZMERERio+P17JlyxQYGGj1nz17try9vdWvXz/l5OQoISFBCxculJeX1+VcHAAAUAU5jDHG00V4WnZ2toKDg5WVlcX1OwBQCfrOf8/TJXjU20N6eboEWyrt93eVuEAZAACgshB2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArRF2AACArZUr7Bw4cEAHDx60hjdv3qykpCS9+uqrFVYYAABARShX2BkwYIA2bNggScrIyFCnTp20efNmPf7445o8eXKFFggAAHApyhV2du7cqVtuuUWStHz5csXGxiotLU1vvvmmFi5cWJH1AQAAXJJyhZ28vDw5nU5J0rp169SjRw9J0nXXXaf09PSKqw4AAOASlSvs3HDDDXr55Zf1r3/9S6mpqeratask6dChQwoNDa3QAgEAAC5FucLO9OnT9corryguLk733nuvmjVrJklauXKldXoLAACgKvAuz5vi4uL0yy+/KDs7W7Vq1bLaH3roIfn7+1dYcQAAAJeqXEd2cnJylJubawWdffv26bnnntMPP/ygsLCwCi0QAADgUpQr7PTs2VOLFy+WJB07dkytWrXSs88+q169emnevHkVWiAAAMClKFfY+c9//qN27dpJkt5++22Fh4dr3759Wrx4sV544YUKLRAAAOBSlCvsnDp1SoGBgZKktWvXqk+fPqpWrZpat26tffv2lXo606ZN080336zAwECFhYWpV69e+uGHH9z6GGOUkpKiyMhIVa9eXXFxcfr222/d+uTm5mrUqFGqXbu2AgIC1KNHD7cnPAMAgN+vcoWda665Ru+9954OHDigNWvWqHPnzpKkzMxMBQUFlXo6Gzdu1IgRI/TFF18oNTVV+fn56ty5s06ePGn1mTFjhmbNmqW5c+dqy5Ytcrlc6tSpk44fP271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zz33nCZMmKA+ffpIkhYtWqTw8HC9+eabevjhh5WVlaX58+dryZIl6tixoyTp9ddfV1RUlNatW6cuXbpctmUBAABVU5W9ZmfPnj3KyMhQ586drTan06n27dsrLS1NkrRt2zbl5eW59YmMjFRsbKzVBwAA/L559MjOhWRkZEiSwsPD3drDw8O1b98+q4+vr69q1apVpE/h+4uTm5ur3Nxcazg7O7uiygYAAFVMlT2yU8jhcLgNG2OKtJ3vYn2mTZum4OBg6xUVFVUhtQIAgKqnyoYdl8slSUWO0GRmZlpHe1wul86cOaOjR4+W2Kc448ePV1ZWlvU6cOBABVcPAACqiiobdmJiYuRyuZSammq1nTlzRhs3blTbtm0lSS1atJCPj49bn/T0dO3cudPqUxyn06mgoCC3FwAAsCePXrNz4sQJ7d692xres2ePvv76a4WEhOiqq65SUlKSpk6dqoYNG6phw4aaOnWq/P39NWDAAElScHCwhgwZojFjxig0NFQhISEaO3asmjRpYt2dBQAAft88Gna2bt2q+Ph4azg5OVmSNHDgQC1cuFDjxo1TTk6Ohg8frqNHj6pVq1Zau3atAgMDrffMnj1b3t7e6tevn3JycpSQkKCFCxfKy8vrsi8PAACoejwaduLi4mSMKXG8w+FQSkqKUlJSSuzj5+enOXPmaM6cOZVQIQAAuNJV2Wt2AAAAKgJhBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2BphBwAA2FqVDjspKSlyOBxuL5fLZY03xiglJUWRkZGqXr264uLi9O2333qwYgAAUNVU6bAjSTfccIPS09Ot144dO6xxM2bM0KxZszR37lxt2bJFLpdLnTp10vHjxz1YMQAAqEqqfNjx9vaWy+WyXnXq1JF07qjOc889pwkTJqhPnz6KjY3VokWLdOrUKb355pserhoAAFQVVT7s/Pjjj4qMjFRM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Z88eNW7cuPIXEgAuUcuWLcvU//Dhwzpw4ICGDBmiBx980GrPz88v1a+JXykIO7giBAQE6JprrrGG9+3bpzvuuEOPPPKInnzySYWEhGjTpk0aMmSI8vLyip1GSkqKBgwYoI8++kgff/yxnnjiCS1dulS9e/fW2bNn9fDDD2v06NFF3nfVVVdV2nIBQEU6/w+9atWq6fxfhfrtPvLs2bOSzp3KatWqlVs/Ly+vSqry8iPs4Iq0detW5efn69lnn1W1aucuPVu+fPlF39eoUSM1atRIjz76qO69914tWLBAvXv31k033aRvv/3WLVABwJWuTp06ysjIkDFGDodDkvT1119b48PDw1W3bl3997//1R/+8AcPVVn5CDu4IjVo0ED5+fmaM2eOunfvrn//+996+eWXS+yfk5OjP//5z+rbt69iYmJ08OBBbdmyRXfddZekcxf1tW7dWiNGjNCDDz6ogIAA7dq1S6mpqZozZ87lWiwAqFBxcXE6fPiwZsyYob59+2r16tX6+OOPFRQUZPVJSUnR6NGjFRQUpMTEROXm5mrr1q06evSokpOTPVh9xeFuLFyRbrzxRs2aNUvTp09XbGys3njjDU2bNq3E/l5eXjpy5IgeeOABNWrUSP369VNiYqImTZokSWratKk2btyoH3/8Ue3atVPz5s01ceJERUREXK5FAoAK17hxY7300kt68cUX1axZM23evFljx4516zN06FD9/e9/18KFC9WkSRO1b99eCxcuVExMjIeqrngOc/7JPAAAABvhyA4AALA1wg4AALA1wg4AALA1wg4AALA1wg4AALA1wg4AALA1wg4AALA1wg6AK9bevXvlcDjcHn8PAOcj7AAAAFsj7AAAAFsj7ACo0lavXq3bbrtNNWvWVGhoqLp166affvqpxP4bN27ULbfcIqfTqYiICP3lL39Rfn6+NT4uLk6jR4/WuHHjFBISIpfLpZSUFLdpZGVl6aGHHlJYWJiCgoLUoUMHffPNN5W1iAAqGWEHQJV28uRJJScna8uWLfrkk09UrVo19e7dW2fPni3S9//+7/90xx136Oabb9Y333yjefPmaf78+ZoyZYpbv0WLFikgIEBffvmlZsyYocmTJys1NVWSZIzRnXfeqYyMDK1atUrbtm3TTTfdpISEBP3666+XZZkBVCx+CBTAFeXw4cMKCwvTjh07VKNGDcXExOirr77SjTfeqAkTJuidd97Rrl275HA4JEkvvfSSHnvsMWVlZalatWqKi4tTQUGB/vWvf1nTvOWWW9ShQwc9/fTTWr9+vXr37q3MzEw5nU6rzzXXXKNx48bpoYceuuzLDODScGQHQJX2008/acCAAbr66qsVFBSkmJgYSdL+/fuL9N21a5fatGljBR1JuvXWW3XixAkdPHjQamvatKnb+yIiIpSZmSlJ2rZtm06cOKHQ0FDVqFHDeu3Zs+eCp88AVF3eni4AAC6ke/fuioqK0muvvabIyEidPXtWsbGxOnPmTJG+xhi3oFPYJsmt3cfHx62Pw+GwToudPXtWERER+vTTT4tMv2bNmpe4NAA8gbADoMo6cuSIdu3apVdeeUXt2rWTJG3atKnE/tdff73eeecdt9CTlpamwMBA1a1bt1TzvOmmm5SRkSFvb2/Vr1//kpcBgOdxGgtAlVWrVi2Fhobq1Vdf1e7du7V+/XolJyeX2H/48OE6cOCARo0ape+//17vv/++nnjiCSUnJ6tatdLt7jp27Kg2bdqoV69eWrNmjfbu3au0tDT99a9/1datWytq0QBcRoQdAFVWtWrVtHTpUm3btk2xsbF69NFHNXPmzBL7161bV6tWrdLmzZvVrFkzPfLIIxoyZIj++te/lnqeDodDq1at0u23367BgwerUaNGuueee7R3716Fh4dXxGIBuMy4GwsAANgaR3YAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICtEXYAAICt/X/GFQ/QdVEt2gAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "categories = [\"False\",\"True\"]\n",
+ "values1 = df1\n",
+ "values2 = df2\n",
+ "\n",
+ "# 设置条形图的宽度\n",
+ "bar_width = 0.2\n",
+ "\n",
+ "# 计算并列的条形图的横坐标位置\n",
+ "x_data1 = np.arange(len(categories))\n",
+ "x_data2 = x_data1 + bar_width\n",
+ "\n",
+ "# 创建并列的条形图\n",
+ "\n",
+ "plt.bar(x_data1, values1, width=bar_width, color='#539caf', label='0')\n",
+ "plt.bar(x_data2, values2, width=bar_width, color='#7663b0', label='1')\n",
+ "\n",
+ "\n",
+ "# 添加标签和标题\n",
+ "plt.xlabel('alone')\n",
+ "plt.ylabel('pclass')\n",
+ "plt.title('Number of people for whether be survived or alone or not')\n",
+ "plt.xticks(x_data1 + bar_width, categories) # 设置横坐标刻度位置\n",
+ "\n",
+ "# 添加图例\n",
+ "plt.legend()\n",
+ "\n",
+ "# 显示图形\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "40a8bf94-cfea-48bd-a7b5-4ab956970d9d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "d5bddee4-1758-435f-95b1-d23657417d16",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "survived 0 1\n",
+ "alone \n",
+ "False 175 179\n",
+ "True 374 163\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZkAAAEWCAYAAAC0Q+rDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XuUHGWd//H3hyQkXKIQkmCSCSRgRIGVwA6XFX6KXFbJrgRX0LCiAQJZfxsF1LMLuK5chFX2uLKgu2i4BpXbKgiHxWBEwlWICcYQQH6EJJAhEUIIEO5k+P7+qKehmPT01Eympns6n9c5fbouT1V9q7q6v13PU/20IgIzM7MybFbvAMzMrHk5yZiZWWmcZMzMrDROMmZmVhonGTMzK42TjJmZlaZhkoykMyX9tN5xdJekKySdU6dtS9LlktZKmlePGKrZmNdS0nJJh/R2TDW2d6yku3txfaWeD5LmSjqhrPWXQdKvJE0tYb31fO/1u9ehXvosyUh6Kfd4S9KrufHP91UcTeYA4FCgJSL2qXcwm5reTlDNKiIOi4hZ9Y7Dek7SgZLaerJsnyWZiNi68gCeBD6Vm/azvoqjkUka0M1FdgSWR8TLZcRj9dWD86HPSRpY7xg2VjPsQ0eNtE8NU12WbC7pSknrJD0kqbUyQ9JoSb+QtFrSMkkndbaSdBn9X5L+N63rfkk7p3njJEX+Rchf+qZvp/dIOl/S85KWSvpImr5C0jNVLv2HS5qTtnWHpB1z6/5gmvecpEclfbZDnBdJukXSy8DHq+zLaEk3peWXSDoxTZ8GXAL8VboaPKvKspV9+YGkFyT9SdLBufnvlXSppFWSnpJ0TuWDrcCyVePq5PXYT9K96Xj+UdKBnZVN9pb0cKoGvFzSkLSexZI+lVvvIEnPSppYZZt3SPpMGj4gveaT0vghkhZ2KP+9tL1lkg7r6hhJ+hDwo9zxfz63um2rnXtpfRt1PiQ7S5qXXpcbJQ3rybGWdGrap3UploNzcZyTK/eub7HKqjRPlbQIeFnSNyX9vMO6L5B0YRqeK+kESYNTXLvnyo1QVqsxMo3/raSFqdy9kj6cK7unpAdSvNcCQ2rs22YprieUvWevlPTeNK/yGTBN0pPAb6ssv62km5V93qxNwy0bsa2pkp5M5+u/dFj2NEmPS1oj6br861llWycqe789p+z9Nzo3LyTNkPQY8FiVZbuKZbCk/5S0Mj3+M03bCvgVMFrv1D6N7rj+TkVEnz+A5cAhHaadCbwGTAIGAN8B7kvzNgMWAN8CNgd2ApYCn+hk/VcAzwH7AAOBnwHXpHnjgAAG5srPBU5Iw8cC64HjUhznkF15/RcwGPhrYB2wdW5b64CPpvkXAHeneVsBK9K6BgJ7Ac8Cu+WWfQHYP+3jkCr7cgfw32RvqInAauDgXKx31zjOlX35KjAI+Fza3rA0/5fAj1OcI4F5wD8UXLZWXGcCP03DY4A16XXdjKx6bw0wosa5sRgYCwwD7gHOSfP+Gbg2V3Yy8GAn6zkb+EEa/gbwOHBebt4Fuf18Ezgxvd7/F1gJqOAxurvDdq+g83OvN86HucBTwO5pfb/oybEGdkmxjM69L3bOxXFOruyBQFuH12hheo22ILuifgV4T5o/AFgF7Ffl/XUZcG5uXTOA2Wl4L+AZYN+0jqlpW4PJ3vdP8M75eGR63c7puG9pXccDS8g+K7YGrgd+0uEz4Mp0DLeosvx2wGeALYGhwP8Av+zkM6PIti5Ox2oP4HXgQ2n+KcB9QEvazx8DV3eyTweRnS97pbI/AO7MzQ9gDtn7pto+dRXL2SmWkcAI4F7g29XOgW593vdkoY190HmS+U1ufFfg1TS8L/Bkh/KnA5d3sv4rgEty45OAP3U40LWSzGO5eX+Rym+fm7YGmJjb1jW5eVsD7WRvwM8Bd3WI7cfAGbllr6xxnMamdQ3NTfsOcEUu1q6SzNsfmGnaPOALwPbpBNsiN+9o4PYCy3YV15m888F3KukNlyt7KzC1xrnxpQ6v3eNpeDRZQq98mP0c+OdO1nMwsCgNzwZO4J0vLXcAf5fbzyW55bZMr/f7Ch6jakmms3Nvo86H3Ln63Q7vkzfIPpQLH2vg/WQf6IcAg6rsQ1dJ5vgOy9wNfDENH1p5zaq8vw4Blubm3ZNb7iLSh1pu/qPAx8i+xHU8H++l8yRzG/CPufFdyJLSQN75DNip1rHusL6JwNpO9qnItlo6vI+mpOFHSF/O0vioyrJVYrgU+Pfc+Nap7Lg0HsBBNfahq1geBybl5n2CrDp+g3OgO4+GqbdL/pwbfgUYoqxaa0eyS7V8lcQA4K5urGvrbsTxdG74VYCI6Dgtv74VlYGIeEnSc2QfiDsC+3aIeyDwk2rLVjEaeC4i1uWmPQG0dlK+mqcinSW55SuxDQJWSarM26xDPJ0t2524dgSOUq6aK2339hox52OobJOIWCnpHuAzkm4ADgNO7mQdvwM+IGl7sg+Iw4GzJA0nu8q4M1f27XMlIl5Jx2Nrsm+EXR2jajo79zb2fKhW5okU43C6cawjYomkU8i+EOwm6VbgaxGxssD2q8V5FVkCvhL4+zRezW+BLSTtS3acJgI3pHk7AlMlfSVXfnOy1z+ofj52ZnSH+U+QHevta+zD2yRtCZwPfBLYNk0eKmlARLT3YFu1zokbJL2Vm9+eln2qynYeqIykz5o1ZFewy7vapwKxVNuP4tVinWi0JNOZFcCyiJjQC+uqNJJvCbyYht+3kescWxmQVPlwWkkW9x0RcWiNZaPGvJXAMElDcx/oO7DhyVfLGEnKvTl3AG5Ksb0ODI+I9d1ctjtxrSD7dt1pm00VY3PDO6TtVcwiuyoZCPwuIqoei5QsFpAlocUR8Yake4GvkX3LfrZAHF0do1qvXWfr25jzoaLj8XmTrBqlW8c6Iq4CrpL0HrIrqvPIrlRfJnt/VFR7f3SM83+A/0jtFp8G/qqTbb4l6TqyhPQ0cHPuHFpBVpV2bsflJH2M6ufj453s3kqyD3ByZdenbVbaVmod66+TXZHsGxF/Vtbu9wdAVcoW2VZnVpBdFd7TRbkNtpPaSrbj3e+77p6T1db/UBrPv/d6vN5Ga/jvzDzgxdTYuIWyhtfdJe3d3RVFxGqyF+WYtJ7jgZ27WKwrk5Q1Lm8OfBu4PyJWADeTfZv+grJG6kGS9lbWaFwk1hVkVQLfkTQkNYJOI6vnL2okcFLa9lHAh4BbImIV8GuyD4b3pAbIndObuatluxPXT4FPSfpEOt5DlDUk13rzzZDUkhpAvwFcm5v3S7I66ZPJvjXXcgfw5fQMWRVHfrymAsfoaaAlve5FbNT5kHOMpF3Tt+2zgZ+nb9eFj7WkXSQdJGkwWVvoq2TfoCFrb5kkaZik95G1G9SU3ldzgcvJvhA+UqP4VWRVh5/n3Vc8FwNfkrSvMltJ+htJQ8muTNeTnY8DJf0d2RVpZ64GvippfPri929k7XmdfaHqaCjZMXk+nYdnlLStHwHnKt0spOxGiMmdlL0KOE7SxPS6/RvZZ83yYrvUpauBb6YYhpO1gVd+7/Y0sJ3SDQ3d0S+STHoDfYrs0noZ2be2S4Bu73ByIvBPZG0ru5F9YG6Mq8hOwueAvyR785C+of01MIXsG8Gfyb4tDu7Guo8mq0tdSVatcEZEzOnG8vcDE8iO2bnAkRGxJs37Ill1xMPAWrI2jlEFly0UV0pIk8mSxWqyb27/RO1z7yqyD/el6fH2nU4R8SpZY/d4sgbWWu4g+7C4s5PxImodo9+Sfev7s6Qur4x66XyArHrtirT8EOCktP7uHOvBwHfJXts/k32h+EZu/X8kq4L5Ne9O8rVcRdbm0llVGSnO+8mulkaT3bVUmT6f7L35Q7JjvYSs3YuIeAP4uzS+lixJ1Xr9L0v7cSfZZ8ZrwFdqlO/oP8kax58lawyfXdK2LiCrHfi1pHVpW/tWKxgRtwH/Snb+ryL7cjyl4HaKOAeYDywCHiSrmjsnbftPZEloqbI7/wpXo1XuoLEmJOlYssbJA/py2bJJ+hbwgYg4pt6xmFlt/aVNxgyAVHUxjaztwMwaXL+oLjOD7IdoZFVAv4qI7lR5mVmduLrMzMxK4ysZMzMrTb9ukxk+fHiMGzeu3mGYmfUrCxYseDYiRvTFtvp1khk3bhzz58+vdxhmZv2KpFq9JfQqV5eZmVlpnGTMzKw0TjJmZlaaft0mU82bb75JW1sbr732Wr1DqWnIkCG0tLQwaNCgeodiZlaapksybW1tDB06lHHjxpHrnr2hRARr1qyhra2N8ePH1zscM7PSNF112WuvvcZ2223XsAkGQBLbbbddw19tmZltrKZLMkBDJ5iK/hCjmdnGasokY2ZmjaHp2mQ6OvLSX/bq+n4+7YhC5WbPns3JJ59Me3s7J5xwAqeddlqvxmFm1h80fZKph/b2dmbMmMGcOXNoaWlh77335vDDD2fXXXetd2jWz/T2l6T+rOgXPGssri4rwbx583j/+9/PTjvtxOabb86UKVO48cYb6x2WmVmfc5IpwVNPPcXYsWPfHm9paeGpp56qY0RmZvXhJFOCav/R47vJzGxT5CRTgpaWFlasWPH2eFtbG6NHj65jRGZm9eEkU4K9996bxx57jGXLlvHGG29wzTXXcPjhh9c7LDOzPtf0d5fV446UgQMH8sMf/pBPfOITtLe3c/zxx7Pbbrv1eRxmZvXW9EmmXiZNmsSkSZPqHYaZWV25uszMzErjJGNmZqUpLclIGiJpnqQ/SnpI0llp+hWSlklamB4T03RJulDSEkmLJO1VVmxmZtY3ymyTeR04KCJekjQIuFvSr9K8f4qIn3cofxgwIT32BS5Kz2Zm1k+VdiUTmZfS6KD02PBXiu+YDFyZlrsP2EbSqLLiMzOz8pXaJiNpgKSFwDPAnIi4P806N1WJnS9pcJo2BliRW7wtTeu4zumS5kuav3r16jLDNzOzjVTqLcwR0Q5MlLQNcIOk3YHTgT8DmwMzgVOBs4Fq/a5scOUTETPTcrS2tta6MgLg1BN6t2PK8y6Z3GWZ448/nptvvpmRI0eyePHiXt2+mVl/0id3l0XE88Bc4JMRsSpVib0OXA7sk4q1AWNzi7UAK/sivt527LHHMnv27HqHYWZWd2XeXTYiXcEgaQvgEOBPlXYWZT1GHgFUvurfBHwx3WW2H/BCRKwqK74yffSjH2XYsGH1DsPMrO7KrC4bBcySNIAsmV0XETdL+q2kEWTVYwuBL6XytwCTgCXAK8BxJcZmZmZ9oLQkExGLgD2rTD+ok/IBzCgrHjMz63v+xb+ZmZXGScbMzErT9L0wF7nluLcdffTRzJ07l2effZaWlhbOOusspk2b1udxmJnVW9MnmXq4+uqr6x2CmVlDcHWZmZmVxknGzMxK05RJJrsburH1hxjNzDZW0yWZIUOGsGbNmob+EI8I1qxZw5AhQ+odiplZqZqu4b+lpYW2tjYavYfmIUOG0NLSUu8wzMxK1XRJZtCgQYwfP77eYZiZGU1YXWZmZo3DScbMzErjJGNmZqVxkjEzs9I4yZiZWWmcZMzMrDROMmZmVhonGTMzK42TjJmZlaa0JCNpiKR5kv4o6SFJZ6Xp4yXdL+kxSddK2jxNH5zGl6T548qKzczM+kaZVzKvAwdFxB7AROCTkvYDzgPOj4gJwFqg8peR04C1EfF+4PxUzszM+rHSkkxkXkqjg9IjgIOAn6fps4Aj0vDkNE6af7AklRWfmZmVr9Q2GUkDJC0EngHmAI8Dz0fE+lSkDRiThscAKwDS/BeA7aqsc7qk+ZLmN3pPy2Zmm7pSk0xEtEfERKAF2Af4ULVi6bnaVcsGfwoTETMjojUiWkeMGNF7wZqZWa/rk7vLIuJ5YC6wH7CNpMpfDLQAK9NwGzAWIM1/L/BcX8RnZmblKPPushGStknDWwCHAI8AtwNHpmJTgRvT8E1pnDT/t9HIf29pZmZdKvSnZZIOACZExOWSRgBbR8SyLhYbBcySNIAsmV0XETdLehi4RtI5wB+AS1P5S4GfSFpCdgUzpQf7Y2ZmDaTLJCPpDKAV2AW4nOwusZ8C+9daLiIWAXtWmb6UrH2m4/TXgKMKRW1mZv1CkeqyTwOHAy8DRMRKYGiZQZmZWXMokmTeSG0jASBpq3JDMjOzZlEkyVwn6cdkd4WdCPwGuLjcsMzMrBl02SYTEd+TdCjwIlm7zLciYk7pkZmZWb9X6O6ylFScWMzMrFs6TTKS1lHlF/dkv8yPiHhPaVGZmVlT6DTJRITvIDMzs41S9MeYewD/J43emX4DY2ZmVlOXd5dJOhn4GTAyPX4m6StlB2ZmZv1fkSuZacC+EfEygKTzgN8BPygzMDMz6/+K/E5GQHtuvJ3q3fKbmZm9S5ErmcuB+yXdQJZcJvNOp5ZmZmadKvJjzO9LmgsckCYdFxF/KDUqMzNrCt35PxmR/W7GVWVmZlZIkbvLvgXMArYFhgOXS/pm2YGZmVn/V6RN5mhgz/R/L0j6LvAAcE6ZgZmZWf9XpLpsOTAkNz4YeLyUaMzMrKkUuZJ5HXhI0hyyNplDgbslXQgQESeVGJ+ZmfVjRZLMDelRMbfIiiWNBa4E3ge8BcyMiAsknQmcCKxORb8REbekZU4n+/FnO3BSRNxaZFtmZtaYitzCPEvSFsAOEfFoN9a9Hvh6RDwgaSiwIF0NAZwfEd/LF5a0KzAF2A0YDfxG0gcioh0zM+uXitxd9ilgITA7jU+UdFNXy0XEqoh4IA2vAx4BxtRYZDJwTUS8HhHLgCXAPl3vgpmZNaoiDf9nkn3YPw8QEQuB8d3ZiKRxwJ7A/WnSlyUtknSZpG3TtDHAitxibVRJSpKmS5ovaf7q1as7zjYzswZSJMmsj4gXOkyr9mdmVUnaGvgFcEpEvAhcBOwMTARWAf9RKVpl8Q22ExEzI6I1IlpHjBhRNAwzM6uDIklmsaS/BwZImiDpB8C9RVYuaRBZgvlZRFwPEBFPR0R7RLwFXMw7VWJtwNjc4i3AyoL7YWZmDahIkvkKWWP868DVwIvAKV0tJElkHWk+EhHfz00flSv2aWBxGr4JmCJpsKTxwARgXpGdMDOzxlTk7rJXgH9J/yMTqRG/iP2BLwAPSlqYpn0DOFrSRLKqsOXAP6TtPCTpOuBhsjvTZvjOMjOz/q3LJCNpb+AyYGgafwE4PiIW1FouIu6mejvLLTWWORc4t6uYzMysfyjyY8xLgX+MiLsAJB1A9h8zHy4zMDMz6/+KtMmsqyQYePsKpWiVmZmZbcKKXMnMk/Rjskb/AD4HzJW0F0DlB5dmZmYdFUkyE9PzGR2mf4Qs6RzUqxGZmVnTKHJ32cf7IhAzM2s+3fn7ZTMzs25xkjEzs9J0mmQkHZWeu9UZppmZWUWtK5nT0/Mv+iIQMzNrPrUa/tdIuh0YX+3/YyLi8PLCMjOzZlAryfwNsBfwE97pjt/MzKywTpNMRLwB3CfpIxGxOv2FckTES30XnpmZ9WdF7i7bXtIfyLrkf1jSAkm7lxyXmZk1gSJJZibwtYjYMSJ2AL6eppmZmdVUJMlsFRG3V0YiYi6wVWkRmZlZ0yjSd9lSSf9KdgMAwDHAsvJCMjOzZlHkSuZ4YARwfXoMB44rMygzM2sORTrIXAuc1AexmJlZk3HfZWZmVprSkoyksZJul/SIpIcknZymD5M0R9Jj6XnbNF2SLpS0RNKiyp+imZlZ/1UzyUgaIOmrPVz3euDrEfEhYD9ghqRdgdOA2yJiAnBbGgc4DJiQHtOBi3q4XTMzaxA1k0xEtAOTe7LiiFhV+WvmiFgHPAKMSeublYrNAo5Iw5OBKyNzH7CNpFE92baZmTWGIrcw3yPph8C1wMuViZUEUoSkccCewP3A9hGxKq1jlaSRqdgYYEVusbY0bVWHdU0nu9Jhhx12KBqCmZnVQZEk85H0fHZuWgAHFdmApK3J/i7glIh4UVKnRatMiw0mRMwk9TjQ2tq6wXwzM2scRW5h/nhPVy5pEFmC+VlEXJ8mPy1pVLqKGQU8k6a3AWNzi7cAK3u6bTMzq78u7y6TtL2kSyX9Ko3vKmlageUEXAo8EhHfz826CZiahqcCN+amfzHdZbYf8EKlWs3MzPqnIrcwXwHcCoxO4/8POKXAcvsDXwAOkrQwPSYB3wUOlfQYcGgaB7gFWAosAS4G/rHoTpiZWWMq0iYzPCKuk3Q6QESsl9Te1UIRcTfV21kADq5SPoAZBeIxM7N+osiVzMuStiM1wleqskqNyszMmkKRK5mvkbWX7CzpHrLOMo8sNSozM2sKRe4ue0DSx4BdyKq/Ho2IN0uPzMzM+r0uk4ykIWSN8AeQVZndJelHEfFa2cGZmVn/VqS67EpgHfCDNH402R+YHVVWUGZm1hyKJJldImKP3Pjtkv5YVkBmZtY8iiSZP0jaL3VaiaR9gXvKDcv62qkn3Nh1oU3IeZf0qF9YM+ug0yQj6UGyNphBZL/EfzLN2gF4uA9iMzOzfq7Wlczf9lkUdXDkpb+sdwgNZedOfzdrZtZznSaZiHiiMpz+vXJsh/JPbLCQmZlZTpFbmL8NHAs8zjtd7xfu6t/MzDZdRRr+PwvsHBFvlB2MmZk1lyJ9ly0Gtik7EDMzaz5FrmS+Q3Yb82Lg9crEiDi8tKjMzKwpFEkys4DzgAeBt8oNx8zMmkmRJPNsRFxYeiRmZjX4B8Pv1l9+MFwkySyQ9B2y7v7z1WUPlBaVmZk1hSJJZs/0vF9umm9hNjOzLhX5P5mP90UgZmbWfIr8GPNb1aZHxNldLHcZWdc0z0TE7mnamcCJwOpU7BsRcUuadzowDWgHToqIWwvug5mZNagiv5N5OfdoBw4DxhVY7grgk1Wmnx8RE9OjkmB2BaYAu6Vl/lvSgALbMDOzBlakuuw/8uOSvkd2E0BXy90paVzBOCYD10TE68AySUuAfYDfFVzezMwaUJErmY62BHbaiG1+WdIiSZeljjcBxgArcmXa0rQNSJouab6k+atXr65WxMzMGkSXSUbSgykpLJL0EPAocEEPt3cRsDMwEVgFVK6SqvUzH1WmEREzI6I1IlpHjBjRwzDMzKwvFLmFOf+/MuuBpyNifU82FhFPV4YlXQzcnEbbyP5KoKIFWNmTbZiZWePo8kom/a9MG/AmMAAYLWmHnmxM0qjc6KfJOt+ErI1niqTBksYDE4B5PdmGmZk1jiK3MH8FOAN4mnf6Lgvgw10sdzVwIDBcUltax4GSJqbllwP/ABARD0m6juxvndcDMyKivQf7Y2ZmDaRIddnJwC4RsaY7K46Io6tMvrRG+XOBc7uzDTMza2xF7i5bAbxQdiBmZtZ8ilzJLAXmSvpf3t1B5vdLi8rMzJpCkSTzZHpsnh5mZmaFFPnF/1l9EYiZmTWfnvzi38zMrBAnGTMzK42TjJmZlaZI32UfkHSbpMVp/MOSvll+aGZm1t8VuZK5GDidrFsZImIR2X+/mJmZ1VQkyWwZER37EetRB5lmZrZpKZJknpW0M6nrfUlHknXTb2ZmVlORH2POAGYCH5T0FLAMOKbUqMzMrCkU+THmUuAQSVsBm0XEuvLDMjOzZlCkq//BwGeAccBAKfsTy4g4u9TIzMys3ytSXXYjWS/MC8h1kGlmZtaVIkmmJSI+WXokZmbWdIrcXXavpL8oPRIzM2s6nV7JpF/4v5XKHCdpKVl1mYCIiJp/v2xmZlarumwMMLGnK5Z0GfC3wDMRsXuaNgy4luwmguXAZyNirbK7CS4AJgGvAMdGxAM93baZmTWGWtVlyyLiic4eBdZ9BdCxLec04LaImADclsYBDgMmpMd04KJu7YWZmTWkWlcyIyV9rbOZXf39ckTcKWlch8mTgQPT8CxgLnBqmn5lRARwn6RtJI2KCPcsYGbWj9VKMgOArcnaYHrL9pXEERGrJI1M08cAK3Ll2tK0DZKMpOlkVzvssMMOvRiamZn1tlpJZlUf/uCyWiKLagUjYiZZNze0trZWLWNmZo2hVptMb17BVDwtaRRAen4mTW8DxubKtQArS9i+mZn1oVpJ5uAStncTMDUNTyXrTaAy/YvK7Ae84PYYM7P+r9Pqsoh4bmNWLOlqskb+4ZLagDOA7wLXSZoGPAkclYrfQnb78hKyW5iP25htm5lZYyjSrUyPRMTRncza4Aop3VU2o6xYzMysPop0K2NmZtYjTjJmZlYaJxkzMyuNk4yZmZXGScbMzErjJGNmZqVxkjEzs9I4yZiZWWmcZMzMrDROMmZmVhonGTMzK42TjJmZlcZJxszMSuMkY2ZmpXGSMTOz0jjJmJlZaZxkzMysNE4yZmZWGicZMzMrzcB6bFTScmAd0A6sj4hWScOAa4FxwHLgsxGxth7xmZlZ76jnlczHI2JiRLSm8dOA2yJiAnBbGjczs36skarLJgOz0vAs4Ig6xmJmZr2gXkkmgF9LWiBpepq2fUSsAkjPI6stKGm6pPmS5q9evbqPwjUzs56oS5sMsH9ErJQ0Epgj6U9FF4yImcBMgNbW1igrQDMz23h1uZKJiJXp+RngBmAf4GlJowDS8zP1iM3MzHpPnycZSVtJGloZBv4aWAzcBExNxaYCN/Z1bGZm1rvqUV22PXCDpMr2r4qI2ZJ+D1wnaRrwJHBUHWIzM7Ne1OdJJiKWAntUmb4GOLiv4zEzs/I00i3MZmbWZJxkzMysNE4yZmZWGicZMzMrjZOMmZmVxknGzMxK4yRjZmalcZIxM7PSOMmYmVlpnGTMzKw0TjJmZlYaJxkzMyuNk4yZmZXGScbMzErjJGNmZqVxkjEzs9I4yZiZWWmcZMzMrDROMmZmVpqGSzKSPinpUUlLJJ1W73jMzKznGirJSBoA/BdwGLArcLSkXesblZmZ9VRDJRlgH2BJRCyNiDeAa4DJdY7JzMx6aGC9A+hgDLAiN94G7JsvIGk6MD2NviTp0T6KrdkNB56tdxCN4t8vrXcEVoXP0ZyNPEd37KUwutRoSUZVpsW7RiJmAjP7JpxNh6T5EdFa7zjMOuNztH9qtOqyNmBsbrwFWFmnWMzMbCM1WpL5PTBB0nhJmwNTgJvqHJOZmfVQQ1WXRcR6SV8GbgUGAJdFxENsLQihAAADrklEQVR1DmtT4SpIa3Q+R/shRUTXpczMzHqg0arLzMysiTjJmJlZaRqqTcZ6j6R24MHcpCMiYnknZccBN0fE7uVHZvYOSdsBt6XR9wHtwOo0vk/6Ubb1Y04yzevViJhY7yDMaomINcBEAElnAi9FxPfyZSSJrP34rb6P0DaWq8s2IZLGSbpL0gPp8ZEqZXaTNE/SQkmLJE1I04/JTf9x6mfOrBSS3i9psaQfAQ8AYyU9n5s/RdIlaXh7SddLmp/O0f3qFbdtyEmmeW2REsJCSTekac8Ah0bEXsDngAurLPcl4IJ0FdQKtEn6UCq/f5reDny+/F2wTdyuwKURsSfwVI1yFwL/nnoD+CxwSV8EZ8W4uqx5VasuGwT8UFIlUXygynK/A/5FUgtwfUQ8Julg4C+B32c1F2xBlrDMyvR4RPy+QLlDgF3SuQmwraQtIuLV8kKzopxkNi1fBZ4G9iC7in2tY4GIuErS/cDfALdKOoGsT7lZEXF6XwZrm7yXc8Nv8e6+DYfkhoVvEmhYri7btLwXWJUaUL9A1qvCu0jaCVgaEReSdenzYbK7f46UNDKVGSapz3pxNUvn7FpJEyRtBnw6N/s3wIzKSLpStwbhJLNp+W9gqqT7yKrKXq5S5nPAYkkLgQ8CV0bEw8A3gV9LWgTMAUb1UcxmFacCs8m+9LTlps8A9k83qjwMnFiP4Kw6dytjZmal8ZWMmZmVxknGzMxK4yRjZmalcZIxM7PSOMmYmVlpnGTMekjScknD6x2HWSNzkjEzs9I4yZgVIOmXkhZIekjS9Crzv5Z6DV4s6ZQ0bZykRyRdnJb7taQt0rydJc1O67xL0gf7ep/M+oJ/jGlWgKRhEfFcShK/Bz4GLCDrqXpH4ApgP7J+tO4HjgHWAkuA1ohYKOk64KaI+Kmk24AvpQ5I9wW+ExEH9fmOmZXMHWSaFXOSpEp/WWOBCbl5BwA3RMTLAJKuB/4PWd9vyyJiYSq3ABgnaWvgI8D/5HoOHlxy/GZ14SRj1gVJB5J1J/9XEfGKpLls2AtwZ17PDbeT/U3CZsDz/udS2xS4Tcasa+8F1qYE80GyarG8O4EjJG0paSuyHoLv6mxlEfEisEzSUZD9vbCkPUqK3ayunGTMujYbGJh6oP42cF9+ZkQ8QNYmM4+sPeaSiPhDF+v8PDBN0h+Bh4DJvR20WSNww7+ZmZXGVzJmZlYaJxkzMyuNk4yZmZXGScbMzErjJGNmZqVxkjEzs9I4yZiZWWn+P7EuwwAiFtnRAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "aa7a5851-e261-4048-b85d-96af26ff8a4a",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "base_wtl",
+ "language": "python",
+ "name": "base_wtl"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/2023/homework/TinglanWang/numpy_submit.txt b/2023/homework/TinglanWang/numpy_submit.txt
new file mode 100644
index 00000000..c557c51f
--- /dev/null
+++ b/2023/homework/TinglanWang/numpy_submit.txt
@@ -0,0 +1,10 @@
+C
+D
+B
+E
+C
+C
+E
+C
+C
+E
diff --git a/2023/homework/TinglanWang/pandas_submit.txt b/2023/homework/TinglanWang/pandas_submit.txt
new file mode 100644
index 00000000..bcf22b49
--- /dev/null
+++ b/2023/homework/TinglanWang/pandas_submit.txt
@@ -0,0 +1,12 @@
+B
+D
+C
+A
+B
+D
+A
+C
+C
+B
+B
+B
diff --git a/2023/homework/TinglanWang/python_submit.txt b/2023/homework/TinglanWang/python_submit.txt
new file mode 100644
index 00000000..79d54642
--- /dev/null
+++ b/2023/homework/TinglanWang/python_submit.txt
@@ -0,0 +1,108 @@
+C
+B
+C
+C
+C
+A
+A
+B
+B
+B
+B
+C
+A
+D
+A
+A
+A
+C
+D
+B
+A
+D
+C
+A
+D
+B
+C
+B
+A
+C
+C
+C
+B
+C
+D
+B
+A
+C
+D
+A
+B
+A
+C
+A
+C
+D
+B
+A
+B
+A
+A
+A
+B
+D
+D
+B
+A
+D
+B
+C
+B
+B
+A
+D
+A
+D
+A
+B
+A
+A
+D
+B
+C
+A
+C
+C
+B
+B
+C
+A
+B
+A
+C
+B
+A
+C
+C
+B
+B
+B
+A
+C
+A
+B
+B
+A
+A
+A
+C
+C
+A
+B
+B
+A
+A
+B
+A
+A
diff --git a/2023/homework/TinglanWang/readme.md b/2023/homework/TinglanWang/readme.md
new file mode 100644
index 00000000..71849ae2
--- /dev/null
+++ b/2023/homework/TinglanWang/readme.md
@@ -0,0 +1,3 @@
+# hello
+
+*好的*
diff --git a/2023/homework/Wencong_Hong/numpy_submit.txt b/2023/homework/Wencong_Hong/numpy_submit.txt
new file mode 100644
index 00000000..92869791
--- /dev/null
+++ b/2023/homework/Wencong_Hong/numpy_submit.txt
@@ -0,0 +1,10 @@
+C
+D
+B
+E
+C
+C
+E
+C
+C
+E
\ No newline at end of file
diff --git a/2023/homework/Wencong_Hong/pandas_submit.txt b/2023/homework/Wencong_Hong/pandas_submit.txt
new file mode 100644
index 00000000..18face45
--- /dev/null
+++ b/2023/homework/Wencong_Hong/pandas_submit.txt
@@ -0,0 +1,12 @@
+B
+D
+C
+A
+B
+D
+A
+C
+C
+B
+B
+B
\ No newline at end of file
diff --git a/2023/homework/Wencong_Hong/python_submit.txt b/2023/homework/Wencong_Hong/python_submit.txt
new file mode 100644
index 00000000..27593e1d
--- /dev/null
+++ b/2023/homework/Wencong_Hong/python_submit.txt
@@ -0,0 +1,108 @@
+C
+B
+C
+C
+C
+A
+A
+B
+B
+B
+B
+C
+A
+D
+A
+A
+A
+C
+D
+B
+A
+D
+C
+A
+D
+B
+C
+B
+A
+C
+C
+C
+B
+C
+D
+B
+A
+C
+D
+A
+B
+A
+C
+A
+C
+D
+B
+A
+B
+A
+A
+A
+B
+D
+D
+B
+A
+D
+B
+C
+B
+B
+A
+D
+A
+D
+A
+B
+A
+A
+D
+B
+C
+A
+C
+C
+B
+B
+C
+A
+B
+A
+C
+B
+A
+C
+C
+B
+B
+B
+A
+C
+A
+B
+B
+A
+A
+A
+C
+C
+A
+B
+B
+A
+A
+B
+A
+A
\ No newline at end of file
diff --git a/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring.ipynb b/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring.ipynb
new file mode 100644
index 00000000..55e120a6
--- /dev/null
+++ b/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring.ipynb
@@ -0,0 +1,1006 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('/root/GWData-Bootcamp/2023/machine_learning/KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 百分之20用于测试"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.metrics import confusion_matrix\n",
+ "# 绘制混淆矩阵函数\n",
+ "def confusion_matrix_draw(cm):\n",
+ " sns.heatmap(cm, annot=True, fmt='d')\n",
+ " plt.xlabel('Predicted')\n",
+ " plt.ylabel('Actual')\n",
+ " plt.title('Confusion Matrix')\n",
+ " plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "\n",
+ "# 创建 Logistic Regression 分类器\n",
+ "classifier = LogisticRegression()\n",
+ "\n",
+ "# 使用训练集拟合分类器\n",
+ "classifier.fit(X_train, y_train)\n",
+ "\n",
+ "# 使用分类器进行预测\n",
+ "y_pred = classifier.predict(X_test)\n",
+ "\n",
+ "# 使用分类器进行预测并获得混淆矩阵\n",
+ "cm_Logisticregression = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 绘制混淆矩阵\n",
+ "confusion_matrix_draw(cm_Logisticregression)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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PV1r165VkyZNMp3PyPCkpaVZ26pUqSI3NzcdPXr0hpmZypUr65tvvrFp27Bhw60fEgCygUW3gBPr3LmzSpQoodatW+unn37SoUOHtGbNGg0aNEjHjh2TJA0ePFgTJ05UVFSU9uzZo1deeeWm71ApU6aMQkJC1KNHD0VFRVnH/OKLLyRJAQEBslgsWr58uU6dOqVLly6pSJEiGj58uIYOHap58+bpwIED2rp1qz744APNmzdPktS3b1/t27dPI0aM0N69e7Vo0SJFRkaa/RUBuEcQsABOrFChQoqNjdUDDzygtm3bqnLlyurZs6euXLlizbgMGzZMXbt2VUhIiAIDA1WkSBG1adPmpuPOnDlTzz//vF555RVVqlRJL7/8spKTkyVJ999/v8aOHavXXntNPj4+GjBggCRp/PjxevPNNxUeHq7KlSurWbNmWrFihcqWLStJeuCBB/Tll18qKipK1atX16xZszRhwgQTvx0A9xKLcaOVeQAAAE6CDAsAAHB6BCwAAMDpEbAAAACnR8ACAACcHgELAABwegQsAADA6RGwAAAAp0fAAgAAnB4BCwAAcHoELAAAwOkRsAAAAKdHwAIAAJze/wGAP8loV1oeAgAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "\n",
+ "# 创建决策树分类器\n",
+ "classifier = DecisionTreeClassifier()\n",
+ "\n",
+ "# 使用训练集拟合分类器\n",
+ "classifier.fit(X_train, y_train)\n",
+ "\n",
+ "# 使用分类器进行预测\n",
+ "y_pred = classifier.predict(X_test)\n",
+ "\n",
+ "# 使用分类器进行预测并获得混淆矩阵\n",
+ "cm_DecisionTreeClassifier = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 绘制混淆矩阵\n",
+ "confusion_matrix_draw(cm_DecisionTreeClassifier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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IqpQNArdHG+yl3px3LMMDQ0RGBiIwMBAXXRHRERUobzpvwOkCzpJWIiIiKhk/LFm7Wk1JURERET0KrDCQkREJLM3fUuyLjBhISIikplGwTUs2uKUEBEREek9VliIiIhkxkW32mPCQkREJDOuYdEep4SIiIhI77HCQkREJLM3/S21usCEhYiISGZ80632OCVEREREeo8VFiIiIplxl5D2mLAQERHJjGtYtMeEhYiISGbc1qw9rmEhIiIivccKCxERkcy4hkV7TFiIiIhkxjUs2uOUEBEREek9VliIiIhkxkW32mPCQkREJDMmLNrjlBARERHpPSYsREREMhMUujnKombNmlAoFEWOkJAQAEC7du2KnBs+fLikj6tXryIgIADm5uawt7fH+PHjkZ+fL4lJTExE06ZNoVQqUadOHcTGxmrzVZWIU0JEREQyK48poSNHjqCgoED8nJaWhg4dOuCjjz4S2z755BNMmzZN/Gxubi7+uaCgAAEBAXB0dMSBAweQkZGBgQMHwtjYGDNmzAAApKenIyAgAMOHD8e6deuQkJCAoUOHwsnJCf7+/jp9HiYsREREFVDVqlUln2fOnInatWujbdu2Ypu5uTkcHR2LvX7Xrl34+++/sXv3bjg4OKBx48aYPn06wsPDERkZCRMTE8TExMDV1RVz5swBANSvXx/79+/HvHnzdJ6wcEqIiIhIZhodHWq1GllZWZJDrVa/8P65ublYu3YthgwZAoXif3NL69atg52dHRo2bIiIiAg8fPhQPJecnAwPDw84ODiIbf7+/sjKysLp06fFGF9fX8m9/P39kZycXLYvqBSYsBAREclM0NERFRUFa2tryREVFfXC+8fFxeHevXsYNGiQ2NavXz+sXbsWe/fuRUREBNasWYP+/fuL51UqlSRZASB+VqlUz43JysrCo0ePSvfllBKnhIiIiGSmqzfdRkREICwsTNKmVCpfeN2KFSvQqVMnODs7i23Dhg0T/+zh4QEnJye0b98eFy9eRO3atXUzYB1iwkJERPSaUCqVpUpQnnblyhXs3r0bW7ZseW6cl5cXAODChQuoXbs2HB0dcfjwYUlMZmYmAIjrXhwdHcW2p2OsrKxgZmZWpnG+CKeEiIiIZKarNSwvY9WqVbC3t0dAQMBz41JTUwEATk5OAABvb2+cOnUKN27cEGPi4+NhZWUFd3d3MSYh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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "# 创建随机森林分类器\n",
+ "classifier = RandomForestClassifier()\n",
+ "\n",
+ "# 使用训练集拟合分类器\n",
+ "classifier.fit(X_train, y_train)\n",
+ "\n",
+ "# 使用分类器进行预测\n",
+ "y_pred = classifier.predict(X_test)\n",
+ "\n",
+ "# 使用分类器进行预测并获得混淆矩阵\n",
+ "cm_RandomForestClassifier = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 绘制混淆矩阵\n",
+ "confusion_matrix_draw(cm_RandomForestClassifier)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.svm import SVC\n",
+ "\n",
+ "# 创建支持向量机分类器\n",
+ "classifier = SVC()\n",
+ "\n",
+ "# 使用训练集拟合分类器\n",
+ "classifier.fit(X_train, y_train)\n",
+ "\n",
+ "# 使用分类器进行预测\n",
+ "y_pred = classifier.predict(X_test)\n",
+ "\n",
+ "# 使用分类器进行预测并获得混淆矩阵\n",
+ "cm_SVC = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 绘制混淆矩阵\n",
+ "confusion_matrix_draw(cm_SVC)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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REQy47ZmzXENCxEREek8VliIiIhkxjUsmmPCQkREJDOuYdEcp4SIiIhI57HCQkREJDMuutUcKyxEREQyK9XSURWNGjWCQqEodwQFBQEAOnbsWO7c6NGjJX1kZWXBz88PxsbGsLGxweTJk1FcXCyJSUhIQNu2baFUKtG0aVPExMRUcaSVwwoLERFRDXT48GGUlJSIn9PS0vDOO+/g/fffF9s++OADzJw5U/xsbGws/rqkpAR+fn6ws7NDUlISsrOzMWTIENSuXRuzZ88GAGRmZsLPzw+jR4/GunXrEB8fjxEjRsDe3h6+vr5afR4mLERERDITqmHRbb169SSf58yZgyZNmqBDhw5im7GxMezs7Cq8fs+ePTh9+jT27t0LW1tbtGnTBrNmzUJoaCjCw8NhYGCA6OhoODo6IioqCgDQokULHDhwAAsWLNB6wsIpISIiIplpa0qooKAAubm5kqOgoOCJ9y8sLMTatWsxfPhwKBT/y57WrVsHa2trtGrVCmFhYbh79654Ljk5GS4uLrC1tRXbfH19kZubi1OnTokx3t7eknv5+voiOTm5aj+gSmDCQkRE9JyIiIiAubm55IiIiHjidbGxsbh9+zaGDh0qtg0YMABr167Fb7/9hrCwMKxZswaDBg0Sz6vVakmyAkD8rFarHxuTm5uLe/fuPe1jVohTQkRERDLT1i6hsLAwhISESNqUSuUTr1u5ciW6dOkClUolto0cOVL8tYuLC+zt7dGpUyecP38eTZo00dKItYcJCxERkcy09aZbpVJZqQTlvy5duoS9e/di69atj41zd3cHAGRkZKBJkyaws7PDoUOHJDE5OTkAIK57sbOzE9v+G2NmZgYjI6MqjfNJOCVEREQks1KFdo6nsWrVKtjY2MDPz++xcampqQAAe3t7AICHhwdOnjyJq1evijFxcXEwMzODs7OzGBMfHy/pJy4uDh4eHk832MdgwkJERFRDlZaWYtWqVQgICECtWv+bVDl//jxmzZqFlJQUXLx4ET///DOGDBkCT09PtG7dGgDg4+MDZ2dnDB48GMePH8fu3bsxdepUBAUFiVWe0aNH48KFC5gyZQrOnj2LZcuW4YcffkBwcLDWn4UJCxERkcyq48VxALB3715kZWVh+PDhknYDAwPs3bsXPj4+aN68OSZOnIjevXtj+/btYoy+vj527NgBfX19eHh4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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n",
+ "# 创建K最近邻分类器,设置邻居数为3\n",
+ "classifier = KNeighborsClassifier(n_neighbors=3)\n",
+ "\n",
+ "# 使用训练集拟合分类器\n",
+ "classifier.fit(X_train, y_train)\n",
+ "\n",
+ "# 使用分类器进行预测\n",
+ "y_pred = classifier.predict(X_test)\n",
+ "\n",
+ "# 使用分类器进行预测并获得混淆矩阵\n",
+ "cm_KNN = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 绘制混淆矩阵\n",
+ "confusion_matrix_draw(cm_KNN)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.metrics import accuracy_score\n",
+ "# 封装计算函数\n",
+ "def calAccuracy(cm):\n",
+ " # 提取混淆矩阵中的真正例和真负例的数量\n",
+ " tn, fp, fn, tp = cm.ravel()\n",
+ "\n",
+ " # 计算准确率\n",
+ " accuracy = (tp + tn) / (tp + tn + fp + fn)\n",
+ "\n",
+ " # 打印准确率\n",
+ " print(\"准确率:\", accuracy)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "准确率: 0.9319374137137598\n"
+ ]
+ }
+ ],
+ "source": [
+ "calAccuracy(cm_Logisticregression)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "准确率: 0.8946157386102163\n"
+ ]
+ }
+ ],
+ "source": [
+ "calAccuracy(cm_DecisionTreeClassifier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "准确率: 0.9337321675103544\n"
+ ]
+ }
+ ],
+ "source": [
+ "calAccuracy(cm_RandomForestClassifier)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "准确率: 0.9317073170731708\n"
+ ]
+ }
+ ],
+ "source": [
+ "calAccuracy(cm_SVC)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "准确率: 0.926829268292683\n"
+ ]
+ }
+ ],
+ "source": [
+ "calAccuracy(cm_KNN)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "## your code here"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Accuracy: 0.9312931431201105\n",
+ "Recall: 0.03706199460916442\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.metrics import accuracy_score, recall_score\n",
+ "\n",
+ "# 训练Logistic Regression模型\n",
+ "lr_model = LogisticRegression()\n",
+ "lr_model.fit(X_train, y_train)\n",
+ "\n",
+ "# 根据阈值调整概率判定边界\n",
+ "threshold = 0.3\n",
+ "y_pred_prob = lr_model.predict_proba(X_test)[:, 1] # 获取正类的预测概率\n",
+ "y_pred = (y_pred_prob >= threshold).astype(int) # 根据阈值判断最终结果\n",
+ "\n",
+ "# 计算评估指标\n",
+ "accuracy = accuracy_score(y_test, y_pred)\n",
+ "recall = recall_score(y_test, y_pred)\n",
+ "\n",
+ "# 输出评估指标\n",
+ "print(\"Accuracy:\", accuracy)\n",
+ "print(\"Recall:\", recall)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "ictp-ap",
+ "language": "python",
+ "name": "ictp-ap"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring_finetune_ensemble.ipynb b/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring_finetune_ensemble.ipynb
new file mode 100644
index 00000000..ae710693
--- /dev/null
+++ b/2023/homework/XuWeiZhang-UCAS/homework_credit_scoring_finetune_ensemble.ipynb
@@ -0,0 +1,1908 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('/root/GWData-Bootcamp/2023/machine_learning/KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/tmp/ipykernel_3450/2980780030.py:3: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access\n",
+ " data.shapey = data['SeriousDlqin2yrs']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0 1\n",
+ "1 0\n",
+ "2 0\n",
+ "3 0\n",
+ "4 0\n",
+ "Name: SeriousDlqin2yrs, dtype: int64"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45.0 \n",
+ "1 0.957151 40.0 \n",
+ "2 0.658180 38.0 \n",
+ "3 0.233810 30.0 \n",
+ "4 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 百分之20用于测试"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SeriousDlqin2yrs\n",
+ "0 101322\n",
+ "1 7326\n",
+ "Name: count, dtype: int64\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlUAAAHCCAYAAADGjTzUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA2wElEQVR4nO3de1RVdf7/8dcBBbwBXkGSEVJTUfOeot0cSUqscbIZaczM8TIVeMM0NW85NZaOeVem+hZ+K7+pfSczLdRAszHygndHTEvzFmCjcBQVFPbvj37srydQgT4KyPOx1lnLsz/v/dnvc9ZBXmvvfT44LMuyBAAAgF/FrbQbAAAAuB0QqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAuJg6daocDsctOdaDDz6oBx980H6+ceNGORwOffTRR7fk+M8884yCgoJuybFK6vz58xo8eLD8/f3lcDg0cuRII/PGxcXJ4XDo6NGjRuYDQKgCbmv5vzjzH15eXgoICFB4eLjmzZunc+fOGTnOqVOnNHXqVO3atcvIfCaV5d6K4m9/+5vi4uL03HPP6b333lP//v2vW5+bm6t3331XDz74oGrVqiVPT08FBQVp4MCB2r59+y3qGqiYKpV2AwBuvmnTpik4OFiXL19WamqqNm7cqJEjR+qNN97QqlWrdPfdd9u1EydO1Lhx44o1/6lTp/Tyyy8rKChIbdq0KfJ+69atK9ZxSuJ6vb311lvKy8u76T38GomJiercubOmTJlyw9qLFy/q8ccfV3x8vO6//35NmDBBtWrV0tGjR7V8+XItWbJEx44dU4MGDW5B50DFQ6gCKoBHHnlEHTp0sJ+PHz9eiYmJ6tWrlx577DEdOHBAVapUkSRVqlRJlSrd3P8aLly4oKpVq8rDw+OmHudGKleuXKrHL4r09HSFhIQUqXbMmDGKj4/X7NmzC1wmnDJlimbPnn0TOgSQj8t/QAX129/+VpMmTdIPP/yg999/395e2D1V69ev17333itfX19Vr15dTZs21YQJEyT9fB9Ux44dJUkDBw60LzXGxcVJ+vm+qZYtWyo5OVn333+/qlatau/7y3uq8uXm5mrChAny9/dXtWrV9Nhjj+n48eMuNUFBQXrmmWcK7Hv1nDfqrbB7qrKysjR69GgFBgbK09NTTZs21d///ndZluVS53A4FB0drZUrV6ply5by9PRUixYtFB8fX/gb/gvp6ekaNGiQ/Pz85OXlpdatW2vJkiX2eP79ZUeOHNGaNWvs3q91D9SJEyf0j3/8Qw899FCh9125u7vrhRdeuO5Zqk8++UQREREKCAiQp6enGjVqpL/+9a/Kzc11qTt06JD69Okjf39/eXl5qUGDBoqMjFRmZqZdc73PTL7s7GxNmTJFjRs3lqenpwIDAzV27FhlZ2e71BVlLqAs4EwVUIH1799fEyZM0Lp16zRkyJBCa/bv369evXrp7rvv1rRp0+Tp6anDhw9r8+bNkqTmzZtr2rRpmjx5soYOHar77rtPktSlSxd7jv/85z965JFHFBkZqaeeekp+fn7X7evVV1+Vw+HQiy++qPT0dM2ZM0dhYWHatWuXfUatKIrS29Usy9Jjjz2mDRs2aNCgQWrTpo3Wrl2rMWPG6OTJkwXO9PzrX//SP//5Tz3//POqUaOG5s2bpz59+ujYsWOqXbv2Nfu6ePGiHnzwQR0+fFjR0dEKDg7WihUr9MwzzygjI0MjRoxQ8+bN9d5772nUqFFq0KCBRo8eLUmqW7duoXN+/vnnunLlyg3vubqeuLg4Va9eXTExMapevboSExM1efJkOZ1OzZw5U5KUk5Oj8PBwZWdna9iwYfL399fJkye1evVqZWRkyMfH54afGUnKy8vTY489pn/9618aOnSomjdvrr1792r27Nn69ttvtXLlSkk3/vwBZYoF4Lb17rvvWpKsbdu2XbPGx8fHatu2rf18ypQp1tX/NcyePduSZJ0+ffqac2zbts2SZL377rsFxh544AFLkhUbG1vo2AMPPGA/37BhgyXJuuOOOyyn02lvX758uSXJmjt3rr2tYcOG1oABA2445/V6GzBggNWwYUP7+cqVKy1J1iuvvOJS98QTT1gOh8M6fPiwvU2S5eHh4bJt9+7dliRr/vz5BY51tTlz5liSrPfff9/elpOTY4WGhlrVq1d3ee0NGza0IiIirjufZVnWqFGjLEnWzp07b1hrWf/32Thy5Ii97cKFCwXq/vKXv1hVq1a1Ll26ZFmWZe3cudOSZK1YseKacxflM/Pee+9Zbm5u1ldffeWyPTY21pJkbd68uchzAWUFl/+ACq569erX/Ragr6+vpJ8vDZX0pm5PT08NHDiwyPVPP/20atSoYT9/4oknVL9+fX322WclOn5RffbZZ3J3d9fw4cNdto8ePVqWZenzzz932R4WFqZGjRrZz++++255e3vr+++/v+Fx/P399eSTT9rbKleurOHDh+v8+fP68ssvi9270+mUJJf3rbiuPgt47tw5/fTTT7rvvvt04cIFpaSkSJJ8fHwkSWvXrtWFCxcKnacon5kVK1aoefPmatasmX766Sf78dvf/laStGHDhiLPBZQVhCqggjt//vx1fxH37dtXXbt21eDBg+Xn56fIyEgtX768WL/g7rjjjmLdlN6kSROX5w6HQ40bN77payr98MMPCggIKPB+NG/e3B6/2m9+85sCc9SsWVNnz5694XGaNGkiNzfX/4KvdZyi8Pb2lqRftUzG/v379fvf/14+Pj7y9vZW3bp19dRTT0mSfb9UcHCwYmJi9Pbbb6tOnToKDw/XwoULXe6nKspn5tChQ9q/f7/q1q3r8rjrrrsk/XzPWVHnAsoKQhVQgZ04cUKZmZlq3LjxNWuqVKmiTZs26YsvvlD//v21Z88e9e3bVw899FCBG5ivN4dp11qgtKg9meDu7l7odusXN7XfCs2aNZMk7d27t0T7Z2Rk6IEHHtDu3bs1bdo0ffrpp1q/fr1ef/11SXIJMbNmzdKePXs0YcIEXbx4UcOHD1eLFi104sQJSUX7zOTl5alVq1Zav359oY/nn3++yHMBZQWhCqjA3nvvPUlSeHj4devc3NzUvXt3vfHGG/r3v/+tV199VYmJifYlGtMrsB86dMjluWVZOnz4sMs39WrWrKmMjIwC+/7yLE9xemvYsKFOnTpV4GxP/qWvhg0bFnmuGx3n0KFDBc62/JrjPPLII3J3d3f5JmdxbNy4Uf/5z38UFxenESNGqFevXgoLC1PNmjULrW/VqpUmTpyoTZs26auvvtLJkycVGxtrj9/oM9OoUSOdOXNG3bt3V1hYWIFH06ZNizwXUFYQqoAKKjExUX/9618VHBysfv36XbPuzJkzBbblL6KZ/9X3atWqSVKhIack/vu//9sl2Hz00Uf68ccf9cgjj9jbGjVqpG+++UY5OTn2ttWrVxdYeqE4vfXs2VO5ublasGCBy/bZs2fL4XC4HP/X6Nmzp1JTU7Vs2TJ725UrVzR//nxVr15dDzzwQLHnDAwM1JAhQ7Ru3TrNnz+/wHheXp5mzZpln036pfyzblefZcvJydGiRYtc6pxOp65cueKyrVWrVnJzc7M/D0X5zPzxj3/UyZMn9dZbbxWovXjxorKysoo8F1BWsKQCUAF8/vnnSklJ0ZUrV5SWlqbExEStX79eDRs21KpVq+Tl5XXNfadNm6ZNmzYpIiJCDRs2VHp6uhYtWqQGDRro3nvvlfRzwPH19VVsbKxq1KihatWqqVOnTgoODi5Rv7Vq1dK9996rgQMHKi0tTXPmzFHjxo1dln0YPHiwPvroIz388MP64x//qO+++07vv/++y43jxe3t0UcfVbdu3fTSSy/p6NGjat26tdatW6dPPvlEI0eOLDB3SQ0dOlT/+Mc/9Mwzzyg5OVlBQUH66KOPtHnzZs2ZM6fEN5vPmjVL3333nYYPH65//vOf6tWrl2rWrKljx45pxYoVSklJUWRkZKH7dunSRTVr1tSAAQM0fPhwORwOvffeewUuZSYmJio6Olp/+MMfdNddd+nKlSt677335O7urj59+kgq2memf//+Wr58uZ599llt2LBBXbt2VW5urlJSUrR8+XKtXbtWHTp0KNJcQJlRqt89BHBT5X9tPv/h4eFh+fv7Ww899JA1d+5cl6/u5/vlkgoJCQnW7373OysgIMDy8PCwAgICrCeffNL69ttvXfb75JNPrJCQEKtSpUouSxg88MADVosWLQrt71pLKvzP//yPNX78eKtevXpWlSpVrIiICOuHH34osP+sWbOsO+64w/L09LS6du1qbd++vcCc1+vtl0sqWJZlnTt3zho1apQVEBBgVa5c2WrSpIk1c+ZMKy8vz6VOkhUVFVWgp2st9fBLaWlp1sCBA606depYHh4eVqtWrQpd9qGoSyrku3LlivX2229b9913n+Xj42NVrlzZatiwoTVw4ECX5RYKW1Jh8+bNVufOna0qVapYAQEB1tixY621a9dakqwNGzZYlmVZ33//vfXnP//ZatSokeXl5WXVqlXL6tatm/XFF1/Y8xT1M5OTk2O9/vrrVosWLSxPT0+rZs2aVvv27a2XX37ZyszMLNZcQFngsKxSuKMSAADgNsM9VQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAFv+8hfLy8nTq1CnVqFHD+J/1AAAAN4dlWTp37pwCAgIK/CH0qxGqbqFTp04pMDCwtNsAAAAlcPz4cTVo0OCa44SqWyj/T08cP35c3t7epdwNAAAoCqfTqcDAwBv+CSlC1S2Uf8nP29ubUAUAQDlzo1t3uFEdAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCgUmkefNOmTZo5c6aSk5P1448/6uOPP1bv3r3tccuyNGXKFL311lvKyMhQ165dtXjxYjVp0sSuOXPmjIYNG6ZPP/1Ubm5u6tOnj+bOnavq1avbNXv27FFUVJS2bdumunXratiwYRo7dqxLLytWrNCkSZN09OhRNWnSRK+//rp69uxZrF5wbUHj1pR2C7iFjr4WUdotAMAtV6pnqrKystS6dWstXLiw0PEZM2Zo3rx5io2N1ZYtW1StWjWFh4fr0qVLdk2/fv20f/9+rV+/XqtXr9amTZs0dOhQe9zpdKpHjx5q2LChkpOTNXPmTE2dOlVvvvmmXfP111/rySef1KBBg7Rz50717t1bvXv31r59+4rVCwAAqLgclmVZpd2EJDkcDpczVZZlKSAgQKNHj9YLL7wgScrMzJSfn5/i4uIUGRmpAwcOKCQkRNu2bVOHDh0kSfHx8erZs6dOnDihgIAALV68WC+99JJSU1Pl4eEhSRo3bpxWrlyplJQUSVLfvn2VlZWl1atX2/107txZbdq0UWxsbJF6KQqn0ykfHx9lZmbK29vbyPtWXnCmqmLhTBWA20lRf3+X2Xuqjhw5otTUVIWFhdnbfHx81KlTJyUlJUmSkpKS5OvrawcqSQoLC5Obm5u2bNli19x///12oJKk8PBwHTx4UGfPnrVrrj5Ofk3+cYrSS2Gys7PldDpdHgAA4PZUZkNVamqqJMnPz89lu5+fnz2WmpqqevXquYxXqlRJtWrVcqkpbI6rj3GtmqvHb9RLYaZPny4fHx/7ERgYeINXDQAAyqsyG6puB+PHj1dmZqb9OH78eGm3BAAAbpIyG6r8/f0lSWlpaS7b09LS7DF/f3+lp6e7jF+5ckVnzpxxqSlsjquPca2aq8dv1EthPD095e3t7fIAAAC3pzIbqoKDg+Xv76+EhAR7m9Pp1JYtWxQaGipJCg0NVUZGhpKTk+2axMRE5eXlqVOnTnbNpk2bdPnyZbtm/fr1atq0qWrWrGnXXH2c/Jr84xSlFwAAULGVaqg6f/68du3apV27dkn6+YbwXbt26dixY3I4HBo5cqReeeUVrVq1Snv37tXTTz+tgIAA+xuCzZs318MPP6whQ4Zo69at2rx5s6KjoxUZGamAgABJ0p/+9Cd5eHho0KBB2r9/v5YtW6a5c+cqJibG7mPEiBGKj4/XrFmzlJKSoqlTp2r79u2Kjo6WpCL1AgAAKrZSXfxz+/bt6tatm/08P+gMGDBAcXFxGjt2rLKysjR06FBlZGTo3nvvVXx8vLy8vOx9PvjgA0VHR6t79+724p/z5s2zx318fLRu3TpFRUWpffv2qlOnjiZPnuyyllWXLl20dOlSTZw4URMmTFCTJk20cuVKtWzZ0q4pSi8AAKDiKjPrVFUErFOFioJ1qgDcTsr9OlUAAADlCaEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAFlOlTl5uZq0qRJCg4OVpUqVdSoUSP99a9/lWVZdo1lWZo8ebLq16+vKlWqKCwsTIcOHXKZ58yZM+rXr5+8vb3l6+urQYMG6fz58y41e/bs0X333ScvLy8FBgZqxowZBfpZsWKFmjVrJi8vL7Vq1UqfffbZzXnhAACg3CnToer111/X4sWLtWDBAh04cECvv/66ZsyYofnz59s1M2bM0Lx58xQbG6stW7aoWrVqCg8P16VLl+yafv36af/+/Vq/fr1Wr16tTZs2aejQofa40+lUjx491LBhQyUnJ2vmzJmaOnWq3nzzTbvm66+/1pNPPqlBgwZp586d6t27t3r37q19+/bdmjcDAACUaQ7r6tM+ZUyvXr3k5+en//qv/7K39enTR1WqVNH7778vy7IUEBCg0aNH64UXXpAkZWZmys/PT3FxcYqMjNSBAwcUEhKibdu2qUOHDpKk+Ph49ezZUydOnFBAQIAWL16sl156SampqfLw8JAkjRs3TitXrlRKSookqW/fvsrKytLq1avtXjp37qw2bdooNja2SK/H6XTKx8dHmZmZ8vb2NvIelRdB49aUdgu4hY6+FlHaLQCAMUX9/V2mz1R16dJFCQkJ+vbbbyVJu3fv1r/+9S898sgjkqQjR44oNTVVYWFh9j4+Pj7q1KmTkpKSJElJSUny9fW1A5UkhYWFyc3NTVu2bLFr7r//fjtQSVJ4eLgOHjyos2fP2jVXHye/Jv84hcnOzpbT6XR5AACA21Ol0m7gesaNGyen06lmzZrJ3d1dubm5evXVV9WvXz9JUmpqqiTJz8/PZT8/Pz97LDU1VfXq1XMZr1SpkmrVquVSExwcXGCO/LGaNWsqNTX1uscpzPTp0/Xyyy8X92UDAIByqEyfqVq+fLk++OADLV26VDt27NCSJUv097//XUuWLCnt1opk/PjxyszMtB/Hjx8v7ZYAAMBNUqbPVI0ZM0bjxo1TZGSkJKlVq1b64YcfNH36dA0YMED+/v6SpLS0NNWvX9/eLy0tTW3atJEk+fv7Kz093WXeK1eu6MyZM/b+/v7+SktLc6nJf36jmvzxwnh6esrT07O4LxsAAJRDZfpM1YULF+Tm5tqiu7u78vLyJEnBwcHy9/dXQkKCPe50OrVlyxaFhoZKkkJDQ5WRkaHk5GS7JjExUXl5eerUqZNds2nTJl2+fNmuWb9+vZo2baqaNWvaNVcfJ78m/zgAAKBiK9Oh6tFHH9Wrr76qNWvW6OjRo/r444/1xhtv6Pe//70kyeFwaOTIkXrllVe0atUq7d27V08//bQCAgLUu3dvSVLz5s318MMPa8iQIdq6das2b96s6OhoRUZGKiAgQJL0pz/9SR4eHho0aJD279+vZcuWae7cuYqJibF7GTFihOLj4zVr1iylpKRo6tSp2r59u6Kjo2/5+wIAAMqeMn35b/78+Zo0aZKef/55paenKyAgQH/5y180efJku2bs2LHKysrS0KFDlZGRoXvvvVfx8fHy8vKyaz744ANFR0ere/fucnNzU58+fTRv3jx73MfHR+vWrVNUVJTat2+vOnXqaPLkyS5rWXXp0kVLly7VxIkTNWHCBDVp0kQrV65Uy5Ytb82bAQAAyrQyvU7V7YZ1qlBRsE4VgNvJbbFOFQAAQHlBqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwoMyHqpMnT+qpp55S7dq1VaVKFbVq1Urbt2+3xy3L0uTJk1W/fn1VqVJFYWFhOnTokMscZ86cUb9+/eTt7S1fX18NGjRI58+fd6nZs2eP7rvvPnl5eSkwMFAzZswo0MuKFSvUrFkzeXl5qVWrVvrss89uzosGAADlTpkOVWfPnlXXrl1VuXJlff755/r3v/+tWbNmqWbNmnbNjBkzNG/ePMXGxmrLli2qVq2awsPDdenSJbumX79+2r9/v9avX6/Vq1dr06ZNGjp0qD3udDrVo0cPNWzYUMnJyZo5c6amTp2qN9980675+uuv9eSTT2rQoEHauXOnevfurd69e2vfvn235s0AAABlmsOyLKu0m7iWcePGafPmzfrqq68KHbcsSwEBARo9erReeOEFSVJmZqb8/PwUFxenyMhIHThwQCEhIdq2bZs6dOggSYqPj1fPnj114sQJBQQEaPHixXrppZeUmpoqDw8P+9grV65USkqKJKlv377KysrS6tWr7eN37txZbdq0UWxsbJFej9PplI+PjzIzM+Xt7V3i96U8Chq3prRbwC109LWI0m4BAIwp6u/vMn2matWqVerQoYP+8Ic/qF69emrbtq3eeuste/zIkSNKTU1VWFiYvc3Hx0edOnVSUlKSJCkpKUm+vr52oJKksLAwubm5acuWLXbN/fffbwcqSQoPD9fBgwd19uxZu+bq4+TX5B+nMNnZ2XI6nS4PAABweyrToer777/X4sWL1aRJE61du1bPPfechg8friVLlkiSUlNTJUl+fn4u+/n5+dljqampqlevnst4pUqVVKtWLZeawua4+hjXqskfL8z06dPl4+NjPwIDA4v1+gEAQPlRpkNVXl6e2rVrp7/97W9q27athg4dqiFDhhT5cltpGz9+vDIzM+3H8ePHS7slAABwk5TpUFW/fn2FhIS4bGvevLmOHTsmSfL395ckpaWludSkpaXZY/7+/kpPT3cZv3Llis6cOeNSU9gcVx/jWjX544Xx9PSUt7e3ywMAANyeynSo6tq1qw4ePOiy7dtvv1XDhg0lScHBwfL391dCQoI97nQ6tWXLFoWGhkqSQkNDlZGRoeTkZLsmMTFReXl56tSpk12zadMmXb582a5Zv369mjZtan/TMDQ01OU4+TX5xwEAABVbmQ5Vo0aN0jfffKO//e1vOnz4sJYuXao333xTUVFRkiSHw6GRI0fqlVde0apVq7R37149/fTTCggIUO/evSX9fGbr4Ycf1pAhQ7R161Zt3rxZ0dHRioyMVEBAgCTpT3/6kzw8PDRo0CDt379fy5Yt09y5cxUTE2P3MmLECMXHx2vWrFlKSUnR1KlTtX37dkVHR9/y9wUAAJQ9lUq7gevp2LGjPv74Y40fP17Tpk1TcHCw5syZo379+tk1Y8eOVVZWloYOHaqMjAzde++9io+Pl5eXl13zwQcfKDo6Wt27d5ebm5v69OmjefPm2eM+Pj5at26doqKi1L59e9WpU0eTJ092WcuqS5cuWrp0qSZOnKgJEyaoSZMmWrlypVq2bHlr3gwAAFCmlWidqjvvvFPbtm1T7dq1XbZnZGSoXbt2+v777401eDthnSpUFKxTBeB2clPXqTp69Khyc3MLbM/OztbJkydLMiUAAEC5VqzLf6tWrbL/vXbtWvn4+NjPc3NzlZCQoKCgIGPNAQAAlBfFClX5N387HA4NGDDAZaxy5coKCgrSrFmzjDUHAABQXhQrVOXl5Un6eSmDbdu2qU6dOjelKQAAgPKmRN/+O3LkiOk+AAAAyrUSL6mQkJCghIQEpaen22ew8r3zzju/ujEAAIDypESh6uWXX9a0adPUoUMH1a9fXw6Hw3RfAAAA5UqJQlVsbKzi4uLUv39/0/0AAACUSyVapyonJ0ddunQx3QsAAEC5VaJQNXjwYC1dutR0LwAAAOVWiS7/Xbp0SW+++aa++OIL3X333apcubLL+BtvvGGkOQAAgPKiRKFqz549atOmjSRp3759LmPctA4AACqiEoWqDRs2mO4DAACgXCvRPVUAAABwVaIzVd26dbvuZb7ExMQSNwQAAFAelShU5d9Ple/y5cvatWuX9u3bV+APLQMAAFQEJQpVs2fPLnT71KlTdf78+V/VEAAAQHlk9J6qp556ir/7BwAAKiSjoSopKUleXl4mpwQAACgXSnT57/HHH3d5blmWfvzxR23fvl2TJk0y0hgAAEB5UqJQ5ePj4/Lczc1NTZs21bRp09SjRw8jjQEAAJQnJQpV7777ruk+AAAAyrUShap8ycnJOnDggCSpRYsWatu2rZGmAAAAypsShar09HRFRkZq48aN8vX1lSRlZGSoW7du+vDDD1W3bl2TPQIAAJR5Jfr237Bhw3Tu3Dnt379fZ86c0ZkzZ7Rv3z45nU4NHz7cdI8AAABlXonOVMXHx+uLL75Q8+bN7W0hISFauHAhN6oDAIAKqURnqvLy8lS5cuUC2ytXrqy8vLxf3RQAAEB5U6JQ9dvf/lYjRozQqVOn7G0nT57UqFGj1L17d2PNAQAAlBclClULFiyQ0+lUUFCQGjVqpEaNGik4OFhOp1Pz58833SMAAECZV6J7qgIDA7Vjxw598cUXSklJkSQ1b95cYWFhRpsDAAAoL4p1pioxMVEhISFyOp1yOBx66KGHNGzYMA0bNkwdO3ZUixYt9NVXX92sXgEAAMqsYoWqOXPmaMiQIfL29i4w5uPjo7/85S964403jDUHAABQXhQrVO3evVsPP/zwNcd79Oih5OTkX90UAABAeVOsUJWWllboUgr5KlWqpNOnT//qpgAAAMqbYoWqO+64Q/v27bvm+J49e1S/fv1f3RQAAEB5U6xQ1bNnT02aNEmXLl0qMHbx4kVNmTJFvXr1MtYcAABAeVGsJRUmTpyof/7zn7rrrrsUHR2tpk2bSpJSUlK0cOFC5ebm6qWXXropjQIAAJRlxQpVfn5++vrrr/Xcc89p/PjxsixLkuRwOBQeHq6FCxfKz8/vpjQKAABQlhV78c+GDRvqs88+09mzZ3X48GFZlqUmTZqoZs2aN6M/AACAcqFEK6pLUs2aNdWxY0eTvQAAAJRbJfrbfwAAAHBFqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMKBcharXXntNDodDI0eOtLddunRJUVFRql27tqpXr64+ffooLS3NZb9jx44pIiJCVatWVb169TRmzBhduXLFpWbjxo1q166dPD091bhxY8XFxRU4/sKFCxUUFCQvLy916tRJW7duvRkvEwAAlEPlJlRt27ZN//jHP3T33Xe7bB81apQ+/fRTrVixQl9++aVOnTqlxx9/3B7Pzc1VRESEcnJy9PXXX2vJkiWKi4vT5MmT7ZojR44oIiJC3bp1065duzRy5EgNHjxYa9eutWuWLVummJgYTZkyRTt27FDr1q0VHh6u9PT0m//iAQBAmeewLMsq7SZu5Pz582rXrp0WLVqkV155RW3atNGcOXOUmZmpunXraunSpXriiSckSSkpKWrevLmSkpLUuXNnff755+rVq5dOnTolPz8/SVJsbKxefPFFnT59Wh4eHnrxxRe1Zs0a7du3zz5mZGSkMjIyFB8fL0nq1KmTOnbsqAULFkiS8vLyFBgYqGHDhmncuHFFeh1Op1M+Pj7KzMyUt7e3ybeozAsat6a0W8AtdPS1iNJuAQCMKerv73JxpioqKkoREREKCwtz2Z6cnKzLly+7bG/WrJl+85vfKCkpSZKUlJSkVq1a2YFKksLDw+V0OrV//3675pdzh4eH23Pk5OQoOTnZpcbNzU1hYWF2DQAAqNgqlXYDN/Lhhx9qx44d2rZtW4Gx1NRUeXh4yNfX12W7n5+fUlNT7ZqrA1X+eP7Y9WqcTqcuXryos2fPKjc3t9CalJSUa/aenZ2t7Oxs+7nT6bzBqwUAAOVVmT5Tdfz4cY0YMUIffPCBvLy8SrudYps+fbp8fHzsR2BgYGm3BAAAbpIyHaqSk5OVnp6udu3aqVKlSqpUqZK+/PJLzZs3T5UqVZKfn59ycnKUkZHhsl9aWpr8/f0lSf7+/gW+DZj//EY13t7eqlKliurUqSN3d/dCa/LnKMz48eOVmZlpP44fP16i9wEAAJR9ZTpUde/eXXv37tWuXbvsR4cOHdSvXz/735UrV1ZCQoK9z8GDB3Xs2DGFhoZKkkJDQ7V3716Xb+mtX79e3t7eCgkJsWuuniO/Jn8ODw8PtW/f3qUmLy9PCQkJdk1hPD095e3t7fIAAAC3pzJ9T1WNGjXUsmVLl23VqlVT7dq17e2DBg1STEyMatWqJW9vbw0bNkyhoaHq3LmzJKlHjx4KCQlR//79NWPGDKWmpmrixImKioqSp6enJOnZZ5/VggULNHbsWP35z39WYmKili9frjVr/u8bazExMRowYIA6dOige+65R3PmzFFWVpYGDhx4i94NAABQlpXpUFUUs2fPlpubm/r06aPs7GyFh4dr0aJF9ri7u7tWr16t5557TqGhoapWrZoGDBigadOm2TXBwcFas2aNRo0apblz56pBgwZ6++23FR4ebtf07dtXp0+f1uTJk5Wamqo2bdooPj6+wM3rAACgYioX61TdLlinChUF61QBuJ3cVutUAQAAlHWEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGlOlQNX36dHXs2FE1atRQvXr11Lt3bx08eNCl5tKlS4qKilLt2rVVvXp19enTR2lpaS41x44dU0REhKpWrap69eppzJgxunLlikvNxo0b1a5dO3l6eqpx48aKi4sr0M/ChQsVFBQkLy8vderUSVu3bjX+mgEAQPlUpkPVl19+qaioKH3zzTdav369Ll++rB49eigrK8uuGTVqlD799FOtWLFCX375pU6dOqXHH3/cHs/NzVVERIRycnL09ddfa8mSJYqLi9PkyZPtmiNHjigiIkLdunXTrl27NHLkSA0ePFhr1661a5YtW6aYmBhNmTJFO3bsUOvWrRUeHq709PRb82YAAIAyzWFZllXaTRTV6dOnVa9ePX355Ze6//77lZmZqbp162rp0qV64oknJEkpKSlq3ry5kpKS1LlzZ33++efq1auXTp06JT8/P0lSbGysXnzxRZ0+fVoeHh568cUXtWbNGu3bt88+VmRkpDIyMhQfHy9J6tSpkzp27KgFCxZIkvLy8hQYGKhhw4Zp3LhxRerf6XTKx8dHmZmZ8vb2NvnWlHlB49aUdgu4hY6+FlHaLQCAMUX9/V2mz1T9UmZmpiSpVq1akqTk5GRdvnxZYWFhdk2zZs30m9/8RklJSZKkpKQktWrVyg5UkhQeHi6n06n9+/fbNVfPkV+TP0dOTo6Sk5Ndatzc3BQWFmbXFCY7O1tOp9PlAQAAbk/lJlTl5eVp5MiR6tq1q1q2bClJSk1NlYeHh3x9fV1q/fz8lJqaatdcHajyx/PHrlfjdDp18eJF/fTTT8rNzS20Jn+OwkyfPl0+Pj72IzAwsPgvHAAAlAvlJlRFRUVp3759+vDDD0u7lSIbP368MjMz7cfx48dLuyUAAHCTVCrtBooiOjpaq1ev1qZNm9SgQQN7u7+/v3JycpSRkeFytiotLU3+/v52zS+/pZf/7cCra375jcG0tDR5e3urSpUqcnd3l7u7e6E1+XMUxtPTU56ensV/wQAAoNwp02eqLMtSdHS0Pv74YyUmJio4ONhlvH379qpcubISEhLsbQcPHtSxY8cUGhoqSQoNDdXevXtdvqW3fv16eXt7KyQkxK65eo78mvw5PDw81L59e5eavLw8JSQk2DUAAKBiK9NnqqKiorR06VJ98sknqlGjhn3/ko+Pj6pUqSIfHx8NGjRIMTExqlWrlry9vTVs2DCFhoaqc+fOkqQePXooJCRE/fv314wZM5SamqqJEycqKirKPov07LPPasGCBRo7dqz+/Oc/KzExUcuXL9eaNf/3jbWYmBgNGDBAHTp00D333KM5c+YoKytLAwcOvPVvDAAAKHPKdKhavHixJOnBBx902f7uu+/qmWeekSTNnj1bbm5u6tOnj7KzsxUeHq5FixbZte7u7lq9erWee+45hYaGqlq1ahowYICmTZtm1wQHB2vNmjUaNWqU5s6dqwYNGujtt99WeHi4XdO3b1+dPn1akydPVmpqqtq0aaP4+PgCN68DAICKqVytU1XesU4VKgrWqQJwO7kt16kCAAAoqwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCAUAUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVQAAAAYQqgAAAAwgVAEAABhAqAIAADCgUmk3AAAo34LGrSntFnALHX0torRbKLM4UwUAAGAAoQoAAMAAQhUAAIABhCoAAAADCFUAAAAGEKoAAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYAChCgAAwABCFQAAgAGEKgAAAAMIVcW0cOFCBQUFycvLS506ddLWrVtLuyUAAFAGEKqKYdmyZYqJidGUKVO0Y8cOtW7dWuHh4UpPTy/t1gAAQCkjVBXDG2+8oSFDhmjgwIEKCQlRbGysqlatqnfeeae0WwMAAKWMUFVEOTk5Sk5OVlhYmL3Nzc1NYWFhSkpKKsXOAABAWVCptBsoL3766Sfl5ubKz8/PZbufn59SUlIK3Sc7O1vZ2dn288zMTEmS0+m8eY2WUXnZF0q7BdxCFfEzXpHx812xVMSf7/zXbFnWdesIVTfR9OnT9fLLLxfYHhgYWArdALeOz5zS7gDAzVKRf77PnTsnHx+fa44TqoqoTp06cnd3V1pamsv2tLQ0+fv7F7rP+PHjFRMTYz/Py8vTmTNnVLt2bTkcjpvaL0qf0+lUYGCgjh8/Lm9v79JuB4BB/HxXLJZl6dy5cwoICLhuHaGqiDw8PNS+fXslJCSod+/ekn4OSQkJCYqOji50H09PT3l6erps8/X1vcmdoqzx9vbmP13gNsXPd8VxvTNU+QhVxRATE6MBAwaoQ4cOuueeezRnzhxlZWVp4MCBpd0aAAAoZYSqYujbt69Onz6tyZMnKzU1VW3atFF8fHyBm9cBAEDFQ6gqpujo6Gte7gOu5unpqSlTphS4BAyg/OPnG4VxWDf6fiAAAABuiMU/AQAADCBUAQAAGECoAgAAMIBQBQAAYADf/gMM+emnn/TOO+8oKSlJqampkiR/f3916dJFzzzzjOrWrVvKHQIAbia+/QcYsG3bNoWHh6tq1aoKCwuz1y5LS0tTQkKCLly4oLVr16pDhw6l3CkA4GYhVAEGdO7cWa1bt1ZsbGyBv+toWZaeffZZ7dmzR0lJSaXUIYCb5fjx45oyZYreeeed0m4FpYxQBRhQpUoV7dy5U82aNSt0PCUlRW3bttXFixdvcWcAbrbdu3erXbt2ys3NLe1WUMq4pwowwN/fX1u3br1mqNq6dSt/zggop1atWnXd8e+///4WdYKyjlAFGPDCCy9o6NChSk5OVvfu3QvcU/XWW2/p73//eyl3CaAkevfuLYfDoetd2PnlZX9UTFz+AwxZtmyZZs+ereTkZPsygLu7u9q3b6+YmBj98Y9/LOUOAZTEHXfcoUWLFul3v/tdoeO7du1S+/btufwHQhVg2uXLl/XTTz9JkurUqaPKlSuXckcAfo3HHntMbdq00bRp0wod3717t9q2bau8vLxb3BnKGi7/AYZVrlxZ9evXL+02ABgyZswYZWVlXXO8cePG2rBhwy3sCGUVZ6oAAAAM4M/UAAAAGECoAgAAMIBQBQAAYAChCgCKyOFwaOXKlaXdBoAyilAFAP9famqqhg0bpjvvvFOenp4KDAzUo48+qoSEhNJuDUA5wJIKACDp6NGj6tq1q3x9fTVz5ky1atVKly9f1tq1axUVFaWUlJTSbhFAGceZKgCQ9Pzzz8vhcGjr1q3q06eP7rrrLrVo0UIxMTH65ptvCt3nxRdf1F133aWqVavqzjvv1KRJk3T58mV7fPfu3erWrZtq1Kghb29vtW/fXtu3b5ck/fDDD3r00UdVs2ZNVatWTS1atNBnn312S14rgJuDM1UAKrwzZ84oPj5er776qqpVq1Zg3NfXt9D9atSoobi4OAUEBGjv3r0aMmSIatSoobFjx0qS+vXrp7Zt22rx4sVyd3fXrl277BX2o6KilJOTo02bNqlatWr697//rerVq9+01wjg5iNUAajwDh8+LMuy1KxZs2LtN3HiRPvfQUFBeuGFF/Thhx/aoerYsWMaM2aMPW+TJk3s+mPHjqlPnz5q1aqVJOnOO+/8tS8DQCnj8h+ACq+kf1hi2bJl6tq1q/z9/VW9enVNnDhRx44ds8djYmI0ePBghYWF6bXXXtN3331njw0fPlyvvPKKunbtqilTpmjPnj2/+nUAKF2EKgAVXpMmTeRwOIp1M3pSUpL69eunnj17avXq1dq5c6deeukl5eTk2DVTp07V/v37FRERocTERIWEhOjjjz+WJA0ePFjff/+9+vfvr71796pDhw6aP3++8dcG4Nbhb/8BgKRHHnlEe/fu1cGDBwvcV5WRkSFfX185HA59/PHH6t27t2bNmqVFixa5nH0aPHiwPvroI2VkZBR6jCeffFJZWVlatWpVgbHx48drzZo1nLECyjHOVAGApIULFyo3N1f33HOP/vd//1eHDh3SgQMHNG/ePIWGhhaob9KkiY4dO6YPP/xQ3333nebNm2efhZKkixcvKjo6Whs3btQPP/ygzZs3a9u2bWrevLkkaeTIkVq7dq2OHDmiHTt2aMOGDfYYgPKJG9UBQD/fKL5jxw69+uqrGj16tH788UfVrVtX7du31+LFiwvUP/bYYxo1apSio6OVnZ2tiIgITZo0SVOnTpUkubu76z//+Y+efvpppaWlqU6dOnr88cf18ssvS5Jyc3MVFRWlEydOyNvbWw8//LBmz559K18yAMO4/AcAAGAAl/8AAAAMIFQBAAAYQKgCAAAwgFAFAABgAKEKAADAAEIVAACAAYQqAAAAAwhVAAAABhCqAAAADCBUAQAAGECoAgAAMIBQBQAAYMD/A42WJGNeli8+AAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "#提示:value_counts\n",
+ "#绘制两种类别的柱状图\n",
+ "#提示:dataframe可以直接plot(kind='bar')\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 查看正负样本分布情况\n",
+ "class_counts = y.value_counts()\n",
+ "\n",
+ "# 打印结果\n",
+ "print(class_counts)\n",
+ "\n",
+ "# 绘制柱状图\n",
+ "class_counts.plot(kind='bar')\n",
+ "plt.xlabel('Class')\n",
+ "plt.ylabel('Count')\n",
+ "plt.title('Distribution of Classes')\n",
+ "plt.show()\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "103\n",
+ "0 15\n",
+ "1 13\n",
+ "2 12\n",
+ "3 10\n",
+ "4 16\n",
+ " ..\n",
+ "112910 16\n",
+ "112911 24\n",
+ "112912 14\n",
+ "112913 10\n",
+ "112914 21\n",
+ "Name: age_discretized, Length: 108648, dtype: int64\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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/+g937hxI9asWQOtVouePXuWWHf79m2D1yYmJlI41p+Dvr6+OHPmDLZv315k+WddsfPw8EDTpk3xxRdfGBwPvT/++EP6c1nOp8jISHz55ZcIDw83uPdHz8bGBt26dcOXX36JW7duPXW7ffv2xbFjx3DixAmD8ZKu3JG88QoRUQl+/PFHXLp0Cfn5+cjIyEBcXBxiYmLg7OyMnTt3wtzcvMRlw8LCcOjQIfj4+MDZ2RmZmZlYuXIlHBwc8MorrwD4O5xYW1sjIiICderUgaWlJTw9PYvcq1Fa9erVwyuvvIKRI0ciIyMDS5YsQbNmzQy+GmD06NHYtm0bevfujTfffBNXr17FN998Y3CTc1l769+/P7p3744PP/wQ165dQ7t27bBv3z7s2LEDQUFBRdZdXmPHjsWXX36JESNGIDExES4uLti2bRuOHDmCJUuWPPV+mpJs2LAB7du3N/jG58e9/vrrmDhxIn7++Wd06NABn376KQYMGIDOnTtj5MiRuHPnDlasWIHWrVsbhIKuXbti3LhxmDdvHpKSktCrVy+YmZnh8uXL2Lp1K5YuXYrBgwc/s79t27bBysoKeXl50jdVHzlyBO3atcPWrVufuuzo0aORlZWFHj16wMHBAdevX8fy5cvRvn176b6rqVOnYtu2bfj3v/+NUaNGwcPDA1lZWdi5cyciIiLQrl27EtdvYmKCNWvWoE+fPmjVqhVGjhyJxo0b4/fff8eBAwegVqvxww8/APg7PAHAhx9+iCFDhsDMzAz9+/cv8sWXf/75J9577z24u7tDpVIZfNcXALzxxhuwtLREeHg4XnnlFbRp0wZjxoxBkyZNkJGRgYSEBPz22284c+YMgL+D7n//+1/07t0bkydPlh67119tJDJg1GfciKoh/WP3+kmpVAo7Ozvx2muviaVLlxo83q335GP3sbGxYsCAAcLe3l4olUphb28v3n77bfHLL78YLLdjxw7h7u4uatWqZfCYe9euXUWrVq2K7a+kx+6//fZbERISImxsbISFhYXw8fER169fL7L8woULRePGjYVKpRKdO3cWp06dKrLOp/X25OPdQghx9+5dERwcLOzt7YWZmZlo3ry5+Pzzzw0exxbi78fuAwICivT0rEev9TIyMsTIkSNFgwYNhFKpFG3atCn2qwFK89h9YmKiACBmzZpVYs21a9cEABEcHCzN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ITY2VpqXkpKCtLQ0aLVaAIBWq8W5c+eQmZkp1cTExECtVsPd3V2qeXwd+hr9OoiIiIiMHogKCwsRGRkJPz8/1Kr1fxesNBoN/P39MWXKFBw4cACJiYkYOXIktFotOnXqBADo1asX3N3dMWzYMJw5cwbR0dGYOXMmAgICpCs848ePx6+//opp06bh0qVLWLlyJbZs2YLg4GCj7C8RERFVP0b/yGz//v1IS0vDqFGjiowtXrwYJiYm8PX1RW5uLry9vbFy5Upp3NTUFLt27cKECROg1WphaWkJPz8/hIWFSTWurq7YvXs3goODsXTpUjg4OGDNmjV85J6IiIgkRg9EvXr1ghCi2DFzc3OEh4cjPDy8xOWdnZ2xZ8+ep26jW7duOH369D/qk4iIiGouo39kRkRERGRsDEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQke7WM3QAREZWfy4zdpaq7Nt+nkjsher7xChERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREcme0QPR77//jnfffRf169eHhYUF2rRpg1OnTknjQgiEhoaiUaNGsLCwgJeXFy5fvmywjqysLAwdOhRqtRrW1tbw9/fHvXv3DGrOnj2LV199Febm5nB0dMSCBQuqZP+IiIio+jNqILpz5w46d+4MMzMz/Pjjj7hw4QIWLlyIunXrSjULFizAsmXLEBERgePHj8PS0hLe3t54+PChVDN06FAkJycjJiYGu3btwqFDhzB27FhpXKfToVevXnB2dkZiYiI+//xzzJkzB6tXr67S/SUiIqLqyai/ZfbZZ5/B0dERkZGR0jxXV1fpz0IILFmyBDNnzsSAAQMAAOvXr4etrS2+//57DBkyBBcvXsTevXtx8uRJdOzYEQCwfPly9O3bF1988QXs7e2xYcMG5OXl4euvv4ZSqUSrVq2QlJSERYsWGQQnIiIikiejXiHauXMnOnbsiH//+9+wsbHBCy+8gK+++koaT01NRXp6Ory8vKR5Go0Gnp6e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nDgRWq0WnTp1AvD3F0G6u7tj2LBhWLBgAdLT0zFz5kwEBARIV3jGjx+PFStWYNq0aRg1ahTi4uKwZcsW7N69u2p3mIiIiKotowWi0li8eDFMTEzg6+uL3NxceHt7Y+XKldK4qakpdu3ahQkTJkCr1cLS0hJ+fn4ICwuTalxdXbF7924EBwdj6dKlcHBwwJo1a+Dt7W2MXSIiIqJqqFoFovj4eIPX5ubmCA8PR3h4eInL6G/yfppu3brh9OnTFdEiERER1UBGu4eIiIiIqLpgICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZYyAiIiIi2WMgIiIiItljICIiIiLZq1a/ZUZUU7jM2F2qumvzfSq5EyIiKg0GIiIieiaGfKrp+JEZERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREckeAxERERHJHgMRERERyR4DEREREcmeUQPRqlWr0LZtW6jVaqjVami1Wvz444/S+MOHDxEQEID69evDysoKvr6+yMjIMFhHWloafHx8ULt2bdjY2GDq1KnIz883qImPj0eHDh2gUqnQrFkzREVFVcXuERER0XPCqIHIwcEB8+fPR2JiIk6dOoUePXpgwIABSE5OBgAEBwfjhx9+wNatW3Hw4EHcvHkTgwYNkpYvKCiAj48P8vLycPToUaxbtw5RUVEIDQ2ValJTU+Hj44Pu3bsjKSkJQUFBGD16NKKjo6t8f4mIiKh6qmXMjffv39/g9SeffIJVq1bh2LFjcHBwwNq1a7Fx40b06NEDABAZGQk3NzccO3YMnTp1wr59+3DhwgXs378ftra2aN++PebOnYvp06djzpw5UCqViIiIgKurKxYuXAgAcHNzw+HDh7F48WJ4e3tX+T4TERFR9WPUQPS4goICbN26Fffv34dWq0ViYiIePXoELy8vqaZly5ZwcnJCQkICOnXqhISEBLRp0wa2trZSjbe3NyZMmIDk5GS88MILSEhIMFiHviYoKKjEXnJzc5Gbmyu91ul0FbejREQy4TJjd6nqrs33qeROiJ7N6DdVnzt3DlZWVlCpVBg/fjy2b98Od3d3pKenQ6lUwtra2qDe1tYW6enpAID09HSDMKQf1489rUan0+HBgwfF9jRv3jxoNBppcnR0rIhdJSIiomrK6IGoRYsWSEpKwvHjxzFhwgT4+fnhwoULRu0pJCQEOTk50nTjxg2j9kNERESVy+gfmSmVSjRr1gwA4OHhgZMnT2Lp0qV46623kJeXh+zsbIOrRBkZGbCzswMA2NnZ4cSJEwbr0z+F9njNk0+mZWRkQK1Ww8LCotieVCoVVCpVhewfERERVX9Gv0L0pMLCQuTm5sLDwwNmZmaIjY2VxlJSUpCWlgatVgsA0Gq1OHfuHDIzM6WamJgYqNVquLu7SzWPr0Nfo18HERERkVGvEIWEhKBPnz5wcnLC3bt3sXHjRsTHxyM6OhoajQb+/v6YMmUK6tWrB7VajYkTJ0Kr1aJTp04AgF69esHd3R3Dhg3DggULkJ6ejpkzZyIgIEC6wjN+/HisWLEC06ZNw6hRoxAXF4ctW7Zg9+7S3exHRERENZ9RA1FmZiaGDx+OW7duQaPRoG3btoiOjsZrr70GAFi8eDFMTEzg6+uL3NxceHt7Y+XKldLypqam2LVrFyZMmACtVgtLS0v4+fkhLCxMqnF1dcXu3bsRHByMpUuXwsHBAWvWrOEj90RERCQxaiBau3btU8fNzc0RHh6O8PDwEmucnZ2xZ8+ep66nW7duOH36dLl6JCIiopqv2t1DRERERFTVGIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2ahm7ASIiIj2XGbtLVXdtvk8ld0JywytEREREJHu8QkT0DPwXKxFRzccrRERERCR7DEREREQke0YNRPPmzcOLL76IOnXqwMbGBgMHDkRKSopBzcOHDxEQEID69evDysoKvr6+yMjIMKhJS0uDj48PateuDRsbG0ydOhX5+fkGNfHx8ejQoQNUKhWaNWuGqKioyt49IiIiek4YNRAdPHgQAQEBOHbsGGJiYvDo0SP06tUL9+/fl2qCg4Pxww8/YOvWrTh48CBu3ryJQYMGSeMFBQXw8fFBXl4ejh49inXr1iEqKgqhoaFSTWpqKnx8fNC9e3ckJSUhKCgIo0ePRnR0dJXuLxEREVVPRr2peu/evQavo6KiYGNjg8TERHTp0gU5OTlYu3YtNm7ciB49egAAIiMj4ebmhmPHjqFTp07Yt28fLly4gP3798PW1hbt27fH3LlzMX36dMyZMwdKpRIRERFwdXXFwoULAQBubm44fPgwFi9eDG9v7yrfbyIiIqpeqtU9RDk5OQCAevXqAQASExPx6NEjeHl5STUtW7aEk5MTEhISAAAJCQlo06YNbG1tpRpvb2/odDokJydLNY+vQ1+jXwcRERHJW7V57L6wsBBBQUHo3LkzWrduDQBIT0+HUqmEtbW1Qa2trS3S09OlmsfDkH5cP/a0Gp1OhwcPHsDCwsJgLDc3F7m5udJrnU73z3eQiIiIqq1qc4UoICAA58+fx6ZNm4zdCubNmweNRiNNjo6Oxm6JiIiIKlG1CESBgYHYtWsXDhw4AAcHB2m+nZ0d8vLykJ2dbVCfkZEBOzs7qebJp870r59Vo1ari1wdAoCQkBDk5ORI040bN/7xPhIREVH1ZdRAJIRAYGAgtm/fjri4OLi6uhqMe3h4wMzMDLGxsdK8lJQUpKWlQavVAgC0Wi3OnTuHzMxMqSYmJgZqtRru7u5SzePr0Nfo1/EklUoFtVptMBEREVHNZdR7iAICArBx40bs2LEDderUke750Wg0sLCwgEajgb+/P6ZMmYJ69epBrVZj4sSJ0Gq16NSpEwCgV69ecHd3x7Bhw7BgwQKkp6dj5syZCAgIgEqlAgCMHz8eK1aswLRp0zBq1CjExcVhy5Yt2L27dD/JQERE1Rd/XocqglGvEK1atQo5OTno1q0bGjVqJE2bN2+WahYvXox+/frB19cXXbp0gZ2dHb777jtp3NTUFLt27YKpqSm0Wi3effddDB8+HGFhYVKNq6srdu/ejZiYGLRr1w4LFy7EmjVr+Mg9ERERATDyFSIhxDNrzM3NER4ejvDw8BJrnJ2dsWfPnqeup1u3bjh9+nSZeyQiIqKar1rcVE1ERERkTAxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHsMRERERCR7DEREREQkewxEREREJHu1jN0AERFRVXOZsbtUddfm+1RyJ1Rd8AoRERERyR4DEREREckeAxERERHJnlED0aFDh9C/f3/Y29tDoVDg+++/NxgXQiA0NBSNGjWChYUFvLy8cPnyZYOarKwsDB06FGq1GtbW1vD398e9e/cMas6ePYtXX30V5ubmcHR0xIIFCyp714iIiOg5YtRAdP/+fbRr1w7h4eHFji9YsADLli1DREQEjh8/DktLS3h7e+Phw4dSzdChQ5GcnIyYmBjs2rULhw4dwtixY6VxnU6HXr16wdnZGYmJifj8888xZ84crF69utL3j4iIiJ4PRn3KrE+fPujTp0+xY0IILFmyBDNnzsSAAQMAAOvXr4etrS2+//57DBkyBBcvXsTevXtx8uRJdOzYEQCwfPly9O3bF1988QXs7e2xYcMG5OXl4euvv4ZSqUSrVq2QlJSERYsWGQQnIiIikq9qew9Ramoq0tPT4eXlJc3TaDTw9PREQkICACAhIQHW1tZSGAIALy8vmJiY4Pjx41JNly5doFQqpRpvb2+kpKTgzp07VbQ3REREVJ1V2+8hSk9PBwDY2toazLe1tZXG0tPTYWNjYzBeq1Yt1KtXz6DG1dW1yDr0Y3Xr1i2y7dzcXOTm5kqvdTrdP9wbIiIiqs6q7RUiY5o3bx40Go00OTo6GrslIiIiqkTVNhDZ2dkBADIyMgzmZ2RkSGN2dnbIzMw0GM/Pz0dWVpZBTXHreHwbTwoJCUFOTo403bhx45/vEBEREVVb1TYQubq6ws7ODrGxsdI8nU6H48ePQ6vVAgC0Wi2ys7ORmJgo1cTFxaGwsBCenp5SzaFDh/Do0SOpJiYmBi1atCj24zIAUKlUUKvVBhMRERHVXEYNRPfu3UNSUhKSkpIA/H0jdVJSEtLS0qBQKBAUFISPP/4YO3fuxLlz5zB8+HDY29tj4MCBAAA3Nzf07t0bY8aMwYkTJ3DkyBEEBgZiyJAhsLe3BwC88847UCqV8Pf3R3JyMjZv3oylS5diypQpRtprIiIiqm6MelP1qVOn0L17d+m1PqT4+fkhKioK06ZNw/379zF27FhkZ2fjlVdewd69e2Fubi4ts2HDBgQGBqJnz54wMTGBr68vli1bJo1rNBrs27cPAQEB8PDwQIMGDRAaGspH7omIiEhi1EDUrVs3CCFKHFcoFAgLC0NYWFiJNfXq1cPGjRufup22bdvip59+KnefREREVLNV28fuiSqDy4zdpaq7Nt+nkjshIqLqhIGIiIioFPgPqpqt2j5lRkRERFRVGIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9vhbZkRERJWEv3/2/OAVIiIiIpI9BiIiIiKSPQYiIiIikj0GIiIiIpI9BiIiIiKSPQYiIiIikj0GIiIiIpI9BiIiIiKSPQYiIiIikj0GIiIiIpI9BiIiIiKSPf6WGRERUTXC3z8zDl4hIiIiItljICIiIiLZYyAiIiIi2WMgIiIiItmTVSAKDw+Hi4sLzM3N4enpiRMnThi7JSIiIqoGZPOU2ebNmzFlyhRERETA09MTS5Ysgbe3N1JSUmBjY2Ps9oiIiMqNT6b9c7K5QrRo0SKMGTMGI0eOhLu7OyIiIlC7dm18/fXXxm6NiIiIjEwWgSgvLw+JiYnw8vKS5pmYmMDLywsJCQlG7IyIiIiqA1l8ZPbnn3+ioKAAtra2BvNtbW1x6dKlIvW5ubnIzc2VXufk5AAAdDpd5TZKla4w969S1T3+XlfXZUpbz2Wq9zLPw7nGZWrmMq1nR5dqmfMfeZeqrjrS768Q4tnFQgZ+//13AUAcPXrUYP7UqVPFSy+9VKR+9uzZAgAnTpw4ceLEqQZMN27ceGZWkMUVogYNGsDU1BQZGRkG8zMyMmBnZ1ekPiQkBFOmTJFeFxYWIisrC/Xr14dCoaj0fnU6HRwdHXHjxg2o1epK3151xGPAYyD3/Qd4DAAeA4DHACj/MRBC4O7du7C3t39mrSwCkVKphIeHB2JjYzFw4EAAf4ec2NhYBAYGFqlXqVRQqVQG86ytraugU0NqtVq2J78ejwGPgdz3H+AxAHgMAB4DoHzHQKPRlKpOFoEIAKZMmQI/Pz907NgRL730EpYsWYL79+9j5MiRxm6NiIiIjEw2geitt97CH3/8gdDQUKSnp6N9+/bYu3dvkRutiYiISH5kE4gAIDAwsNiPyKoblUqF2bNnF/nYTk54DHgM5L7/AI8BwGMA8BgAVXMMFEKU5lk0IiIioppLFl/MSERERPQ0DEREREQkewxEREREJHsMRERERCR7DETVUHh4OFxcXGBubg5PT0+cOHHC2C1VmTlz5kChUBhMLVu2NHZblebQoUPo378/7O3toVAo8P333xuMCyEQGhqKRo0awcLCAl5eXrh8+bJxmq0kzzoGI0aMKHJO9O7d2zjNVpJ58+bhxRdfRJ06dWBjY4OBAwciJSXFoObhw4cICAhA/fr1YWVlBV9f3yLfvv+8Ks3+d+vWrch5MH78eCN1XPFWrVqFtm3bSl88qNVq8eOPP0rjNfn913vWMajsc4CBqJrZvHkzpkyZgtmzZ+Pnn39Gu3bt4O3tjczMTGO3VmVatWqFW7duSdPhw4eN3VKluX//Ptq1a4fw8PBixxcsWIBly5YhIiICx48fh6WlJby9vfHw4cMq7rTyPOsYAEDv3r0Nzolvv/22CjusfAcPHkRAQACOHTuGmJgYPHr0CL169cL9+/elmuDgYPzwww/YunUrDh48iJs3b2LQoEFG7LrilGb/AWDMmDEG58GCBQuM1HHFc3BwwPz585GYmIhTp06hR48eGDBgAJKTkwHU7Pdf71nHAKjkc6BCfj2VKsxLL70kAgICpNcFBQXC3t5ezJs3z4hdVZ3Zs2eLdu3aGbsNowAgtm/fLr0uLCwUdnZ24vPPP5fmZWdnC5VKJb799lsjdFj5njwGQgjh5+cnBgwYYJR+jCUzM1MAEAcPHhRC/P2+m5mZia1bt0o1Fy9eFABEQkKCsdqsNE/uvxBCdO3aVUyePNl4TRlB3bp1xZo1a2T3/j9OfwyEqPxzgFeIqpG8vDwkJibCy8tLmmdiYgIvLy8kJCQYsbOqdfnyZdjb26NJkyYYOnQo0tLSjN2SUaSmpiI9Pd3gfNBoNPD09JTV+QAA8fHxsLGxQYsWLTBhwgTcvn3b2C1VqpycHABAvXr1AACJiYl49OiRwbnQsmVLODk51chz4cn919uwYQMaNGiA1q1bIyQkBH/99Zcx2qt0BQUF2LRpE+7fvw+tViu79x8oegz0KvMckNU3VVd3f/75JwoKCor8nIitrS0uXbpkpK6qlqenJ6KiotCiRQvcunULH330EV599VWcP38ederUMXZ7VSo9PR0Aij0f9GNy0Lt3bwwaNAiurq64evUqPvjgA/Tp0wcJCQkwNTU1dnsVrrCwEEFBQejcuTNat24N4O9zQalUFvmR6Zp4LhS3/wDwzjvvwNnZGfb29jh79iymT5+OlJQUfPfdd0bstmKdO3cOWq0WDx8+hJWVFbZv3w53d3ckJSXJ5v0v6RgAlX8OMBBRtdKnTx/pz23btoWnpyecnZ2xZcsW+Pv7G7EzMpYhQ4ZIf27Tpg3atm2Lpk2bIj4+Hj179jRiZ5UjICAA58+fr9H3zj1NSfs/duxY6c9t2rRBo0aN0LNnT1y9ehVNmzat6jYrRYsWLZCUlIScnBxs27YNfn5+OHjwoLHbqlIlHQN3d/dKPwf4kVk10qBBA5iamhZ5ciAjIwN2dnZG6sq4rK2t8a9//QtXrlwxditVTv+e83ww1KRJEzRo0KBGnhOBgYHYtWsXDhw4AAcHB2m+nZ0d8vLykJ2dbVBf086Fkva/OJ6engBQo84DpVKJZs2awcPDA/PmzUO7du2wdOlS2bz/QMnHoDgVfQ4wEFUjSqUSHh4eiI2NleYVFhYiNjbW4DNUObl37x6uXr2KRo0aGbuVKufq6go7OzuD80Gn0+H48eOyPR8A4LfffsPt27dr1DkhhEBgYCC2b9+OuLg4uLq6Gox7eHjAzMzM4FxISUlBWlpajTgXnrX/xUlKSgKAGnUePKmwsBC5ubk1/v1/Gv0xKE6FnwOVdrs2lcumTZuESqUSUVFR4sKFC2Ls2LHC2tpapKenG7u1KvH++++L+Ph4kZqaKo4cOSK8vLxEgwYNRGZmprFbqxR3794Vp0+fFqdPnxYAxKJFi8Tp06fF9evXhRBCzJ8/X1hbW4sdO3aIs2fPigEDBghXV1fx4MEDI3decZ52DO7evSv+85//iISEBJGamir2798vOnToIJo3by4ePnxo7NYrzIQJE4RGoxHx8fHi1q1b0vTXX39JNePHjxdOTk4iLi5OnDp1Smi1WqHVao3YdcV51v5fuXJFhIWFiVOnTonU1FSxY8cO0aRJE9GlSxcjd15xZsyYIQ4ePChSU1PF2bNnxYwZM4RCoRD79u0TQtTs91/vacegKs4BBqJqaPny5cLJyUkolUrx0ksviWPHjhm7pSrz1ltviUaNGgmlUikaN24s3nrrLXHlyhVjt1VpDhw4IAAUmfz8/IQQfz96P2vWLGFraytUKpXo2bOnSElJMW7TFexpx+Cvv/4SvXr1Eg0bNhRmZmbC2dlZjBkzpsb9A6G4/QcgIiMjpZoHDx6I9957T9StW1fUrl1bvPHGG+LWrVvGa7oCPWv/09LSRJcuXUS9evWESqUSzZo1E1OnThU5OTnGbbwCjRo1Sjg7OwulUikaNmwoevbsKYUhIWr2+6/3tGNQFeeAQgghKuZaExEREdHzifcQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBEREZHsMRARERGR7DEQERERkewxEBFRjdStWzcEBQUZu40iRowYgYEDB1bqNlxcXLBkyZJK3QZRTcNARETlkpCQAFNTU/j4+FTZNqOioqBQKKBQKGBqaoq6devC09MTYWFhyMnJMaj97rvvMHfu3Crr7UnXrl2DQqGQfm9Jb+nSpYiKijJKT0RUMgYiIiqXtWvXYuLEiTh06BBu3rxZZdtVq9W4desWfvvtNxw9ehRjx47F+vXr0b59e4M+6tWrhzp16lRKD48ePSr3shqNBtbW1hXXDBFVCAYiIiqze/fuYfPmzZgwYQJ8fHyKveKxc+dONG/eHObm5ujevTvWrVsHhUKB7Oxsqebw4cN49dVXYWFhAUdHR0yaNAn3799/6rYVCgXs7OzQqFEjuLm5wd/fH0ePHsW9e/cwbdo0qe7Jj8xWrlwp9WNra4vBgwdLY4WFhViwYAGaNWsGlUoFJycnfPLJJwD+70rP5s2b0bVrV5ibm2PDhg0AgDVr1sDNzQ3m5uZo2bIlVq5cKa1T/4vtL7zwAhQKBbp16wbA8CMz/bqfnPS1pTlGmZmZ6N+/PywsLODq6ir1RkRlw0BERGW2ZcsWtGzZEi1atMC7776Lr7/+Go//LGJqaioGDx6MgQMH4syZMxg3bhw+/PBDg3VcvXoVvXv3hq+vL86ePYvNmzfj8OHDCAwMLHM/NjY2GDp0KHbu3ImCgoIi46dOncKkSZMQFhaGlJQU7N27F126dJHGQ0JCMH/+fMyaNQsXLlzAxo0bYWtra7COGTNmYPLkybh48SK8vb2xYcMGhIaG4pNPPsHFixfx6aefYtasWVi3bh0A4MSJEwCA/fv349atW/juu++K9OXo6Ihbt25J0+nTp1G/fn2pt9IcoxEjRuDGjRs4cOAAtm3bhpUrVyIzM7PMx5BI9irsZ2KJSDZefvllsWTJEiGEEI8ePRINGjQQBw4ckManT58uWrdubbDMhx9+KACIO3fuCCGE8Pf3F2PHjjWo+emnn4SJiYl48OBBsduNjIwUGo2m2LFVq1YJACIjI0MIIUTXrl3F5MmThRBC/O9//xNqtVrodLoiy+l0OqFSqcRXX31V7HpTU1MFAGl/9Zo2bSo2btxoMG/u3LlCq9UaLHf69GmDGj8/PzFgwIAi23nw4IHw9PQU/fr1EwUFBUKIZx+jlJQUAUCcOHFCGr948aIAIBYvXlzs/hBR8WoZM4wR0fMnJSUFJ06cwPbt2wEAtWrVwltvvYW1a9dKH/WkpKTgxRdfNFjupZdeMnh95swZnD171uAjHiEECgsLkZqaCjc3tzL1Jf7/FSqFQlFk7LXXXoOzszOaNGmC3r17o3fv3njjjTdQu3ZtXLx4Ebm5uejZs+dT19+xY0fpz/fv38fVq1fh7++PMWPGSPPz8/Oh0WjK1LfeqFGjcPfuXcTExMDE5O+L9886Rr/88gtq1aoFDw8Pabxly5a8R4moHBiIiKhM1q5di/z8fNjb20vzhBBQqVRYsWJFqQPBvXv3MG7cOEyaNKnImJOTU5n7unjxItRqNerXr19krE6dOvj5558RHx+Pffv2ITQ0FHPmzMHJkydhYWFRqvVbWloa9A4AX331FTw9PQ3qTE1Ny9z7xx9/jOjoaJw4ccLgRvBnHaNffvmlzNsiouIxEBFRqeXn52P9+vVYuHAhevXqZTA2cOBAfPvttxg/fjxatGiBPXv2GIyfPHnS4HWHDh1w4cIFNGvW7B/3lZmZiY0bN2LgwIHS1ZUn1apVC15eXvDy8sLs2bNhbW2NuLg49O3bFxYWFoiNjcXo0aNLtT1bW1vY29vj119/xdChQ4utUSqVAFDsPU2P+9///oewsDD8+OOPaNq0qcHYs45Ry5YtkZ+fj8TEROmKXEpKisGN60RUOgxERFRqu3btwp07d+Dv71/kSpCvry/Wrl2L8ePHY9y4cVi0aBGmT58Of39/JCUlSU+i6T/Smj59Ojp16oTAwECMHj0alpaWuHDhAmJiYrBixYoSexBCID09HUIIZGdnIyEhAZ9++ik0Gg3mz59fYt+//vorunTpgrp162LPnj0oLCxEixYtYG5ujunTp2PatGlQKpXo3Lkz/vjjDyQnJ8Pf37/EPj766CNMmjQJGo0GvXv3Rm5uLk6dOoU7d+5gypQpsLGxgYWFBfbu3QsHBweYm5sXOWbnz5/H8OHDMX36dLRq1Qrp6ekA/g5T9erVe+YxatGiBXr37o1x48Zh1apVqFWrFoKCgkp91YuIHmPMG5iI6PnSr18/0bdv32LHjh8/LgCIM2fOCCGE2LFjh2jWrJlQqVSiW7du0k3Pj98wfeLECfHaa68JKysrYWlpKdq2bSs++eSTErcfGRkpAAgAQqFQCI1GI1566SURFhYmcnJyDGofv6n6p59+El27dhV169YVFhYWom3btmLz5s1SbUFBgfj444+Fs7OzMDMzE05OTuLTTz8VQpR8c7QQQmzYsEG0b99eKJVKUbduXdGlSxfx3XffSeNfffWVcHR0FCYmJqJr165CCMObqh/fn8cnfW1pjtGtW7eEj4+PUKlUwsnJSaxfv144OzvzpmqiMlII8dizskREleSTTz5BREQEbty4YexWiIiK4EdmRFQpVq5ciRdffBH169fHkSNH8Pnnn5frO4aIiKoCAxERVYrLly/j448/RlZWFpycnPD+++8jJCTE2G0RERWLH5kRERGR7PGnO4iIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPYYiIiIiEj2GIiIiIhI9hiIiIiISPb+H9KUpUli5oBUAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)\n",
+ "import pandas as pd\n",
+ "\n",
+ "# 转化成整数\n",
+ "\n",
+ "X['age'] = X['age'].astype(int)\n",
+ "\n",
+ "print(max(X['age']))\n",
+ "# 计算分桶边界\n",
+ "age_bins = range(0, max(X['age']) + 4, 3)\n",
+ "\n",
+ "# 进行离散化\n",
+ "X['age_discretized'] = pd.cut(X['age'], bins=age_bins, labels=False, right=False)\n",
+ "\n",
+ "# 打印离散化后的结果\n",
+ "print(X['age_discretized'])\n",
+ "\n",
+ "# 统计每个年龄段的计数\n",
+ "age_counts = X['age_discretized'].value_counts().sort_index()\n",
+ "\n",
+ "# 绘制柱状图\n",
+ "plt.bar(age_counts.index, age_counts.values)\n",
+ "plt.xlabel('Age Discretized')\n",
+ "plt.ylabel('Count')\n",
+ "plt.title('Distribution of Age Discretized')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_discretized \n",
+ " age_0 \n",
+ " age_7 \n",
+ " age_8 \n",
+ " age_9 \n",
+ " age_10 \n",
+ " age_11 \n",
+ " age_12 \n",
+ " age_13 \n",
+ " age_14 \n",
+ " age_15 \n",
+ " age_16 \n",
+ " age_17 \n",
+ " age_18 \n",
+ " age_19 \n",
+ " age_20 \n",
+ " age_21 \n",
+ " age_22 \n",
+ " age_23 \n",
+ " age_24 \n",
+ " age_25 \n",
+ " age_26 \n",
+ " age_27 \n",
+ " age_28 \n",
+ " age_29 \n",
+ " age_30 \n",
+ " age_31 \n",
+ " age_32 \n",
+ " age_33 \n",
+ " age_34 \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 15 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 13 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 12 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 10 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 16 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45 \n",
+ "1 0.957151 40 \n",
+ "2 0.658180 38 \n",
+ "3 0.233810 30 \n",
+ "4 0.907239 49 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_discretized age_0 age_7 age_8 age_9 age_10 \\\n",
+ "0 2.0 15 False False False False False \n",
+ "1 1.0 13 False False False False False \n",
+ "2 0.0 12 False False False False False \n",
+ "3 0.0 10 False False False False True \n",
+ "4 0.0 16 False False False False False \n",
+ "\n",
+ " age_11 age_12 age_13 age_14 age_15 age_16 age_17 age_18 age_19 \\\n",
+ "0 False False False False True False False False False \n",
+ "1 False False True False False False False False False \n",
+ "2 False True False False False False False False False \n",
+ "3 False False False False False False False False False \n",
+ "4 False False False False False True False False False \n",
+ "\n",
+ " age_20 age_21 age_22 age_23 age_24 age_25 age_26 age_27 age_28 \\\n",
+ "0 False False False False False False False False False \n",
+ "1 False False False False False False False False False \n",
+ "2 False False False False False False False False False \n",
+ "3 False False False False False False False False False \n",
+ "4 False False False False False False False False False \n",
+ "\n",
+ " age_29 age_30 age_31 age_32 age_33 age_34 \n",
+ "0 False False False False False False \n",
+ "1 False False False False False False \n",
+ "2 False False False False False False \n",
+ "3 False False False False False False \n",
+ "4 False False False False False False "
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n",
+ "import pandas as pd\n",
+ "\n",
+ "# 对离散化后的年龄段进行独热向量编码\n",
+ "age_encoded = pd.get_dummies(X['age_discretized'], prefix='age')\n",
+ "\n",
+ "# 将编码结果与原始数据集合并\n",
+ "X_encoded = pd.concat([X, age_encoded], axis=1)\n",
+ "\n",
+ "# 打印编码后的结果\n",
+ "X_encoded.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[-0.0201068 -0.44012195 0.45992706 ... -0.05427348 0.99468893\n",
+ " -0.37056727]\n",
+ " [-0.0193715 -0.78605882 -0.1074063 ... -0.05427348 0.12476948\n",
+ " -0.78509046]\n",
+ " [-0.02052231 -0.92443357 0.17626038 ... -0.05427348 -0.74514997\n",
+ " -0.99235205]\n",
+ " ...\n",
+ " [-0.02190201 -0.50930932 -0.1074063 ... -0.05427348 0.99468893\n",
+ " -0.57782887]\n",
+ " [-0.0230558 -1.47793256 -0.1074063 ... -0.05427348 -0.74514997\n",
+ " -1.40687523]\n",
+ " [-0.01978286 0.87443816 -0.1074063 ... -0.05427348 -0.74514997\n",
+ " 0.87300228]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "\n",
+ "# 创建一个StandardScaler对象\n",
+ "scaler = StandardScaler()\n",
+ "\n",
+ "# 对连续值特征进行幅度缩放\n",
+ "X_scaled = scaler.fit_transform(X)\n",
+ "\n",
+ "# 打印缩放后的结果\n",
+ "print(X_scaled)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Intercept: [-0.13710928]\n",
+ "Coefficients:\n",
+ "NumberOfTime60-89DaysPastDueNotWorse: -0.32889330018818197\n",
+ "NumberOfTime30-59DaysPastDueNotWorse: 0.31716574622696886\n",
+ "NumberOfDependents: 0.18901828399205395\n",
+ "DebtRatio: 0.05218217069190731\n",
+ "age: -0.0459144360578327\n",
+ "NumberOfTimes90DaysLate: 0.043856000455064506\n",
+ "NumberOfOpenCreditLinesAndLoans: -0.04309815541758128\n",
+ "NumberRealEstateLoansOrLines: 0.028029112770613533\n",
+ "RevolvingUtilizationOfUnsecuredLines: -0.009140646278000845\n",
+ "MonthlyIncome: -4.117863504515253e-05\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "# 创建逻辑回归模型对象\n",
+ "model = LogisticRegression()\n",
+ "\n",
+ "# 使用训练数据拟合模型\n",
+ "model.fit(X_train, y_train)\n",
+ "\n",
+ "# 输出系数\n",
+ "coefficients = model.coef_\n",
+ "intercept = model.intercept_\n",
+ "\n",
+ "# 分析特征重要性\n",
+ "feature_importance = abs(coefficients[0])\n",
+ "sorted_indices = feature_importance.argsort()[::-1]\n",
+ "sorted_features = X_train.columns[sorted_indices]\n",
+ "\n",
+ "# 打印系数和特征重要性\n",
+ "print(\"Intercept:\", intercept)\n",
+ "print(\"Coefficients:\")\n",
+ "for feature, coef in zip(sorted_features, coefficients[0, sorted_indices]):\n",
+ " print(f\"{feature}: {coef}\")\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/model_selection/_validation.py:425: FitFailedWarning: \n",
+ "20 fits failed out of a total of 40.\n",
+ "The score on these train-test partitions for these parameters will be set to nan.\n",
+ "If these failures are not expected, you can try to debug them by setting error_score='raise'.\n",
+ "\n",
+ "Below are more details about the failures:\n",
+ "--------------------------------------------------------------------------------\n",
+ "20 fits failed with the following error:\n",
+ "Traceback (most recent call last):\n",
+ " File \"/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/model_selection/_validation.py\", line 729, in _fit_and_score\n",
+ " estimator.fit(X_train, y_train, **fit_params)\n",
+ " File \"/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/base.py\", line 1152, in wrapper\n",
+ " return fit_method(estimator, *args, **kwargs)\n",
+ " File \"/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py\", line 1169, in fit\n",
+ " solver = _check_solver(self.solver, self.penalty, self.dual)\n",
+ " File \"/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py\", line 56, in _check_solver\n",
+ " raise ValueError(\n",
+ "ValueError: Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.\n",
+ "\n",
+ " warnings.warn(some_fits_failed_message, FitFailedWarning)\n",
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/model_selection/_search.py:979: UserWarning: One or more of the test scores are non-finite: [ nan 0.93290228 nan 0.93292529 nan 0.9329483\n",
+ " nan 0.93293679]\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best parameters: {'C': 100, 'penalty': 'l2'}\n",
+ "Best score: 0.9329482968361296\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/linear_model/_logistic.py:460: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "\n",
+ "# 创建逻辑回归模型对象\n",
+ "model = LogisticRegression()\n",
+ "\n",
+ "# 定义参数候选空间\n",
+ "param_grid = {\n",
+ " 'penalty': ['l1', 'l2'],\n",
+ " 'C': [1, 10, 100, 500]\n",
+ "}\n",
+ "\n",
+ "# 创建网格搜索交叉验证对象\n",
+ "grid_search = GridSearchCV(model, param_grid, cv=5)\n",
+ "\n",
+ "# 使用训练数据拟合模型\n",
+ "grid_search.fit(X_train, y_train)\n",
+ "\n",
+ "# 输出最佳参数和最佳得分\n",
+ "print(\"Best parameters:\", grid_search.best_params_)\n",
+ "print(\"Best score:\", grid_search.best_score_)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best parameters: {'C': 100, 'penalty': 'l2'}\n",
+ "Best model: LogisticRegression(C=100)\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 输出最好的超参数\n",
+ "# 输出最好的模型\n",
+ "# 输出最佳超参数\n",
+ "best_params = grid_search.best_params_\n",
+ "print(\"Best parameters:\", best_params)\n",
+ "\n",
+ "# 输出最佳模型\n",
+ "best_model = grid_search.best_estimator_\n",
+ "print(\"Best model:\", best_model)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Precision: 0.5581395348837209\n",
+ "Recall: 0.016172506738544475\n",
+ "AUC: 0.6776398279597607\n",
+ "Confusion Matrix:\n",
+ "[[20227 19]\n",
+ " [ 1460 24]]\n",
+ "F1 Score: 0.031434184675834975\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "from sklearn.metrics import precision_score, recall_score, roc_auc_score, confusion_matrix, f1_score\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = best_model.predict(X_test)\n",
+ "\n",
+ "# 计算查准率\n",
+ "precision = precision_score(y_test, y_pred)\n",
+ "print(\"Precision:\", precision)\n",
+ "\n",
+ "# 计算查全率\n",
+ "recall = recall_score(y_test, y_pred)\n",
+ "print(\"Recall:\", recall)\n",
+ "\n",
+ "# 计算AUC\n",
+ "y_pred_proba = best_model.predict_proba(X_test)[:, 1]\n",
+ "auc = roc_auc_score(y_test, y_pred_proba)\n",
+ "print(\"AUC:\", auc)\n",
+ "\n",
+ "# 计算混淆矩阵\n",
+ "confusion = confusion_matrix(y_test, y_pred)\n",
+ "print(\"Confusion Matrix:\")\n",
+ "print(confusion)\n",
+ "\n",
+ "# 计算F1值\n",
+ "f1 = f1_score(y_test, y_pred)\n",
+ "print(\"F1 Score:\", f1)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Threshold: 0.1\n",
+ "Confusion Matrix:\n",
+ "[[15428 4818]\n",
+ " [ 787 697]]\n",
+ "Precision: 0.12638259292837714\n",
+ "Recall: 0.4696765498652291\n",
+ "F1 Score: 0.19917131018716958\n",
+ "\n",
+ "Threshold: 0.2\n",
+ "Confusion Matrix:\n",
+ "[[19635 611]\n",
+ " [ 1250 234]]\n",
+ "Precision: 0.27692307692307694\n",
+ "Recall: 0.15768194070080863\n",
+ "F1 Score: 0.20094461142121078\n",
+ "\n",
+ "Threshold: 0.3\n",
+ "Confusion Matrix:\n",
+ "[[20147 99]\n",
+ " [ 1406 78]]\n",
+ "Precision: 0.4406779661016949\n",
+ "Recall: 0.05256064690026954\n",
+ "F1 Score: 0.09391932570740517\n",
+ "\n",
+ "Threshold: 0.4\n",
+ "Confusion Matrix:\n",
+ "[[20211 35]\n",
+ " [ 1451 33]]\n",
+ "Precision: 0.4852941176470588\n",
+ "Recall: 0.02223719676549865\n",
+ "F1 Score: 0.04252577319587628\n",
+ "\n",
+ "Threshold: 0.5\n",
+ "Confusion Matrix:\n",
+ "[[20227 19]\n",
+ " [ 1460 24]]\n",
+ "Precision: 0.5581395348837209\n",
+ "Recall: 0.016172506738544475\n",
+ "F1 Score: 0.031434184675834975\n",
+ "\n",
+ "Threshold: 0.6\n",
+ "Confusion Matrix:\n",
+ "[[20232 14]\n",
+ " [ 1469 15]]\n",
+ "Precision: 0.5172413793103449\n",
+ "Recall: 0.010107816711590296\n",
+ "F1 Score: 0.019828155981493716\n",
+ "\n",
+ "Threshold: 0.7\n",
+ "Confusion Matrix:\n",
+ "[[20237 9]\n",
+ " [ 1472 12]]\n",
+ "Precision: 0.5714285714285714\n",
+ "Recall: 0.008086253369272238\n",
+ "F1 Score: 0.015946843853820596\n",
+ "\n",
+ "Threshold: 0.8\n",
+ "Confusion Matrix:\n",
+ "[[20239 7]\n",
+ " [ 1478 6]]\n",
+ "Precision: 0.46153846153846156\n",
+ "Recall: 0.004043126684636119\n",
+ "F1 Score: 0.008016032064128256\n",
+ "\n",
+ "Threshold: 0.9\n",
+ "Confusion Matrix:\n",
+ "[[20246 0]\n",
+ " [ 1484 0]]\n",
+ "Precision: 0.0\n",
+ "Recall: 0.0\n",
+ "F1 Score: 0.0\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/root/miniconda3/envs/ictp-ap/lib/python3.10/site-packages/sklearn/metrics/_classification.py:1471: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+ " _warn_prf(average, modifier, msg_start, len(result))\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "# 根据predict_proba的结果和threshold的比较确定结果,再评估各种结果指标\n",
+ "from sklearn.metrics import confusion_matrix, precision_score, recall_score, f1_score\n",
+ "\n",
+ "# 定义阈值列表\n",
+ "thresholds = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]\n",
+ "\n",
+ "# 初始化结果字典\n",
+ "results = {}\n",
+ "\n",
+ "# 遍历阈值列表\n",
+ "for threshold in thresholds:\n",
+ " # 根据阈值确定预测结果\n",
+ " y_pred = (y_pred_proba > threshold).astype(int)\n",
+ " \n",
+ " # 计算混淆矩阵\n",
+ " confusion = confusion_matrix(y_test, y_pred)\n",
+ " \n",
+ " # 计算查准率\n",
+ " precision = precision_score(y_test, y_pred)\n",
+ " \n",
+ " # 计算查全率\n",
+ " recall = recall_score(y_test, y_pred)\n",
+ " \n",
+ " # 计算F1值\n",
+ " f1 = f1_score(y_test, y_pred)\n",
+ " \n",
+ " # 存储结果\n",
+ " results[threshold] = {\n",
+ " 'Confusion Matrix': confusion,\n",
+ " 'Precision': precision,\n",
+ " 'Recall': recall,\n",
+ " 'F1 Score': f1\n",
+ " }\n",
+ "\n",
+ "# 打印结果\n",
+ "for threshold, result in results.items():\n",
+ " print(\"Threshold:\", threshold)\n",
+ " print(\"Confusion Matrix:\")\n",
+ " print(result['Confusion Matrix'])\n",
+ " print(\"Precision:\", result['Precision'])\n",
+ " print(\"Recall:\", result['Recall'])\n",
+ " print(\"F1 Score:\", result['F1 Score'])\n",
+ " print()\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Feature Importance Ranking:\n",
+ "NumberOfTime60-89DaysPastDueNotWorse : 0.48487436893337343\n",
+ "NumberOfTime30-59DaysPastDueNotWorse : -7.52759672119782e-05\n",
+ "NumberOfTimes90DaysLate : -0.0399102786681723\n",
+ "Accuracy (New Model): 0.9329038196042337\n",
+ "Precision (New Model): 0.6160714285714286\n",
+ "Recall (New Model): 0.04649595687331536\n",
+ "F1 Score (New Model): 0.08646616541353384\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "from sklearn.feature_selection import SelectFromModel\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "# 使用逻辑回归模型进行特征选择\n",
+ "selector = SelectFromModel(LogisticRegression(max_iter=1000))\n",
+ "selector.fit(X_train, y_train)\n",
+ "\n",
+ "# 获取选择的特征索引\n",
+ "selected_features = selector.get_support(indices=True)\n",
+ "\n",
+ "# 检查选择的特征数量是否大于0\n",
+ "if len(selected_features) == 0:\n",
+ " print(\"No features selected.\")\n",
+ "else:\n",
+ " # 获取选择的特征名称\n",
+ " selected_feature_names = X_train.columns[selected_features]\n",
+ "\n",
+ " # 获取选择的特征重要度排序\n",
+ " feature_importances = selector.estimator_.coef_[0]\n",
+ " sorted_indices = feature_importances.argsort()[::-1]\n",
+ "\n",
+ " # 输出特征重要度排序\n",
+ " print(\"Feature Importance Ranking:\")\n",
+ " for i in sorted_indices:\n",
+ " # 检查索引是否在选择的特征范围内\n",
+ " if i < len(selected_feature_names):\n",
+ " print(selected_feature_names[i], \":\", feature_importances[i])\n",
+ "\n",
+ " # 重新建模使用选择的特征\n",
+ " X_train_selected = X_train.iloc[:, selected_features]\n",
+ " X_test_selected = X_test.iloc[:, selected_features]\n",
+ "\n",
+ " # 在选择的特征上训练新的逻辑回归模型\n",
+ " new_model = LogisticRegression(max_iter=1000)\n",
+ " new_model.fit(X_train_selected, y_train)\n",
+ "\n",
+ " # 在测试集上进行预测和评估\n",
+ " y_pred_new = new_model.predict(X_test_selected)\n",
+ " accuracy_new = accuracy_score(y_test, y_pred_new)\n",
+ " precision_new = precision_score(y_test, y_pred_new)\n",
+ " recall_new = recall_score(y_test, y_pred_new)\n",
+ " f1_new = f1_score(y_test, y_pred_new)\n",
+ "\n",
+ " # 打印评估指标\n",
+ " print(\"Accuracy (New Model):\", accuracy_new)\n",
+ " print(\"Precision (New Model):\", precision_new)\n",
+ " print(\"Recall (New Model):\", recall_new)\n",
+ " print(\"F1 Score (New Model):\", f1_new)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "from sklearn.svm import SVC\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "from sklearn.model_selection import GridSearchCV"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Random Forest - Best Parameters: {'max_depth': 5, 'min_samples_leaf': 1, 'min_samples_split': 5, 'n_estimators': 100}\n",
+ "Random Forest - Best Score: 0.9353298470034953\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 随机森林\n",
+ "rf_model = RandomForestClassifier()\n",
+ "rf_param_grid = {\n",
+ " 'n_estimators': [100, 200],\n",
+ " 'max_depth': [None, 5],\n",
+ " 'min_samples_split': [2, 5],\n",
+ " 'min_samples_leaf': [1, 2]\n",
+ "}\n",
+ "rf_grid_search = GridSearchCV(rf_model, rf_param_grid, cv=3)\n",
+ "rf_grid_search.fit(X_train, y_train)\n",
+ "\n",
+ "# 输出最佳参数和对应的得分\n",
+ "print(\"Random Forest - Best Parameters:\", rf_grid_search.best_params_)\n",
+ "print(\"Random Forest - Best Score:\", rf_grid_search.best_score_)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# SVM\n",
+ "svm_model = SVC()\n",
+ "svm_param_grid = {\n",
+ " 'C': [1, 10],\n",
+ " 'kernel': ['linear', 'rbf'],\n",
+ " 'gamma': ['scale', 'auto']\n",
+ "}\n",
+ "svm_grid_search = GridSearchCV(svm_model, svm_param_grid, cv=3)\n",
+ "svm_grid_search.fit(X_train, y_train)\n",
+ "\n",
+ "# 输出最佳参数和对应的得分\n",
+ "print(\"SVM - Best Parameters:\", svm_grid_search.best_params_)\n",
+ "print(\"SVM - Best Score:\", svm_grid_search.best_score_)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# K最近邻\n",
+ "knn_model = KNeighborsClassifier()\n",
+ "knn_param_grid = {\n",
+ " 'n_neighbors': [3, 5],\n",
+ " 'weights': ['uniform', 'distance'],\n",
+ " 'p': [1, 2]\n",
+ "}\n",
+ "knn_grid_search = GridSearchCV(knn_model, knn_param_grid, cv=3)\n",
+ "knn_grid_search.fit(X_train, y_train)\n",
+ "\n",
+ "# 输出最佳参数和对应的得分\n",
+ "print(\"KNN - Best Parameters:\", knn_grid_search.best_params_)\n",
+ "print(\"KNN - Best Score:\", knn_grid_search.best_score_)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 随机森林\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "# K最近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "ictp-ap",
+ "language": "python",
+ "name": "ictp-ap"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/Yuhao_Dong-LZU/homework_credit_scoring_finetune_ensemble.ipynb b/2023/homework/Yuhao_Dong-LZU/homework_credit_scoring_finetune_ensemble.ipynb
new file mode 100644
index 00000000..aec85327
--- /dev/null
+++ b/2023/homework/Yuhao_Dong-LZU/homework_credit_scoring_finetune_ensemble.ipynb
@@ -0,0 +1,1937 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "import numpy as np\n",
+ "import matplotlib\n",
+ "import matplotlib.pyplot as plt\n",
+ "matplotlib.rc(\"font\",family=['YouYuan', 'Times New Roman']) #设置中文图例\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "C:\\Users\\Logic\\AppData\\Local\\Temp\\ipykernel_30524\\2980780030.py:3: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access\n",
+ " data.shapey = data['SeriousDlqin2yrs']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10), (76053,), (32595,))"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:查看train_test_split函数\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True, random_state=0)\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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s5o2bapChQrd95htNWDAAD300EP68MMPH+g4u3fv1uOPP271i9c///xTTk5ONr9H79y5Ux9++KHN7R0dHdO9z6bp27evdu7cqeTkZKWmpmr06NGqV6+eihcvrr/++ktTpkzJdIr5gAEDdPr0afMXA/Xq1dOmTZss2ri7u8vT01M1a9aUJFWvXj3de7q7u7vc3Nzk6emZq4s04t+DK7wAzEqXLq34+Hib2ubEolVHjx5VyZIlFRoammF9ixYtbLqKnObUqVMqW7asSpYsma7ur7/+0pkzZzRz5kzNnDkz0+McOnRI06dPz/J8q1evVv/+/a3WPfLII+rYsaOWLFmil156ybYH8Dfnz5/XhQsX1LZtW6v1L7/8ss33L0vSww8/rCVLlmR4vL9zc3PL8Bec+fPnKzo6WtLdX2KLFi2qo0ePytPTU0899ZQCAgIyPXbJkiUVFhambdu2affu3Vq8eLGOHTuWa/dWA8h9R48elXR3ZWNr79379u1TpUqVbH5fL1mypE6dOiVXV9d0ayKkpqbq+++/V0REhE33+trS5pVXXtHSpUut1jk7O2vkyJGaPn265s+ff99hbPv27RZXUe/VoEEDnTp1SsnJyTYda+DAgapfv74mTJhgU3tHR8d0V1TTDB06VI899picnJx09epVnTp1Sps2bdJTTz2luXPnatKkSZke28HBQbt379aSJUs0fvx4LViwQL/99pt69uxp09iA3ELgBZBvevfurR9//FH16tXLcLuHGTNmaMaMGdk6bocOHbRt27Z05atWrZKXl5e++eabTPv36dNHbdu2tVj1NyNp31JnZNCgQRowYICOHTumRx99NMvj/d3mzZvl4eGR4VXpQoUKZXs7nkqVKuXIFj73binSuXNniys6X3/9tSIiIjLt7+rqar4i26pVqyyvvMfExKhPnz7pyq9cuZKNUQPITa1bt5anp6e6deuW6fTSrL4Q+zsPDw+FhYVZbGHz008/KSoqSgcOHMh0oaL3339fx48f16pVq7I8T4UKFTKtf+GFF/TWW29p9erVGj16tO0P4P/7888/FRISkukMmOwsblW0aFGVLFkyR97TXV1dzTOuypUrZ/E5+vrrr2cZXO8N0zVq1ND8+fOzPOfYsWPTrdh/6NChXN3yEP8+BF4A+aZHjx4ZhqKvv/5ao0aN0tWrV3NkqlpsbKw+//xz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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "# 提示:value_counts\n",
+ "Positive_Negative = data['SeriousDlqin2yrs'].value_counts()\n",
+ "Positive_Negative\n",
+ "\n",
+ "# 绘制两种类别的柱状图\n",
+ "# 提示:dataframe可以直接plot(kind='bar')\n",
+ "plt.figure(figsize=(5, 3), dpi=200) #设置图片大小\n",
+ "Positive_Negative.plot(kind = 'bar', color='skyblue')\n",
+ "plt.title('Distribution of SeriousDlqin2yrs')\n",
+ "plt.xlabel('SeriousDlqin2yrs')\n",
+ "plt.ylabel('样本量')\n",
+ "plt.xticks(ticks=[0, 1], labels=['未发生严重逾期', '发生严重逾期'], rotation=0)\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "age\n",
+ "(0, 3] 0\n",
+ "(3, 6] 0\n",
+ "(6, 9] 0\n",
+ "(9, 12] 0\n",
+ "(12, 15] 0\n",
+ "(15, 18] 0\n",
+ "(18, 21] 104\n",
+ "(21, 24] 1313\n",
+ "(24, 27] 2620\n",
+ "(27, 30] 4083\n",
+ "(30, 33] 5053\n",
+ "(33, 36] 5272\n",
+ "(36, 39] 6288\n",
+ "(39, 42] 7085\n",
+ "(42, 45] 7697\n",
+ "(45, 48] 8443\n",
+ "(48, 51] 8438\n",
+ "(51, 54] 7960\n",
+ "(54, 57] 7490\n",
+ "(57, 60] 7049\n",
+ "(60, 63] 7467\n",
+ "(63, 66] 5524\n",
+ "(66, 69] 4439\n",
+ "(69, 72] 3334\n",
+ "(72, 75] 2708\n",
+ "(75, 78] 2166\n",
+ "(78, 81] 1718\n",
+ "(81, 84] 990\n",
+ "(84, 87] 725\n",
+ "(87, 90] 446\n",
+ "(90, 93] 173\n",
+ "(93, 96] 43\n",
+ "(96, 99] 15\n",
+ "(99, 102] 3\n",
+ "(102, 105] 1\n",
+ "Name: count, dtype: int64"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)\n",
+ "\n",
+ "# 计算年龄的分桶边界\n",
+ "age_min = data['age'].min()\n",
+ "age_max = data['age'].max()\n",
+ "bins = list(range(int(age_min), int(age_max) + 3, 3)) # 每3岁一个区间\n",
+ "\n",
+ "# 使用pandas的cut函数进行离散化\n",
+ "# data['age_bins'] = pd.cut(data['age'], bins=bins)\n",
+ "# X_train['age_bins'] = pd.cut(X_train['age'], bins=bins)\n",
+ "# X_test['age_bins'] = pd.cut(X_test['age'], bins=bins)\n",
+ "\n",
+ "data['age'] = pd.cut(data['age'], bins=bins)\n",
+ "X_train['age'] = pd.cut(X_train['age'], bins=bins)\n",
+ "X_test['age'] = pd.cut(X_test['age'], bins=bins)\n",
+ "\n",
+ "# 查看离散化后的结果\n",
+ "# data['age_bins'].value_counts().sort_index()\n",
+ "data['age'].value_counts().sort_index()\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_(0, 3] \n",
+ " age_(3, 6] \n",
+ " age_(6, 9] \n",
+ " age_(9, 12] \n",
+ " age_(12, 15] \n",
+ " age_(15, 18] \n",
+ " age_(18, 21] \n",
+ " age_(21, 24] \n",
+ " age_(24, 27] \n",
+ " age_(27, 30] \n",
+ " age_(30, 33] \n",
+ " age_(33, 36] \n",
+ " age_(36, 39] \n",
+ " age_(39, 42] \n",
+ " age_(42, 45] \n",
+ " age_(45, 48] \n",
+ " age_(48, 51] \n",
+ " age_(51, 54] \n",
+ " age_(54, 57] \n",
+ " age_(57, 60] \n",
+ " age_(60, 63] \n",
+ " age_(63, 66] \n",
+ " age_(66, 69] \n",
+ " age_(69, 72] \n",
+ " age_(72, 75] \n",
+ " age_(75, 78] \n",
+ " age_(78, 81] \n",
+ " age_(81, 84] \n",
+ " age_(84, 87] \n",
+ " age_(87, 90] \n",
+ " age_(90, 93] \n",
+ " age_(93, 96] \n",
+ " age_(96, 99] \n",
+ " age_(99, 102] \n",
+ " age_(102, 105] \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " True \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " False \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines \\\n",
+ "0 1 0.766127 \n",
+ "1 0 0.957151 \n",
+ "2 0 0.658180 \n",
+ "3 0 0.233810 \n",
+ "4 0 0.907239 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_(0, 3] age_(3, 6] age_(6, 9] age_(9, 12] \\\n",
+ "0 2.0 False False False False \n",
+ "1 1.0 False False False False \n",
+ "2 0.0 False False False False \n",
+ "3 0.0 False False False False \n",
+ "4 0.0 False False False False \n",
+ "\n",
+ " age_(12, 15] age_(15, 18] age_(18, 21] age_(21, 24] age_(24, 27] \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 False False False False False \n",
+ "3 False False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " age_(27, 30] age_(30, 33] age_(33, 36] age_(36, 39] age_(39, 42] \\\n",
+ "0 False False False False False \n",
+ "1 False False False False True \n",
+ "2 False False False True False \n",
+ "3 True False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " age_(42, 45] age_(45, 48] age_(48, 51] age_(51, 54] age_(54, 57] \\\n",
+ "0 True False False False False \n",
+ "1 False False False False False \n",
+ "2 False False False False False \n",
+ "3 False False False False False \n",
+ "4 False False True False False \n",
+ "\n",
+ " age_(57, 60] age_(60, 63] age_(63, 66] age_(66, 69] age_(69, 72] \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 False False False False False \n",
+ "3 False False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " age_(72, 75] age_(75, 78] age_(78, 81] age_(81, 84] age_(84, 87] \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 False False False False False \n",
+ "3 False False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " age_(87, 90] age_(90, 93] age_(93, 96] age_(96, 99] age_(99, 102] \\\n",
+ "0 False False False False False \n",
+ "1 False False False False False \n",
+ "2 False False False False False \n",
+ "3 False False False False False \n",
+ "4 False False False False False \n",
+ "\n",
+ " age_(102, 105] \n",
+ "0 False \n",
+ "1 False \n",
+ "2 False \n",
+ "3 False \n",
+ "4 False "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n",
+ "\n",
+ "# 对分箱后的年龄段进行独热向量编码\n",
+ "# data_age_bins_dummies = pd.get_dummies(data, columns=['age_bins'], prefix='Age')\n",
+ "# X_train_age_bins_dummies = pd.get_dummies(X_train, columns=['age_bins'], prefix='Age')\n",
+ "# X_test_age_bins_dummies = pd.get_dummies(X_test, columns=['age_bins'], prefix='Age')\n",
+ "\n",
+ "# data = pd.get_dummies(data, columns=['age_bins'], prefix='Age')\n",
+ "# X_train = pd.get_dummies(X_train, columns=['age_bins'], prefix='Age')\n",
+ "# X_test = pd.get_dummies(X_test, columns=['age_bins'], prefix='Age')\n",
+ "\n",
+ "data = pd.get_dummies(data, columns=['age'], prefix_sep='_',dummy_na=False,drop_first=False)\n",
+ "X_train = pd.get_dummies(X_train, columns=['age'], prefix_sep='_',dummy_na=False,drop_first=False)\n",
+ "X_test = pd.get_dummies(X_test, columns=['age'], prefix_sep='_',dummy_na=False,drop_first=False)\n",
+ "\n",
+ "# 展示编码后的部分数据\n",
+ "# age_bins_dummies.head()\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "\n",
+ "# 选择连续值特征进行幅度缩放\n",
+ "continuous_features = ['RevolvingUtilizationOfUnsecuredLines', 'DebtRatio', 'MonthlyIncome','NumberOfTime30-59DaysPastDueNotWorse','NumberOfTimes90DaysLate',\n",
+ " 'NumberOfOpenCreditLinesAndLoans', 'NumberRealEstateLoansOrLines','NumberOfTime60-89DaysPastDueNotWorse']\n",
+ "\n",
+ "# 初始化幅度缩放器\n",
+ "sc = StandardScaler()\n",
+ "\n",
+ "# 对连续值特征进行幅度缩放\n",
+ "# data_scaled = data.copy()\n",
+ "# data_scaled[continuous_features] = sc.fit_transform(data[continuous_features])\n",
+ "# data_scaled = sc.fit_transform(data)\n",
+ "\n",
+ "# X_train_std = sc.fit_transform(X_train)\n",
+ "# X_test_std = sc.fit_transform(X_test)\n",
+ "\n",
+ "\n",
+ "X_train = sc.fit_transform(X_train[continuous_features])\n",
+ "X_test = sc.fit_transform(X_test[continuous_features])\n",
+ "X_train_std = X_train\n",
+ "X_test_std = X_test\n",
+ "\n",
+ "# 展示缩放后的部分数据\n",
+ "# data_scaled.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " Feature \n",
+ " Coefficient \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " -0.011995 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " DebtRatio \n",
+ " 0.360023 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " MonthlyIncome \n",
+ " -0.097519 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " 1.778568 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " NumberOfTimes90DaysLate \n",
+ " 1.736049 \n",
+ " \n",
+ " \n",
+ " 5 \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " -0.180605 \n",
+ " \n",
+ " \n",
+ " 6 \n",
+ " NumberRealEstateLoansOrLines \n",
+ " -0.228602 \n",
+ " \n",
+ " \n",
+ " 7 \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " -3.339019 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Feature Coefficient\n",
+ "0 RevolvingUtilizationOfUnsecuredLines -0.011995\n",
+ "1 DebtRatio 0.360023\n",
+ "2 MonthlyIncome -0.097519\n",
+ "3 NumberOfTime30-59DaysPastDueNotWorse 1.778568\n",
+ "4 NumberOfTimes90DaysLate 1.736049\n",
+ "5 NumberOfOpenCreditLinesAndLoans -0.180605\n",
+ "6 NumberRealEstateLoansOrLines -0.228602\n",
+ "7 NumberOfTime60-89DaysPastDueNotWorse -3.339019"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "# X_scaled = data_scaled[continuous_features]\n",
+ "# y = data['SeriousDlqin2yrs']\n",
+ "\n",
+ "# 划分数据处理后的训练集和测试集\n",
+ "# X_train_std, X_test_std, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=0)\n",
+ "\n",
+ "# 初始化逻辑回归模型\n",
+ "# lr = LogisticRegression()\n",
+ "lr = LogisticRegression(solver='liblinear',max_iter=100) # 使用liblinear求解器,因为它支持L1正则化\n",
+ "\n",
+ "# 训练模型\n",
+ "lr.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 获取模型的系数\n",
+ "coefficients = lr.coef_[0]\n",
+ "\n",
+ "# 创建系数和特征名称的DataFrame\n",
+ "feature_coefficients = pd.DataFrame({\n",
+ " # 'Feature': X_train.columns[0:],\n",
+ " 'Feature': continuous_features,\n",
+ " 'Coefficient': coefficients\n",
+ "})\n",
+ "\n",
+ "feature_coefficients\n",
+ "# coefficients"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "GridSearchCV(cv=5, estimator=LogisticRegression(solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']}) In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ],
+ "text/plain": [
+ "GridSearchCV(cv=5, estimator=LogisticRegression(solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']})"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "\n",
+ "# 按照要求准备网格字典\n",
+ "param_grid = {\n",
+ " 'penalty': ['l1', 'l2'],\n",
+ " 'C': [1, 10, 100, 500]\n",
+ "}\n",
+ "\n",
+ "# 初始化逻辑回归模型\n",
+ "# lr = LogisticRegression(solver='liblinear',max_iter=100) # 使用liblinear求解器,因为它支持L1正则化\n",
+ "\n",
+ "# 初始化网格搜索\n",
+ "# grid_search = GridSearchCV(lr, param_grid, cv=5, scoring='accuracy', verbose=1)\n",
+ "grid_search = GridSearchCV(lr, param_grid,cv = 5)\n",
+ "\n",
+ "# 执行网格搜索\n",
+ "grid_search.fit(X_train_std, y_train)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "最好超参数: {'C': 10, 'penalty': 'l1'}\n",
+ "最好评分: 0.9332702219763709\n",
+ "最好模型: LogisticRegression(C=10, penalty='l1', solver='liblinear')\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 输出最好的超参数\n",
+ "# 输出最好的模型\n",
+ "\n",
+ "best_params = grid_search.best_params_\n",
+ "best_score = grid_search.best_score_\n",
+ "best_model = grid_search.best_estimator_\n",
+ "\n",
+ "best_params, best_score, best_model\n",
+ "\n",
+ "print(\"最好超参数:\", best_params)\n",
+ "print(\"最好评分:\", best_score)\n",
+ "print(\"最好模型:\", best_model)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "accuracy:\t 0.9337628470624328\n",
+ "recall:\t 0.5209430120321262\n",
+ "f1:\t 0.08244793880152997\n",
+ "conf_matrix:\n",
+ " [[30339 85]\n",
+ " [ 2074 97]]\n",
+ "auc:\t 0.6782203584699369\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "\n",
+ "from sklearn.metrics import accuracy_score, recall_score, roc_auc_score, confusion_matrix, f1_score\n",
+ "\n",
+ "y_pred = best_model.predict(X_test_std)\n",
+ "\n",
+ "# 计算各种测试指标\n",
+ "accuracy = accuracy_score(y_test, y_pred)\n",
+ "recall = recall_score(y_test, y_pred,average='macro')\n",
+ "f1 = f1_score(y_test, y_pred)\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# 计算auc\n",
+ "y_pred_proba = best_model.predict_proba(X_test_std)[:, 1]\n",
+ "auc = roc_auc_score(y_test, y_pred_proba)\n",
+ "\n",
+ "accuracy, recall, auc, conf_matrix, f1\n",
+ "\n",
+ "print(\"accuracy:\\t\", accuracy)\n",
+ "print(\"recall:\\t\", recall)\n",
+ "print(\"f1:\\t\", f1)\n",
+ "print(\"conf_matrix:\\n\", conf_matrix)\n",
+ "print(\"auc:\\t\", auc)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.8712685994784476\n",
+ "0.6495828101478226\n",
+ "[[27544 2880]\n",
+ " [ 1316 855]]\n",
+ "0.2895360650186251\n",
+ "[[27544 2880]\n",
+ " [ 1316 855]]\n",
+ "\n",
+ "\n",
+ "0.9283018867924528\n",
+ "0.5800412136143579\n",
+ "[[29871 553]\n",
+ " [ 1784 387]]\n",
+ "0.24879459980713595\n",
+ "[[29871 553]\n",
+ " [ 1784 387]]\n",
+ "\n",
+ "\n",
+ "0.9335480901978831\n",
+ "0.5497009909265794\n",
+ "[[30197 227]\n",
+ " [ 1939 232]]\n",
+ "0.176425855513308\n",
+ "[[30197 227]\n",
+ " [ 1939 232]]\n",
+ "\n",
+ "\n",
+ "0.9340696425832183\n",
+ "0.5324426896121792\n",
+ "[[30296 128]\n",
+ " [ 2021 150]]\n",
+ "0.12249897917517355\n",
+ "[[30296 128]\n",
+ " [ 2021 150]]\n",
+ "\n",
+ "\n",
+ "0.9337628470624328\n",
+ "0.5209430120321262\n",
+ "[[30339 85]\n",
+ " [ 2074 97]]\n",
+ "0.08244793880152997\n",
+ "[[30339 85]\n",
+ " [ 2074 97]]\n",
+ "\n",
+ "\n",
+ "0.9341003221352968\n",
+ "0.5159908090935991\n",
+ "[[30374 50]\n",
+ " [ 2098 73]]\n",
+ "0.06364428945074106\n",
+ "[[30374 50]\n",
+ " [ 2098 73]]\n",
+ "\n",
+ "\n",
+ "0.9337935266145114\n",
+ "0.5106934838831813\n",
+ "[[30388 36]\n",
+ " [ 2122 49]]\n",
+ "0.04343971631205674\n",
+ "[[30388 36]\n",
+ " [ 2122 49]]\n",
+ "\n",
+ "\n",
+ "0.9333946924374904\n",
+ "0.5029942390749963\n",
+ "[[30410 14]\n",
+ " [ 2157 14]]\n",
+ "0.01273306048203729\n",
+ "[[30410 14]\n",
+ " [ 2157 14]]\n",
+ "\n",
+ "\n",
+ "0.9333640128854118\n",
+ "0.5010529367043134\n",
+ "[[30418 6]\n",
+ " [ 2166 5]]\n",
+ "0.00458295142071494\n",
+ "[[30418 6]\n",
+ " [ 2166 5]]\n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "# 根据predict_proba的结果和threshold的比较确定结果,再评估各种结果指标\n",
+ "\n",
+ "from sklearn.metrics import classification_report, confusion_matrix\n",
+ "\n",
+ "y_pred_proba = best_model.predict_proba(X_test_std)\n",
+ "\n",
+ "# 设置阈值为0.3\n",
+ "threshold = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "\n",
+ "# 根据阈值判断最终结果\n",
+ "for i in range(len(threshold)):\n",
+ " y_pred_adjusted = (y_pred_proba[:, 1] > threshold[i]).astype(int)\n",
+ "\n",
+ " # 重新计算性能评估指标\n",
+ " # classification_report_adjusted = classification_report(y_test, y_pred_adjusted)\n",
+ " confusion_matrix_adjusted = confusion_matrix(y_test, y_pred_adjusted)\n",
+ "\n",
+ " # 计算各种测试指标\n",
+ " accuracy = accuracy_score(y_test, y_pred_adjusted)\n",
+ " recall = recall_score(y_test, y_pred_adjusted,average='macro')\n",
+ " f1 = f1_score(y_test, y_pred_adjusted)\n",
+ " conf_matrix = confusion_matrix(y_test, y_pred_adjusted)\n",
+ "\n",
+ " print(accuracy)\n",
+ " print(recall)\n",
+ " print(conf_matrix)\n",
+ " print(f1)\n",
+ "\n",
+ " # 分类报告 \n",
+ " # print(classification_report_adjusted)\n",
+ " # 混淆矩阵\n",
+ " print(confusion_matrix_adjusted)\n",
+ " print(\"\\n\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Feature Coefficient Absolute_Coefficient\n",
+ "7 NumberOfTime60-89DaysPastDueNotWorse -3.375595 3.375595\n",
+ "3 NumberOfTime30-59DaysPastDueNotWorse 1.790722 1.790722\n",
+ "4 NumberOfTimes90DaysLate 1.760637 1.760637\n",
+ "1 DebtRatio 0.360080 0.360080\n",
+ "6 NumberRealEstateLoansOrLines -0.228471 0.228471\n",
+ "5 NumberOfOpenCreditLinesAndLoans -0.180534 0.180534\n",
+ "2 MonthlyIncome -0.097630 0.097630\n",
+ "0 RevolvingUtilizationOfUnsecuredLines -0.011943 0.011943\n",
+ "\n",
+ "\n",
+ "Selected features: ['NumberOfTime30-59DaysPastDueNotWorse', 'NumberOfTimes90DaysLate', 'NumberOfTime60-89DaysPastDueNotWorse']\n",
+ "Accuracy: 0.9347826086956522\n",
+ "Recall: 0.5192533861174952\n",
+ "\n",
+ "\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 1.00 0.97 21309\n",
+ " 1 0.59 0.04 0.08 1507\n",
+ "\n",
+ " accuracy 0.93 22816\n",
+ " macro avg 0.76 0.52 0.52 22816\n",
+ "weighted avg 0.91 0.93 0.91 22816\n",
+ "\n",
+ "Confusion Matrix:\n",
+ " [[21267 42]\n",
+ " [ 1446 61]]\n",
+ "Score: 0.9347826086956522\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "\n",
+ "from sklearn.feature_selection import SelectFromModel\n",
+ "\n",
+ "# sorted_indices = abs(coefficients).argsort()[::-1]\n",
+ "# coefficients, sorted_indices\n",
+ "\n",
+ "# 计算系数的绝对值\n",
+ "feature_coefficients['Absolute_Coefficient'] = feature_coefficients['Coefficient'].abs()\n",
+ "\n",
+ "# 按照绝对值大小对特征进行排序\n",
+ "sorted_features = feature_coefficients.sort_values(by='Absolute_Coefficient', ascending=False)\n",
+ "sorted_features\n",
+ "print(sorted_features)\n",
+ "print(\"\\n\")\n",
+ "\n",
+ "# # lr_for_selection = LogisticRegression(max_iter=1000)\n",
+ "# lr_for_selection = LogisticRegression(C=10, penalty='l2' ,solver='liblinear')\n",
+ "# sfm_lr = SelectFromModel(lr_for_selection)\n",
+ "# sfm_lr.fit(X_train_std, y_train)\n",
+ "\n",
+ "# # 特征选择\n",
+ "# # selected_features_lr = X_train_std.columns[sfm_lr.get_support()]\n",
+ "# selected_features_lr = X_train_std\n",
+ "\n",
+ "# selected_features_lr\n",
+ "\n",
+ "# # Selecting only the features identified by SelectFromModel\n",
+ "# X_selected = X_train_std[selected_features_lr]\n",
+ "\n",
+ "# # Splitting the data into training and testing sets\n",
+ "# X_train_selected, X_test_selected, y_train_selected, y_test_selected = train_test_split(X_selected, y_train, test_size=0.3, random_state=0)\n",
+ "\n",
+ "# # Creating a new logistic regression model\n",
+ "# lr_new = LogisticRegression(C=10, penalty='l2' ,solver='liblinear')\n",
+ "# lr_new.fit(X_train_selected, y_train_selected)\n",
+ "\n",
+ "# # Predicting on the test set\n",
+ "# y_pred = lr_new.predict(X_test_selected)\n",
+ "\n",
+ "# # Calculating accuracy and other metrics\n",
+ "# accuracy = accuracy_score(y_test_selected, y_pred)\n",
+ "# recall = recall_score(y_test_selected, y_pred,average='macro')\n",
+ "# conf_matrix = confusion_matrix(y_test_selected, y_pred)\n",
+ "# class_report = classification_report(y_test_selected, y_pred)\n",
+ "\n",
+ "# accuracy, conf_matrix\n",
+ "\n",
+ "# print(accuracy)\n",
+ "# print(recall)\n",
+ "# print(class_report)\n",
+ "# print(conf_matrix)\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n",
+ "# 训练逻辑回归模型\n",
+ "lr_for_selection = LogisticRegression(C=10, penalty='l2', solver='liblinear')\n",
+ "lr_for_selection.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 从模型中获取系数\n",
+ "coefficients = lr_for_selection.coef_[0]\n",
+ "\n",
+ "# 创建一个DataFrame来保存系数及其绝对值\n",
+ "feature_coefficients = pd.DataFrame({'Feature': feature_coefficients['Feature'], 'Coefficient': coefficients})\n",
+ "feature_coefficients['Absolute_Coefficient'] = feature_coefficients['Coefficient'].abs()\n",
+ "\n",
+ "# 使用 SelectFromModel 进行特征选择\n",
+ "sfm_lr = SelectFromModel(lr_for_selection, threshold='mean') # 可以调整阈值\n",
+ "sfm_lr.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 获取被选中的特征\n",
+ "# selected_features_lr = X_train_std.columns[sfm_lr.get_support()]\n",
+ "# 获取被选中的特征的布尔索引\n",
+ "selected_features_bool = sfm_lr.get_support()\n",
+ "\n",
+ "# 使用布尔索引选择特征\n",
+ "X_selected = X_train_std[:, selected_features_bool]\n",
+ "\n",
+ "# 查看哪些特征被选中\n",
+ "selected_feature_names = [feature_coefficients['Feature'][i] for i in range(len(feature_coefficients['Feature'])) if selected_features_bool[i]]\n",
+ "print(\"Selected features:\", selected_feature_names)\n",
+ "\n",
+ "# 仅选择被选中的特征\n",
+ "# X_selected = X_train_std[selected_features_lr]\n",
+ "\n",
+ "# 分割数据集\n",
+ "X_train_selected, X_test_selected, y_train_selected, y_test_selected = train_test_split(X_selected, y_train, test_size=0.3, random_state=0)\n",
+ "\n",
+ "# 创建一个新的逻辑回归模型\n",
+ "lr_new = LogisticRegression(C=10, penalty='l2', solver='liblinear')\n",
+ "lr_new.fit(X_train_selected, y_train_selected)\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = lr_new.predict(X_test_selected)\n",
+ "\n",
+ "# 计算准确率和其他度量\n",
+ "accuracy = accuracy_score(y_test_selected, y_pred)\n",
+ "recall = recall_score(y_test_selected, y_pred, average='macro')\n",
+ "conf_matrix = confusion_matrix(y_test_selected, y_pred)\n",
+ "class_report = classification_report(y_test_selected, y_pred)\n",
+ "score = lr_new.score(X_test_selected,y_test_selected)\n",
+ "\n",
+ "# 输出结果\n",
+ "print(\"Accuracy:\", accuracy)\n",
+ "print(\"Recall:\", recall)\n",
+ "print(\"\\n\")\n",
+ "print(class_report)\n",
+ "print(\"Confusion Matrix:\\n\", conf_matrix)\n",
+ "print(\"Score:\", score)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "# 随机森林\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "# K最近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Selected features: ['RevolvingUtilizationOfUnsecuredLines', 'DebtRatio', 'MonthlyIncome']\n",
+ "Accuracy: 0.9276823281907434\n",
+ "Recall: 0.5203853071917455\n",
+ "\n",
+ "\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.96 21309\n",
+ " 1 0.26 0.05 0.09 1507\n",
+ "\n",
+ " accuracy 0.93 22816\n",
+ " macro avg 0.60 0.52 0.52 22816\n",
+ "weighted avg 0.89 0.93 0.90 22816\n",
+ "\n",
+ "Confusion Matrix:\n",
+ " [[21089 220]\n",
+ " [ 1430 77]]\n",
+ "Score: 0.9276823281907434\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 随机森林\n",
+ "\n",
+ "# 训练随机森林模型\n",
+ "forest_for_selection = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10, # The number of trees in the forest.\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest_for_selection.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 从模型中获取系数\n",
+ "# coefficients = forest_for_selection.coef_[0]\n",
+ "importances = forest_for_selection.feature_importances_\n",
+ "\n",
+ "# # 创建一个DataFrame来保存系数及其绝对值\n",
+ "# feature_coefficients = pd.DataFrame({'Feature': feature_coefficients['Feature'], 'Coefficient': coefficients})\n",
+ "# feature_coefficients['Absolute_Coefficient'] = feature_coefficients['Coefficient'].abs()\n",
+ "\n",
+ "# 使用 SelectFromModel 进行特征选择\n",
+ "sfm_forest = SelectFromModel(forest_for_selection, threshold='mean') # 可以调整阈值\n",
+ "sfm_forest.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 获取被选中的特征\n",
+ "# selected_features_lr = X_train_std.columns[sfm_lr.get_support()]\n",
+ "# 获取被选中的特征的布尔索引\n",
+ "selected_features_bool = sfm_forest.get_support()\n",
+ "\n",
+ "# 使用布尔索引选择特征\n",
+ "X_selected = X_train_std[:, selected_features_bool]\n",
+ "\n",
+ "# 查看哪些特征被选中\n",
+ "selected_feature_names = [feature_coefficients['Feature'][i] for i in range(len(feature_coefficients['Feature'])) if selected_features_bool[i]]\n",
+ "print(\"Selected features:\", selected_feature_names)\n",
+ "\n",
+ "# 仅选择被选中的特征\n",
+ "# X_selected = X_train_std[selected_features_lr]\n",
+ "\n",
+ "# 分割数据集\n",
+ "X_train_selected, X_test_selected, y_train_selected, y_test_selected = train_test_split(X_selected, y_train, test_size=0.3, random_state=0)\n",
+ "\n",
+ "# 创建一个新的随机森林模型\n",
+ "forest_new = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10, # The number of trees in the forest.\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest_new.fit(X_train_selected, y_train_selected)\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = forest_new.predict(X_test_selected)\n",
+ "\n",
+ "# 计算准确率和其他度量\n",
+ "accuracy = accuracy_score(y_test_selected, y_pred)\n",
+ "recall = recall_score(y_test_selected, y_pred, average='macro')\n",
+ "conf_matrix = confusion_matrix(y_test_selected, y_pred)\n",
+ "class_report = classification_report(y_test_selected, y_pred)\n",
+ "score = forest_new.score(X_test_selected,y_test_selected)\n",
+ "\n",
+ "# 输出结果\n",
+ "print(\"Accuracy:\", accuracy)\n",
+ "print(\"Recall:\", recall)\n",
+ "print(\"\\n\")\n",
+ "print(class_report)\n",
+ "print(\"Confusion Matrix:\\n\", conf_matrix)\n",
+ "print(\"Score:\", score)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Selected features: ['NumberOfTimes90DaysLate']\n",
+ "Accuracy: 0.934125175315568\n",
+ "Recall: 0.5056436303647567\n",
+ "\n",
+ "\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 1.00 0.97 21309\n",
+ " 1 0.56 0.01 0.02 1507\n",
+ "\n",
+ " accuracy 0.93 22816\n",
+ " macro avg 0.75 0.51 0.49 22816\n",
+ "weighted avg 0.91 0.93 0.90 22816\n",
+ "\n",
+ "Confusion Matrix:\n",
+ " [[21295 14]\n",
+ " [ 1489 18]]\n",
+ "Score: 0.934125175315568\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 支持向量机\n",
+ "\n",
+ "# 训练向量机模型\n",
+ "svm_for_selection = SVC(kernel='linear', C=0.1, random_state=0, probability = True)\n",
+ "svm_for_selection.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 从模型中获取系数\n",
+ "coefficients = svm_for_selection.coef_[0]\n",
+ "# importances = svm_for_selection.feature_importances_\n",
+ "\n",
+ "# # 创建一个DataFrame来保存系数及其绝对值\n",
+ "# feature_coefficients = pd.DataFrame({'Feature': feature_coefficients['Feature'], 'Coefficient': coefficients})\n",
+ "# feature_coefficients['Absolute_Coefficient'] = feature_coefficients['Coefficient'].abs()\n",
+ "\n",
+ "# 使用 SelectFromModel 进行特征选择\n",
+ "sfm_svm = SelectFromModel(svm_for_selection, threshold='mean') # 可以调整阈值\n",
+ "sfm_svm.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 获取被选中的特征\n",
+ "# selected_features_lr = X_train_std.columns[sfm_lr.get_support()]\n",
+ "# 获取被选中的特征的布尔索引\n",
+ "selected_features_bool = sfm_svm.get_support()\n",
+ "\n",
+ "# 使用布尔索引选择特征\n",
+ "X_selected = X_train_std[:, selected_features_bool]\n",
+ "\n",
+ "# 查看哪些特征被选中\n",
+ "selected_feature_names = [feature_coefficients['Feature'][i] for i in range(len(feature_coefficients['Feature'])) if selected_features_bool[i]]\n",
+ "print(\"Selected features:\", selected_feature_names)\n",
+ "\n",
+ "# 仅选择被选中的特征\n",
+ "# X_selected = X_train_std[selected_features_lr]\n",
+ "\n",
+ "# 分割数据集\n",
+ "X_train_selected, X_test_selected, y_train_selected, y_test_selected = train_test_split(X_selected, y_train, test_size=0.3, random_state=0)\n",
+ "\n",
+ "# 创建一个新的向量机模型\n",
+ "svm_new = SVC(kernel='linear', C=0.1, random_state=0, probability = True)\n",
+ "svm_new.fit(X_train_selected, y_train_selected)\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = svm_new.predict(X_test_selected)\n",
+ "\n",
+ "# 计算准确率和其他度量\n",
+ "accuracy = accuracy_score(y_test_selected, y_pred)\n",
+ "recall = recall_score(y_test_selected, y_pred, average='macro')\n",
+ "conf_matrix = confusion_matrix(y_test_selected, y_pred)\n",
+ "class_report = classification_report(y_test_selected, y_pred)\n",
+ "score = svm_new.score(X_test_selected,y_test_selected)\n",
+ "\n",
+ "# 输出结果\n",
+ "print(\"Accuracy:\", accuracy)\n",
+ "print(\"Recall:\", recall)\n",
+ "print(\"\\n\")\n",
+ "print(class_report)\n",
+ "print(\"Confusion Matrix:\\n\", conf_matrix)\n",
+ "print(\"Score:\", score)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Selected features: ['RevolvingUtilizationOfUnsecuredLines', 'DebtRatio', 'MonthlyIncome']\n",
+ "Accuracy: 0.9293478260869565\n",
+ "Recall: 0.5024693841180347\n",
+ "\n",
+ "\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 0.99 0.96 21309\n",
+ " 1 0.12 0.01 0.02 1507\n",
+ "\n",
+ " accuracy 0.93 22816\n",
+ " macro avg 0.53 0.50 0.49 22816\n",
+ "weighted avg 0.88 0.93 0.90 22816\n",
+ "\n",
+ "Confusion Matrix:\n",
+ " [[21188 121]\n",
+ " [ 1491 16]]\n",
+ "Score: 0.9293478260869565\n"
+ ]
+ }
+ ],
+ "source": [
+ "# K最近邻\n",
+ "from sklearn.feature_selection import RFE\n",
+ "\n",
+ "# 使用随机森林进行特征选择\n",
+ "forest_for_selection = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=10, # The number of trees in the forest.\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest_for_selection.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 从模型中获取系数\n",
+ "# coefficients = forest_for_selection.coef_[0]\n",
+ "importances = forest_for_selection.feature_importances_\n",
+ "\n",
+ "# # 创建一个DataFrame来保存系数及其绝对值\n",
+ "# feature_coefficients = pd.DataFrame({'Feature': feature_coefficients['Feature'], 'Coefficient': coefficients})\n",
+ "# feature_coefficients['Absolute_Coefficient'] = feature_coefficients['Coefficient'].abs()\n",
+ "\n",
+ "# 使用 SelectFromModel 进行特征选择\n",
+ "sfm_forest = SelectFromModel(forest_for_selection, threshold='mean') # 可以调整阈值\n",
+ "sfm_forest.fit(X_train_std, y_train)\n",
+ "\n",
+ "# 获取被选中的特征\n",
+ "# selected_features_lr = X_train_std.columns[sfm_lr.get_support()]\n",
+ "# 获取被选中的特征的布尔索引\n",
+ "selected_features_bool = sfm_forest.get_support()\n",
+ "\n",
+ "# 使用布尔索引选择特征\n",
+ "X_selected = X_train_std[:, selected_features_bool]\n",
+ "\n",
+ "# 查看哪些特征被选中\n",
+ "selected_feature_names = [feature_coefficients['Feature'][i] for i in range(len(feature_coefficients['Feature'])) if selected_features_bool[i]]\n",
+ "print(\"Selected features:\", selected_feature_names)\n",
+ "\n",
+ "# 仅选择被选中的特征\n",
+ "# X_selected = X_train_std[selected_features_lr]\n",
+ "\n",
+ "# 分割数据集\n",
+ "X_train_selected, X_test_selected, y_train_selected, y_test_selected = train_test_split(X_selected, y_train, test_size=0.3, random_state=0)\n",
+ "\n",
+ "# 创建一个新的K最近邻模型\n",
+ "knn_new = KNeighborsClassifier(n_neighbors=5, p=2, metric='minkowski')\n",
+ "knn_new.fit(X_train_selected, y_train_selected)\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred = knn_new.predict(X_test_selected)\n",
+ "\n",
+ "# 计算准确率和其他度量\n",
+ "accuracy = accuracy_score(y_test_selected, y_pred)\n",
+ "recall = recall_score(y_test_selected, y_pred, average='macro')\n",
+ "conf_matrix = confusion_matrix(y_test_selected, y_pred)\n",
+ "class_report = classification_report(y_test_selected, y_pred)\n",
+ "score = knn_new.score(X_test_selected,y_test_selected)\n",
+ "\n",
+ "# 输出结果\n",
+ "print(\"Accuracy:\", accuracy)\n",
+ "print(\"Recall:\", recall)\n",
+ "print(\"\\n\")\n",
+ "print(class_report)\n",
+ "print(\"Confusion Matrix:\\n\", conf_matrix)\n",
+ "print(\"Score:\", score)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/Zou_Zenghui/homework_credit_scoring_Zou.ipynb b/2023/homework/Zou_Zenghui/homework_credit_scoring_Zou.ipynb
new file mode 100644
index 00000000..819fef60
--- /dev/null
+++ b/2023/homework/Zou_Zenghui/homework_credit_scoring_Zou.ipynb
@@ -0,0 +1,1533 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 112910 \n",
+ " 0.385742 \n",
+ " 50.0 \n",
+ " 0.0 \n",
+ " 0.404293 \n",
+ " 3400.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112911 \n",
+ " 0.040674 \n",
+ " 74.0 \n",
+ " 0.0 \n",
+ " 0.225131 \n",
+ " 2100.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112912 \n",
+ " 0.299745 \n",
+ " 44.0 \n",
+ " 0.0 \n",
+ " 0.716562 \n",
+ " 5584.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 112913 \n",
+ " 0.000000 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.000000 \n",
+ " 5716.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112914 \n",
+ " 0.850283 \n",
+ " 64.0 \n",
+ " 0.0 \n",
+ " 0.249908 \n",
+ " 8158.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
108648 rows × 10 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45.0 \n",
+ "1 0.957151 40.0 \n",
+ "2 0.658180 38.0 \n",
+ "3 0.233810 30.0 \n",
+ "4 0.907239 49.0 \n",
+ "... ... ... \n",
+ "112910 0.385742 50.0 \n",
+ "112911 0.040674 74.0 \n",
+ "112912 0.299745 44.0 \n",
+ "112913 0.000000 30.0 \n",
+ "112914 0.850283 64.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "... ... ... ... \n",
+ "112910 0.0 0.404293 3400.0 \n",
+ "112911 0.0 0.225131 2100.0 \n",
+ "112912 0.0 0.716562 5584.0 \n",
+ "112913 0.0 0.000000 5716.0 \n",
+ "112914 0.0 0.249908 8158.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "... ... ... \n",
+ "112910 7.0 0.0 \n",
+ "112911 4.0 0.0 \n",
+ "112912 4.0 0.0 \n",
+ "112913 4.0 0.0 \n",
+ "112914 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "... ... ... \n",
+ "112910 0.0 0.0 \n",
+ "112911 1.0 0.0 \n",
+ "112912 1.0 0.0 \n",
+ "112913 0.0 0.0 \n",
+ "112914 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 \n",
+ "... ... \n",
+ "112910 0.0 \n",
+ "112911 0.0 \n",
+ "112912 2.0 \n",
+ "112913 0.0 \n",
+ "112914 0.0 \n",
+ "\n",
+ "[108648 rows x 10 columns]"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((86918, 10), (21730, 10), (86918,), (21730,))"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=True, random_state=20)\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "## your code here\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "model = LogisticRegression(max_iter = 1000)# default max_iter(100) is too small to converge.\n",
+ "model.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = model.predict(X_test)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### see confusion matrix\n",
+ "https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[20247, 53],\n",
+ " [ 1359, 71]])"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sklearn.metrics import confusion_matrix\n",
+ "cm = confusion_matrix(y_test, y_pred)\n",
+ "cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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6GQc+4SEMvVPSEiAt7d3kfaAgACEh4fDxcWl2OsOHDiADh064OTJk/joo49w/vx5aDQauLi4YMiQIQgJCZGUpk6fPo2goCAcP34c1atXx7hx4xAaGioZc9u2bZg+fTquXLmCBg0aIDIyEl27di31szBgIXqFMGAhKqoiBywVCUtCREREMuNvCWmPAQsREZHMhAKFvqfw0uMuISIiIjJ4zLAQERHJjCUh7TFgISIikpkgsCSkLZaEiIiIyOAxw0JERCQzloS0x4CFiIhIZtwlpD0GLERERDKreK9oLX9cw0JEREQGjxkWIiIimbEkpD0GLERERDJjwKI9loSIiIjI4DHDQkREJDMuutUeAxYiIiKZsSSkPZaEiIiIyOAxw0JERCQz/paQ9koVsPz888+lHvC999574ckQERFVRHw1v/ZKFbD4+/uXajCFQoH8/Hxt5kNERERURKkCloIChoZEREQvqoAlIa1xDQsREZHMuIZFey8UsGRnZ+PgwYO4du0acnJyJOfGjx+vk4kRERFVFNzWrL0yByynTp1C165d8fDhQ2RnZ8PW1ha3b99GlSpVYGdnx4CFiIiIdK7M72EJDg5G9+7dce/ePZiZmeHIkSO4evUqWrZsiS+++EKOORIREb3UBEE3x6uszAFLcnIyJk6cCCMjIxgbG0Oj0aBWrVqIjIzEtGnT5JgjERHRS00oUOjkeJWVOWCpXLkyjIyeXGZnZ4dr164BAKysrPD333/rdnZEREREeIE1LM2bN8fx48fRoEEDtG/fHjNnzsTt27exfv16NGnSRI45EhERvdS4rVl7Zc6wzJs3D46OjgCAzz77DDY2NhgzZgxu3bqF1atX63yCRERELztBUOjkeJWVOcPSqlUr8c92dnbYs2ePTidERERE9DS+OI6IiEhmr/oOH10oc8Di4uICheLZaanLly9rNSEiIqKKhmtYtFfmgGXChAmSz7m5uTh16hT27NmDyZMn62peRERERKIyBywff/xxse0rVqzAiRMntJ4QERFRRfOqL5jVhTLvEnqWLl264Mcff9TVcERERBUG33SrPZ0FLD/88ANsbW11NRwREVGFUSAodHKUVWJiIrp37w4nJycoFArExMRIzguCgJkzZ8LR0RFmZmbw8fHBxYsXJX3u3r2LQYMGwdLSEtbW1ggMDERWVpakz+nTp9GuXTuYmpqK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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.heatmap(cm, annot = True, fmt = 'd')# annot = True: show the numbers in each heatmap cell\n",
+ " # fmt = 'd': show numbers as integers. \n",
+ "plt.xlabel('Predicted')\n",
+ "plt.ylabel('Actual')\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.935020708697653"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "R = cm[0,0] + cm[1,1]\n",
+ "All = cm[0,0] + cm[0,1] + cm[1,0] + cm[1,1]\n",
+ "R/All ## calculate the right rate manually "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.935020708697653"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "model.score(X_test, y_test) # Return the mean accuracy on the given test data and labels"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "## your code here\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "D_tree = DecisionTreeClassifier(criterion = 'entropy', random_state = 0, max_depth = 3)# max_depth prevent overfitting\n",
+ "D_tree.fit(X_train, y_train)\n",
+ "y_pred = D_tree.predict(X_test)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[20091, 209],\n",
+ " [ 1196, 234]])"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "D_tree_cm = confusion_matrix(y_test, y_pred)\n",
+ "D_tree_cm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.heatmap(D_tree_cm, annot = True, fmt = 'd')# annot = True: show the numbers in each heatmap cell\n",
+ " # fmt = 'd': show numbers as integers. \n",
+ "plt.xlabel('Predicted')\n",
+ "plt.ylabel('Actual')\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9353428439944776"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "D_tree.score(X_test, y_test) # Return the mean accuracy on the given test data and labels"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[0 0 0 ... 0 0 0]\n",
+ "The sore: 0.9319834330418776\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "forest = RandomForestClassifier(criterion='entropy', \n",
+ " n_estimators=4, # The number of trees in the forest.\n",
+ " random_state=1,\n",
+ " n_jobs=2)\n",
+ "forest.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = forest.predict(X_test)\n",
+ "sore_RF= forest.score(X_test, y_test) # Return the mean accuracy on the given test data and labels\n",
+ "print(y_predicted)\n",
+ "print('The sore:', sore_RF)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[20061 239]\n",
+ " [ 1239 191]]\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "forest_cm = confusion_matrix(y_test, y_pred)\n",
+ "print(forest_cm)\n",
+ "\n",
+ "sns.heatmap(forest_cm, annot = True, fmt = 'd')# annot = True: show the numbers in each heatmap cell\n",
+ " # fmt = 'd': show numbers as integers. \n",
+ "plt.xlabel('Predicted')\n",
+ "plt.ylabel('Actual')\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[0 0 0 ... 0 0 0]\n",
+ "The sore: 0.9341923607915325\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.svm import SVC\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "\n",
+ "svm = SVC()\n",
+ "svm.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = svm.predict(X_test)\n",
+ "sore_svm= svm.score(X_test, y_test) # Return the mean accuracy on the given test data and labels\n",
+ "print(y_predicted)\n",
+ "print('The sore:', sore_svm)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[20300 0]\n",
+ " [ 1430 0]]\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "svm_cm = confusion_matrix(y_test, y_pred)\n",
+ "print(svm_cm)\n",
+ "\n",
+ "sns.heatmap(svm_cm, annot = True, fmt = 'd')# annot = True: show the numbers in each heatmap cell\n",
+ " # fmt = 'd': show numbers as integers. \n",
+ "plt.xlabel('Predicted')\n",
+ "plt.ylabel('Actual')\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "The sore: 0.9332719742291763\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n",
+ "knn = KNeighborsClassifier()\n",
+ "knn.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = knn.predict(X_test)\n",
+ "sore_knn= knn.score(X_test, y_test) # Return the mean accuracy on the given test data and labels\n",
+ "print('The sore:', sore_knn)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[[20251 49]\n",
+ " [ 1401 29]]\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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XboUABAdHY2vvvoKsbGxOHPmDMLCwvD+++/jwIEDAJ4kVr1790aPHj2QlpaG4cOH45NPPpHrayOiV41AROUmODhY6NmzpyAIgqDVaoWEhARBqVQKEyZMEIKDgwUnJydBo9GI8Rs2bBA8PDwErVYrtmk0GsHCwkLYs2ePIAiC4OLiIsTExIjn8/PzhRo1aoj3EQRBaN++vfDRRx8JgiAI58+fFwAICQkJJY5x//79AgDh3r17Ytvjx4+FKlWqCIcOHZLEhoSECAMGDBAEQRAiIyOFRo0aSc5HREQU64uI6EVwDQtROdu5cyeqVq2K/Px8aLVaDBw4EFFRUQgNDYWnp6dk3crJkydx8eJFWFlZSfp4/PgxLl26hPv37+PGjRvw8fERz1WqVAktW7YsNi1UJC0tDaampmjfvn2px3zx4kU8fPgQnTp1krTn5eWhefPmAIDff/9dMg4A8PX1LfU9iIiehQkLUTnz8/PD6tWrYWZmBldXV1Sq9L+/hpaWlpLYnJwceHt7Y+PGjcX6qV69+gvd38LCoszX5OTkAAB27dqF1157TXJOqVS+0DiIiMqCCQtRObO0tES9evVKFduiRQts2bIFjo6OsLa2LjHGxcUFR44cQbt27QAABQUFSE1NRYsWLUqM9/T0hFarxYEDB+Dv71/sfFGFp7CwUGxr1KgRlEolrl279tTKTMOGDbFjxw5J2+HDh5//kEREpcBFt0RG7L333oODgwN69uyJX375BRkZGUhOTsbYsWPx119/AQA++ugjzJs3D/Hx8Th37hz++9//PvMdKrVr10ZwcDCGDRuG+Ph4sc+tW7cCANzc3KBQKLBz507cunULOTk5sLKywoQJExAWFob169fj0qVLOH78OJYvX47169cDAEaOHIkLFy5g4sSJOH/+PDZt2oS4uDi5vyIiekUwYSEyYlWqVEFKSgpq1aqF3r17o2HDhggJCcHjx4/Fisv48eMxaNAgBAcHw9fXF1ZWVujVq9cz+129ejX69u2L//73v2jQoAE++OAD5ObmAgBee+01zJgxA5988gmcnJwwevRoAMCsWbMwdepUREdHo2HDhujSpQt27doFd3d3AECtWrXw3XffIT4+Hl5eXoiNjcXcuXNl/HaI6FWiEJ62Mo+IiIjISLDCQkREREaPCQsREREZPSYsREREZPSYsBAREZHRY8JCRERERo8JCxERERk9JixERERk9JiwEBERkdFjwkJERERGjwkLERERGT0mLERERGT0mLAQERGR0fs/jLwf6lXEyKkAAAAASUVORK5CYII=",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "knn_cm = confusion_matrix(y_test, y_pred)\n",
+ "print(knn_cm)\n",
+ "\n",
+ "sns.heatmap(knn_cm, annot = True, fmt = 'd')# annot = True: show the numbers in each heatmap cell\n",
+ " # fmt = 'd': show numbers as integers. \n",
+ "plt.xlabel('Predicted')\n",
+ "plt.ylabel('Actual')\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.935020708697653"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import accuracy_score\n",
+ "accuracy_score(y_test, model.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9353428439944776"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "accuracy_score(y_test, D_tree.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9319834330418776"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "accuracy_score(y_test, forest.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9341923607915325"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "accuracy_score(y_test, svm.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.9332719742291763"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "accuracy_score(y_test, knn.predict(X_test))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Confusion Matrix of logistic regression:\n",
+ "[[20247 53]\n",
+ " [ 1359 71]]\n",
+ "Confusion Matrix of Decision Tree:\n",
+ "[[20091 209]\n",
+ " [ 1196 234]]\n",
+ "Confusion Matrix of Random Forest:\n",
+ "[[20061 239]\n",
+ " [ 1239 191]]\n",
+ "Confusion Matrix of SVM:\n",
+ "[[20300 0]\n",
+ " [ 1430 0]]\n",
+ "Confusion Matrix of KNN:\n",
+ "[[20251 49]\n",
+ " [ 1401 29]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "## confusion Matrix 已经写在练习2中\n",
+ "\n",
+ "# def \n",
+ "print('Confusion Matrix of logistic regression:')\n",
+ "print(cm)\n",
+ "\n",
+ "print('Confusion Matrix of Decision Tree:')\n",
+ "print(D_tree_cm)\n",
+ "\n",
+ "print('Confusion Matrix of Random Forest:')\n",
+ "print(forest_cm)\n",
+ "\n",
+ "print('Confusion Matrix of SVM:')\n",
+ "print(svm_cm)\n",
+ "\n",
+ "print('Confusion Matrix of KNN:')\n",
+ "print(knn_cm)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Precision:\n",
+ "The precision is the ratio tp / (tp + fp) where tp is the number of true positives and fp the number of false positives. The precision is intuitively the ability of the classifier not to label as positive a sample that is negative.\n",
+ "\n",
+ "Accuracy: Number of correct predictions/Total number of predictions\n",
+ "\n",
+ "Recall:\n",
+ "The recall is the measure of our model correctly identifying True Positives. Thus, for all the patients who actually have heart disease, recall tells us how many we correctly identified as having a heart disease. Mathematically:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Default values\n",
+ "0.935020708697653\n",
+ "0.5725806451612904\n",
+ "0.04965034965034965\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "## your code here\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.metrics import accuracy_score, recall_score, precision_score\n",
+ "\n",
+ "lr = LogisticRegression(max_iter = 1000)# default max_iter(100) is too small to converge.\n",
+ "lr.fit(X_train, y_train)\n",
+ "\n",
+ "y_pred = lr.predict(X_test)\n",
+ "accurracy = accuracy_score(y_test, y_pred)\n",
+ "precision = precision_score(y_test, y_pred)\n",
+ "recall = recall_score(y_test, y_pred)\n",
+ "print('Default values')\n",
+ "print(accurracy)\n",
+ "print(precision)\n",
+ "print(recall)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[0 0 0 ... 0 0 0]\n"
+ ]
+ }
+ ],
+ "source": [
+ "threshold = 0.3\n",
+ "y_pred_threshold = (lr.predict_proba(X_test)[:,1] > 0.3).astype(int)\n",
+ "print(y_pred_threshold)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Values corresponding to threshold = 0.3\n",
+ "0.934054302807179\n",
+ "0.4954128440366973\n",
+ "0.11328671328671329\n"
+ ]
+ }
+ ],
+ "source": [
+ "accurracy = accuracy_score(y_test, y_pred_threshold)\n",
+ "precision = precision_score(y_test, y_pred_threshold)\n",
+ "recall = recall_score(y_test, y_pred_threshold)\n",
+ "\n",
+ "print('Values corresponding to threshold = 0.3')\n",
+ "print(accurracy)\n",
+ "print(precision)\n",
+ "print(recall)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### conclusion:\n",
+ "Using 0.3 as threhold increases the recall significantly, does not change accuracy significantly and decreases precision a little.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "ictp-ap",
+ "language": "python",
+ "name": "ictp-ap"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/Zun_Wang/homework_credit_scoring.ipynb b/2023/homework/Zun_Wang/homework_credit_scoring.ipynb
new file mode 100644
index 00000000..d79910f7
--- /dev/null
+++ b/2023/homework/Zun_Wang/homework_credit_scoring.ipynb
@@ -0,0 +1,1291 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit. \n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10), (76053,), (32595,))"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True, random_state=0)\n",
+ "\n",
+ "# 查看数据的维度\n",
+ "X_train.shape, X_test.shape, y_train.shape, y_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "107294 0\n",
+ "39317 0\n",
+ "40606 0\n",
+ "68931 0\n",
+ "20745 0\n",
+ " ..\n",
+ "65166 0\n",
+ "109192 0\n",
+ "85812 0\n",
+ "50213 0\n",
+ "23557 0\n",
+ "Name: SeriousDlqin2yrs, Length: 32595, dtype: int64"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "y_test"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/dk/anaconda3/envs/igwn-py39/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py:763: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "LogisticRegression()"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.metrics import accuracy_score, classification_report\n",
+ "\n",
+ "# 创建 LogisticRegression 模型实例\n",
+ "lr_model = LogisticRegression(penalty='l2', # 正则化类型\n",
+ " dual=False, # 不使用对偶形式\n",
+ " tol=0.0001, # 收敛容忍度\n",
+ " C=1.0, # 正则化强度\n",
+ " fit_intercept=True, # 计算截距\n",
+ " class_weight=None, # 类别权重\n",
+ " random_state=None, # 随机数种子\n",
+ " solver='lbfgs', # 优化算法\n",
+ " max_iter=100, # 最大迭代次数\n",
+ " multi_class='auto', # 多分类策略\n",
+ " verbose=0, # 不输出过程\n",
+ " warm_start=False, # 不使用前次结果初始化\n",
+ " n_jobs=None) # CPU核数\n",
+ "\n",
+ "# 训练模型\n",
+ "lr_model.fit(X_train, y_train)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier(random_state=42)"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn.metrics import accuracy_score, classification_report\n",
+ "\n",
+ "# 创建决策树模型实例\n",
+ "dt_model = DecisionTreeClassifier(random_state=42)\n",
+ "\n",
+ "# 训练模型\n",
+ "dt_model.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "RandomForestClassifier(random_state=42)"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "# 创建随机森林模型实例\n",
+ "rf_model = RandomForestClassifier(n_estimators=100, random_state=42)\n",
+ "\n",
+ "# 训练模型\n",
+ "rf_model.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SVC(gamma='auto', random_state=42)"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.svm import SVC\n",
+ "\n",
+ "# 创建SVM模型实例\n",
+ "svm_model = SVC(gamma='auto', random_state=42)\n",
+ "\n",
+ "# 训练模型\n",
+ "svm_model.fit(X_train, y_train)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "KNeighborsClassifier()"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "\n",
+ "# 创建KNN模型实例,这里假设我们使用5个邻居\n",
+ "knn_model = KNeighborsClassifier(n_neighbors=5)\n",
+ "\n",
+ "# 训练模型\n",
+ "knn_model.fit(X_train, y_train)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Accuracy: 0.9333640128854118\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 1.00 0.97 30424\n",
+ " 1 0.49 0.02 0.04 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.71 0.51 0.50 32595\n",
+ "weighted avg 0.91 0.93 0.90 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "\n",
+ "# 在测试集上进行预测\n",
+ "y_pred_lr = lr_model.predict(X_test)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_lr = accuracy_score(y_test, y_pred_lr)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'Accuracy: {accuracy_lr}')\n",
+ "print(classification_report(y_test, y_pred_lr))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Decision Tree Accuracy: 0.8932658383187605\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.95 0.94 0.94 30424\n",
+ " 1 0.24 0.27 0.25 2171\n",
+ "\n",
+ " accuracy 0.89 32595\n",
+ " macro avg 0.59 0.60 0.60 32595\n",
+ "weighted avg 0.90 0.89 0.90 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "# 在测试集上进行预测\n",
+ "y_pred_dt = dt_model.predict(X_test)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_dt = accuracy_score(y_test, y_pred_dt)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'Decision Tree Accuracy: {accuracy_dt}')\n",
+ "print(classification_report(y_test, y_pred_dt))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Random Forest Accuracy: 0.9352047860101242\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.97 30424\n",
+ " 1 0.54 0.17 0.26 2171\n",
+ "\n",
+ " accuracy 0.94 32595\n",
+ " macro avg 0.74 0.58 0.61 32595\n",
+ "weighted avg 0.92 0.94 0.92 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "# 在测试集上进行预测\n",
+ "y_pred_rf = rf_model.predict(X_test)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_rf = accuracy_score(y_test, y_pred_rf)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'Random Forest Accuracy: {accuracy_rf}')\n",
+ "print(classification_report(y_test, y_pred_rf))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "SVM Accuracy: 0.9333333333333333\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 1.00 0.97 30424\n",
+ " 1 0.38 0.00 0.00 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.65 0.50 0.48 32595\n",
+ "weighted avg 0.90 0.93 0.90 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "# 在测试集上进行预测\n",
+ "y_pred_svm = svm_model.predict(X_test)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_svm = accuracy_score(y_test, y_pred_svm)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'SVM Accuracy: {accuracy_svm}')\n",
+ "print(classification_report(y_test, y_pred_svm))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/dk/anaconda3/envs/igwn-py39/lib/python3.9/site-packages/sklearn/neighbors/_classification.py:211: FutureWarning: Unlike other reduction functions (e.g. `skew`, `kurtosis`), the default behavior of `mode` typically preserves the axis it acts along. In SciPy 1.11.0, this behavior will change: the default value of `keepdims` will become False, the `axis` over which the statistic is taken will be eliminated, and the value None will no longer be accepted. Set `keepdims` to True or False to avoid this warning.\n",
+ " mode, _ = stats.mode(_y[neigh_ind, k], axis=1)\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "KNN Accuracy: 0.9321061512501917\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 1.00 0.96 30424\n",
+ " 1 0.30 0.01 0.03 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.62 0.51 0.50 32595\n",
+ "weighted avg 0.89 0.93 0.90 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "# 在测试集上进行预测\n",
+ "y_pred_knn = knn_model.predict(X_test)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_knn = accuracy_score(y_test, y_pred_knn)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'KNN Accuracy: {accuracy_knn}')\n",
+ "print(classification_report(y_test, y_pred_knn))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 假设 y_test 是测试集的真实标签,y_pred 是模型的预测标签\n",
+ "\n",
+ "# 生成混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred_lr)\n",
+ "\n",
+ "# 使用Seaborn来可视化混淆矩阵\n",
+ "plt.figure(figsize=(10, 7))\n",
+ "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap=\"Blues\")\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.ylabel('Actual Label')\n",
+ "plt.xlabel('Predicted Label')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkEAAAG5CAYAAACJLeBEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAAsTAAALEwEAmpwYAAAmmklEQVR4nO3debidZXnv8e8vCTMCYSwCKkJAI0dBKSAVq7UyqL2AUyooR5BDia3QSisqqBQBqXpUVBxQFARUJgUKKggUR7AIEZBZSRlKIAwyCwgE7vPHekMXabL3Tthr72ye78frvfZazzvda3uF3Lnv51lvqgpJkqTWTBrvACRJksaDSZAkSWqSSZAkSWqSSZAkSWqSSZAkSWqSSZAkSWqSSZA0QSRZLsn3kzyY5LvP4Tq7Jzl/NGMbD0nOTbLneMchaeIyCZJGWZJ3JpmZ5A9J5nR/Wb9uFC69C7AWsFpV/c3iXqSqvlNV245CPM+S5A1JKsmZ842/qhv/6Qiv87Ek3x7uuKraoapOWMxwJckkSBpNSf4Z+Dzwr/QSlhcBXwF2HIXLvxj4XVXNHYVrDco9wGuTrNY3tifwu9G6QXr8b5ek58z/kEijJMnKwGHAvlV1RlU9UlVPVtX3q+oD3THLJPl8kju67fNJlun2vSHJ7CTvT3J3V0Xaq9t3KPAvwK5dhWnv+SsmSV7SVVymdO/fneSmJA8nuTnJ7n3jF/Wdt3WSy7o222VJtu7b99Mkhye5uLvO+UlWH+LX8ATwb8Bu3fmTgV2B78z3u/pCktuSPJTk10m26ca3Bz7c9zl/0xfHEUkuBh4FXtqN/W23/+gkp/dd/1NJLkySkf7/J6k9JkHS6HktsCxw5hDHfATYCtgUeBWwBfDRvv1/AqwMrAPsDXw5ydSqOoRedenUqlqxqo4dKpAkKwBHATtU1QuArYErF3DcqsAPu2NXA44EfjhfJeedwF7AmsDSwAFD3Rs4Edije70dcA1wx3zHXEbvd7AqcBLw3STLVtWP5vucr+o7513ADOAFwK3zXe/9wP/qErxt6P3u9iyfCyRpCCZB0uhZDfj9MO2q3YHDquruqroHOJTeX+7zPNntf7KqzgH+AGy8mPE8DWySZLmqmlNV1y7gmLcCN1bVt6pqblWdDNwA/FXfMd+sqt9V1WPAafSSl4Wqql8CqybZmF4ydOICjvl2Vd3b3fOzwDIM/zmPr6pru3OenO96j9L7PR4JfBv4h6qaPcz1JDXOJEgaPfcCq89rRy3EC3l2FePWbuyZa8yXRD0KrLiogVTVI/TaUH8HzEnywyQvG0E882Jap+/9nYsRz7eA/YA3soDKWJIDklzfteAeoFf9GqrNBnDbUDur6lfATUDoJWuSNCSTIGn0/AfwOLDTEMfcQW+C8zwv4n+2ikbqEWD5vvd/0r+zqs6rqjcDa9Or7nx9BPHMi+n2xYxpnm8B7wXO6ao0z+jaVR8E3g5MrapVgAfpJS8AC2thDdnaSrIvvYrSHd31JWlIJkHSKKmqB+lNXv5ykp2SLJ9kqSQ7JPl/3WEnAx9NskY3wfhf6LVvFseVwOuTvKiblH3QvB1J1kqyYzc36HF6bbWnF3CNc4CNumX9U5LsCkwHfrCYMQFQVTcDf05vDtT8XgDMpbeSbEqSfwFW6tt/F/CSRVkBlmQj4OPA/6HXFvtgkk0XL3pJrTAJkkZRN7/ln+lNdr6HXgtnP3orpqD3F/VM4CrgauDybmxx7nUBcGp3rV/z7MRlUhfHHcB99BKSv1/ANe4F3kZvYvG99Coob6uq3y9OTPNd+6KqWlCV6zzgR/SWzd8K/JFnt7rmfRHkvUkuH+4+Xfvx28Cnquo3VXUjvRVm35q38k6SFiQunpAkSS2yEiRJkppkEiRJkppkEiRJkppkEiRJkpo01Je6javlNtvPGdvSOLjj4i+MdwhSs6YuP3lMn3c3mn/XPnbFlybcs/qsBEmSpCYtsZUgSZI0YCP/TtLnJZMgSZJalQnXwRpVbaeAkiSpWVaCJElqle0wSZLUJNthkiRJ7bESJElSq2yHSZKkJtkOkyRJao+VIEmSWmU7TJIkNcl2mCRJUnusBEmS1CrbYZIkqUm2wyRJktpjJUiSpFbZDpMkSU2yHSZJktQeK0GSJLXKdpgkSWpS40lQ259ekiQ1y0qQJEmtmtT2xGiTIEmSWmU7TJIkqT1WgiRJalXj3xNkEiRJUqtsh0mSJLXHSpAkSa2yHSZJkprUeDvMJEiSpFY1XglqOwWUJEnNshIkSVKrbIdJkqQm2Q6TJElqj5UgSZJaZTtMkiQ1yXaYJElSe6wESZLUKtthkiSpSY0nQW1/ekmS1CwrQZIktarxidEmQZIktcp2mCRJUntMgiRJalUyetuQt8l6SX6S5Lok1yZ5Xzf+sSS3J7my297Sd85BSWYl+W2S7frGt+/GZiU5sG98/SS/6sZPTbL0cB/fJEiSpFZl0uhtQ5sLvL+qpgNbAfsmmd7t+1xVbdpt5wB0+3YDXgFsD3wlyeQkk4EvAzsA04F39F3nU921NgTuB/YeLiiTIEmSNFBVNaeqLu9ePwxcD6wzxCk7AqdU1eNVdTMwC9ii22ZV1U1V9QRwCrBjkgB/AXyvO/8EYKfh4jIJkiSpVaPYDksyI8nMvm3Ggm+ZlwCbAb/qhvZLclWS45JM7cbWAW7rO212N7aw8dWAB6pq7nzjQzIJkiSpUeklL6OyVdUxVbV533bMAu63InA6sH9VPQQcDWwAbArMAT47lp/fJfKSJGngkixFLwH6TlWdAVBVd/Xt/zrwg+7t7cB6faev242xkPF7gVWSTOmqQf3HL5SVIEmSGjWalaBh7hPgWOD6qjqyb3ztvsN2Bq7pXp8N7JZkmSTrA9OAS4HLgGndSrCl6U2ePruqCvgJsEt3/p7AWcN9fitBkiS1auy+MPrPgHcBVye5shv7ML3VXZsCBdwCvAegqq5NchpwHb2VZftW1VMASfYDzgMmA8dV1bXd9T4EnJLk48AV9JKuIZkESZKkgaqqi1hwynXOEOccARyxgPFzFnReVd1Eb/XYiJkESZLUqOHaWM93JkGSJDWq9STIidGSJKlJVoIkSWpU65UgkyBJkhrVehJkO0ySJDXJSpAkSa1quxBkEiRJUqtsh0mSJDXISpAkSY1qvRJkEiRJUqNaT4Jsh0mSpCZZCZIkqVGtV4JMgiRJalXbOZDtMEmS1CYrQZIkNcp2mCRJalLrSZDtMEmS1CQrQZIkNar1SpBJkCRJrWo7B7IdJkmS2mQlSJKkRtkOkyRJTWo9CbIdJkmSmmQlSJKkRrVeCTIJkiSpUa0nQbbDJElSk6wESZLUqrYLQSZBkiS1ynaYJElSg6wESZLUqNYrQSZBkiQ1yiRIkiS1qe0cyDlBkiSpTVaCJElqlO0wSZLUpNaTINthkiSpSVaCtFDrrrUK3zh8D9Zc7QVUwXGnX8yXT/4pr9xoHb74kd1YZpmlmPvU0+z/r6cy89pb2eY10/ju52Zwyx33AnDWj6/kE8f8iGWWnsK/H7s/Sy89hSmTJ3Pmv1/Bx796DgDfPGJPXj39RTw59ylmXnMr+x1xMnPnPj2eH1taonz8Yx/h4p//jKmrrspJ3zsbgN/99no+dcShPPH440yePIUPfPhgXrHJK3nooQc54mMfZfbs21hm6WX4yMc+zgYbTuOuO+dw6MEHcd+9vycJO/3129n1ne8a50+mJUHrlSCTIC3U3Kee5sAjz+DKG2az4vLL8MuTPsSFv7qBI/bfiSOOOZfzL76O7V43nSP234nt9vkCABdf8Z/89fu++qzrPP7EXLafcRSPPPYEU6ZM4sfH/TPnX3wdl159C6ecexl7feQEAE74xLvZa+et+fp3Lxrzzyotqd76Vzuzy667c9jBBz4z9qXPf5a9Z7yXrV/3en75i5/xpc9/lqO/cQInHHsM0zZ+GZ868ovccvNNfOaTh/Olr32TyZOn8I///EFe9vLpPPLII7z7nbuwxZavZf0NNhzHT6YlQetJkO0wLdSdv3+IK2+YDcAfHn2cG26+kxeusQpVsNIKywKw8orLMeeeB4e91iOPPQHAUlMmM2XKZKoKgPMuuu6ZY2ZecyvrrDl1tD+GNKFt9prNWWnllZ81loRHHnkEgD/84Q+sscaaANx803+y+Z9uCcBL1n8pc+64g3vv/T2rr7EGL3v5dABWWGEFXrL+S7n7nrvH8FNIS6aBVYKSvAzYEVinG7odOLuqrh/UPTU4L1p7VTbdeF0uu+YWPvCZ7/H9L+/LJ/5pZyZNCm9892efOW7LV67Pr049kDn3PMhBR57J9TfdCcCkSeGXJ32IDdZbg6+d+nMuu+bWZ11/ypRJvOOtW/CBT39vTD+XNBHtf8CB7L/vPnzxc5+mnn6aY47/DgDTNtqYn/7439n01Ztz7TVXceecO7jnrrtYbbXVnzn3jjtu53e/vZ5NNnnleIWvJUnbhaDBVIKSfAg4hd6v99JuC3BykgOHOG9GkplJZs79/bWDCE2LYYXllubkz/wtH/jM6Tz8yB+Z8Tfb8MHPnsG0HQ7mg585naMP2R2AK2+4jY3fcjBb7vpJjj7lZ5z2uRnPXOPpp4utdvskG273UTbf5MVM32DtZ93jCwftysWXz+LiK/5zTD+bNBGd8d1TeN/7D+TsH/2Y9x3wIY449GAA9thrHx5++CHetevOfPeU77DRxi9n0uT//s/8o48+wkEHvI/9DziIFVZccbzC1xIkyahtE9Gg2mF7A39aVZ+sqm932yeBLbp9C1RVx1TV5lW1+ZTVXzGg0LQopkyZxMmf2YdTz53JWT/+DQC7v21L/u3CKwE4/YIr2PwVLwbg4Uf++Ezb67yLrmOpKZNZbZUVnnW9B//wGD+b+Tu23Xr6M2MfnrEDa0xdkQ9+9owx+ETSxHfOD87ijW96MwBvevP2XHft1QCssOKKHHzov/KtU8/kkMM/yf3338c666wHwNwnn+SgA/Znux3e9sy5UusGlQQ9DbxwAeNrd/s0QXz1kN357c13ctS3f/zM2Jx7HmSb10wD4A1bbMSs/7oHgLVWe8Ezx2z+ihczKeHeBx5h9akrsvKKywGw7DJL8aYtX8Zvb7kLgHfv/FrevPXL2eOg45+ZJyRpaKuvsSaX//oyAGZeegnrvaj7h8jDD/Hkk71/iJx15vfY7NWbs8KKK1JVHHHowbxk/Zfyzne9e7zC1hKo9UrQoOYE7Q9cmORG4LZu7EXAhsB+A7qnRtnWm76U3d+2JVf/7nYuOaXXxTzkS2ez7+En8ekP7MKUKZN4/PG57PfxkwHY+S83Y5+/2Ya5Tz3FH//4JHsc9E0A/mT1lfj6Ye9i8qRJTJoUTr/gcs79xTUAfPHDu/Ffc+7jpye8H/jvZfWSeg4+8AAu//WlPPDAA/zVdm9kn7/bj4MOPpTPffoTPDX3KZZeZmkO+uihANxy000c9i8HkYT1N9iQjxxyOAC/ufJyzv3h2WwwbSPetevOAPz9fvuz9TZ/Pm6fS0uGCZq7jJoM6l/fSSbRa3/1T4y+rKqeGsn5y222n2UBaRzccfEXxjsEqVlTl588pmnJhgecO2p/1876zA4TLqUa2OqwqnoauGRQ15ckSc/NRG1jjRa/LFGSpEY1ngP5ZYmSJKlNVoIkSWqU7TBJktSkxnMg22GSJKlNVoIkSWrUpEltl4JMgiRJapTtMEmSpAZZCZIkqVGuDpMkSU1qPAeyHSZJktpkJUiSpEa13g6zEiRJUqOSjNo2zH3WS/KTJNcluTbJ+7rxVZNckOTG7ufUbjxJjkoyK8lVSV7dd609u+NvTLJn3/hrklzdnXNURpDhmQRJkqRBmwu8v6qmA1sB+yaZDhwIXFhV04ALu/cAOwDTum0GcDT0kibgEGBLYAvgkHmJU3fMPn3nbT9cUCZBkiQ1Khm9bShVNaeqLu9ePwxcD6wD7Aic0B12ArBT93pH4MTquQRYJcnawHbABVV1X1XdD1wAbN/tW6mqLqmqAk7su9ZCOSdIkqRGjeacoCQz6FVt5jmmqo5ZwHEvATYDfgWsVVVzul13Amt1r9cBbus7bXY3NtT47AWMD8kkSJIkPWddwvM/kp5+SVYETgf2r6qH+pOwqqokNdgon812mCRJjRqrdljvXlmKXgL0nao6oxu+q2tl0f28uxu/HViv7/R1u7GhxtddwPiQTIIkSWrUGK4OC3AscH1VHdm362xg3gqvPYGz+sb36FaJbQU82LXNzgO2TTK1mxC9LXBet++hJFt199qj71oLZTtMkiQN2p8B7wKuTnJlN/Zh4JPAaUn2Bm4F3t7tOwd4CzALeBTYC6Cq7ktyOHBZd9xhVXVf9/q9wPHAcsC53TYkkyBJkho1Vt+VWFUXAQu725sWcHwB+y7kWscBxy1gfCawyaLEZRIkSVKj/MZoSZKkBlkJkiSpUY0XgkyCJElqle0wSZKkBlkJkiSpUY0XgkyCJElqle0wSZKkBlkJkiSpUY0XgkyCJElqle0wSZKkBlkJkiSpUY0XgkyCJElqle0wSZKkBlkJkiSpUa1XgkyCJElqVOM5kO0wSZLUJitBkiQ1ynaYJElqUuM5kEmQJEmtar0S5JwgSZLUJCtBkiQ1qvFCkEmQJEmtmtR4FmQ7TJIkNclKkCRJjWq8EGQSJElSq1wdJkmS1CArQZIkNWpS24UgkyBJklplO0ySJKlBVoIkSWpU44UgkyBJkloV2s6CbIdJkqQmWQmSJKlRrg6TJElNcnWYJElSg6wESZLUqMYLQSZBkiS1alLjWZDtMEmS1CQrQZIkNarxQtDCk6AkXwRqYfur6h8HEpEkSRoTra8OG6oSNHPMopAkSRpjC02CquqE/vdJlq+qRwcfkiRJGguNF4KGnxid5LVJrgNu6N6/KslXBh6ZJEkaqEnJqG0T0UhWh30e2A64F6CqfgO8foAxSZIkDdyIVodV1W3zTZ56ajDhSJKksTIx6zejZyRJ0G1JtgYqyVLA+4DrBxuWJEkatNZXh42kHfZ3wL7AOsAdwKbde0mSpAlr2EpQVf0e2H0MYpEkSWNoUtuFoBGtDntpku8nuSfJ3UnOSvLSsQhOkiQNTpJR2yaikbTDTgJOA9YGXgh8Fzh5kEFJkiQN2kiSoOWr6ltVNbfbvg0sO+jAJEnSYCWjt01EQz07bNXu5blJDgROofcssV2Bc8YgNkmSNEATtY01WoaaGP1reknPvN/Qe/r2FXDQoIKSJEkatKGeHbb+WAYiSZLGVuurw0b0jdFJNgGm0zcXqKpOHFRQkiRp8GyHDSPJIcAb6CVB5wA7ABcBJkGSJGnCGsnqsF2ANwF3VtVewKuAlQcalSRJGriM4jYRjaQd9lhVPZ1kbpKVgLuB9QYclyRJGrBJjbfDRlIJmplkFeDr9FaMXQ78xyCDkiRJzy9JjuuePHFN39jHktye5Mpue0vfvoOSzEry2yTb9Y1v343N6r7CZ974+kl+1Y2fmmTp4WIaNgmqqvdW1QNV9VXgzcCewEcW4XNLkqQl0Bh/WeLxwPYLGP9cVW3abef04sp0YDfgFd05X0kyOclk4Mv05idPB97RHQvwqe5aGwL3A3sPF9BIKkHPqKpbquoq4JJFOU+SJC15xvLZYVX1c+C+EYa2I3BKVT1eVTcDs4Atum1WVd1UVU/Q+yLnHdML4C+A73XnnwDsNNxNFikJ6tN2E1GSJI2W/ZJc1bXLpnZj6wC39R0zuxtb2PhqwANVNXe+8SEtbhJUi3meJElaQoxmOyzJjCQz+7YZIwjhaGADYFNgDvDZQX7e+Q317LAvsuBkJ8AqgwpIkiSNjdFcHVZVxwDHLOI5d817neTrwA+6t7fz7JXo63ZjLGT8XmCVJFO6alD/8Qs11BL5mYu5T5IkaVhJ1q6qOd3bnYF5K8fOBk5KciTwQmAacCm9Qsy0JOvTS3J2A95ZVZXkJ/S+2/AUeou4zhru/kM9O+yExftIkiRpIhjLrwlKcjK9J1CsnmQ2cAjwhiSb0us83UL3sPaqujbJacB1wFxg36p6qrvOfsB5wGTguKq6trvFh4BTknwcuAI4driYRvTsMEmS9Pwzls8Oq6p3LGB4oYlKVR0BHLGA8XPoPcZr/vGb6K0eG7HFnRgtSZI0oS2xlaA7f3nUeIcgNWmZpfy3kdSK1v+0L87qMACq6h8HEpEkSRoTY9kOWxIt7uowSZKkCc3VYZIkNWpS24Wg4ecEJVmD3rKz6cCy88ar6i8GGJckSRqw1pOgkcyJ+g5wPbA+cCi9dfyXDTAmSZI0BsbyAapLopEkQatV1bHAk1X1s6r6v/Se1CpJkjRhjWSJ/JPdzzlJ3grcAaw6uJAkSdJYaL0dNpIk6ONJVgbeD3wRWAn4p4FGJUmSBm6CdrFGzbBJUFXNe6Lrg8AbBxuOJEnS2BjJ6rBvsoAvTezmBkmSpAlqUuOloJG0w37Q93pZeo+6v2Mw4UiSpLHiYzOGUVWn979PcjJw0cAikiRJGgOL8wDVacCaox2IJEkaW413w0Y0J+hhnj0n6E563yAtSZImMOcEDaOqXjAWgUiSJI2lYedEJblwJGOSJGliSUZvm4gWWglKsiywPLB6kqnAvI+4ErDOGMQmSZIGyG+MXrj3APsDLwR+zX8nQQ8BXxpsWJIkSYO10CSoqr4AfCHJP1TVF8cwJkmSNAZanxg9ku9JejrJKvPeJJma5L2DC0mSJI2F1ucEjSQJ2qeqHpj3pqruB/YZWESSJEljYCRfljg5SaqqAJJMBpYebFiSJGnQnBg9vB8Bpyb5Wvf+Pd2YJEmawELbWdBIkqAPATOAv+/eXwB8fWARSZIkjYFh5wRV1dNV9dWq2qWqdgGuA1wtJknSBDcpo7dNRCN6gGqSzYB3AG8HbgbOGGRQkiRp8CZq8jJahvrG6I3oJT7vAH4PnAqkqt44RrFJkiQNzFCVoBuAXwBvq6pZAEn+aUyikiRJA5eJ+gU/o2SoJOh/A7sBP0nyI+AUaHwauSRJzyOtt8MWOjG6qv6tqnYDXgb8hN5zxNZMcnSSbccoPkmSpIEYyeqwR6rqpKr6K2Bd4Ap6y+YlSdIE1vpjM0a0Omye7pEZx3SbJEmawHyAqiRJUoMWqRIkSZKeP1qfGG0SJElSoxrvhtkOkyRJbbISJElSoyY1/vV/JkGSJDXKdpgkSVKDrARJktQoV4dJkqQm+WWJkiRJDbISJElSoxovBJkESZLUKtthkiRJDbISJElSoxovBJkESZLUqtbbQa1/fkmS1CgrQZIkNSqN98NMgiRJalTbKZDtMEmS1CgrQZIkNar17wkyCZIkqVFtp0C2wyRJUqOsBEmS1KjGu2EmQZIktar1JfK2wyRJUpOsBEmS1KjWKyGtf35JkpqVZNS2EdzruCR3J7mmb2zVJBckubH7ObUbT5KjksxKclWSV/eds2d3/I1J9uwbf02Sq7tzjsoIgjIJkiSpURnFbQSOB7afb+xA4MKqmgZc2L0H2AGY1m0zgKOhlzQBhwBbAlsAh8xLnLpj9uk7b/57/Q8mQZIkaeCq6ufAffMN7wic0L0+Adipb/zE6rkEWCXJ2sB2wAVVdV9V3Q9cAGzf7Vupqi6pqgJO7LvWQjknSJKkRo3m6rAkM+hVbeY5pqqOGea0tapqTvf6TmCt7vU6wG19x83uxoYan72A8SGZBEmS1KjRbAd1Cc9wSc9Q51eSGsWQhmU7TJIkjZe7ulYW3c+7u/HbgfX6jlu3GxtqfN0FjA/JJEiSpEaN5eqwhTgbmLfCa0/grL7xPbpVYlsBD3Zts/OAbZNM7SZEbwuc1+17KMlW3aqwPfqutVC2wyRJatRYfl90kpOBNwCrJ5lNb5XXJ4HTkuwN3Aq8vTv8HOAtwCzgUWAvgKq6L8nhwGXdcYdV1bzJ1u+ltwJtOeDcbhs6pt4k6iXPg489vWQGJj3PLbOUBWJpvCw7ZWwf7P5vV905an/X7vTKP5lwz+CwEiRJUqMaf3SYSZAkSa2aNLaFpyWOdW9JktQkK0GSJDXKdpgkSWpSbIdJkiS1x0qQJEmNsh0mSZKa5OowSZKkBlkJkiSpUbbDJElSk1pPgmyHSZKkJlkJkiSpUa1/T5BJkCRJjZrUdg5kO0ySJLXJSpAkSY2yHSZJkprk6jBJkqQGWQmSJKlRtsMkSVKTXB0mSZLUICtBkiQ1ynaYJElqkqvDJEmSGmQlSJKkRjVeCDIJkiSpVZMa74fZDpMkSU0a8yQoyV5D7JuRZGaSmccfe8xYhiVJUnMyittElKoa2xsm/1VVLxruuAcfe3psA5MEwDJLWSCWxsuyU8Y2n7jkPx8Ytb9rt9pglQmXCw1kTlCSqxa2C1hrEPeUJElaFIOaGL0WsB1w/3zjAX45oHtKkqRF4JclDsYPgBWr6sr5dyT56YDuKUmSFkHji8MGkwRV1d5D7HvnIO4pSZK0KPyeIEmSGtV4IcgkSJKkZjWeBbkWVpIkNclKkCRJjXJ1mCRJalLrq8Nsh0mSpCZZCZIkqVGNF4JMgiRJalbjWZDtMEmS1CQrQZIkNcrVYZIkqUmuDpMkSWqQlSBJkhrVeCHIJEiSpGY1ngWZBEmS1KjWJ0Y7J0iSJDXJSpAkSY1qfXWYSZAkSY1qPAeyHSZJktpkJUiSpFY1XgoyCZIkqVGuDpMkSWqQlSBJkhrl6jBJktSkxnMg22GSJKlNVoIkSWpV46UgK0GSJDUqo/i/Ye+V3JLk6iRXJpnZja2a5IIkN3Y/p3bjSXJUkllJrkry6r7r7Nkdf2OSPZ/L5zcJkiRJY+WNVbVpVW3evT8QuLCqpgEXdu8BdgCmddsM4GjoJU3AIcCWwBbAIfMSp8VhEiRJUqOS0dsW047ACd3rE4Cd+sZPrJ5LgFWSrA1sB1xQVfdV1f3ABcD2i3tzkyBJkhqV0dySGUlm9m0z5rtdAecn+XXfvrWqak73+k5gre71OsBtfefO7sYWNr5YnBgtSZKes6o6BjhmiENeV1W3J1kTuCDJDfOdX0lqoEHOx0qQJEmtGs1S0DCq6vbu593AmfTm9NzVtbnoft7dHX47sF7f6et2YwsbXywmQZIkNWqsVoclWSHJC+a9BrYFrgHOBuat8NoTOKt7fTawR7dKbCvgwa5tdh6wbZKp3YTobbuxxWI7TJIkDdpawJnpzaCeApxUVT9KchlwWpK9gVuBt3fHnwO8BZgFPArsBVBV9yU5HLisO+6wqrpvcYNK1Zi230bswceeXjIDk57nllnKArE0XpadMrZfXzjr7sdG7e/aDddcbsJ99aKVIEmSGjXhspZR5j/5JElSk6wESZLUqsZLQSZBkiQ1aiTP/Ho+sx0mSZKaZCVIkqRGPYdnfj0vmARJktSoxnMg22GSJKlNVoIkSWpV46UgkyBJkhrl6jBJkqQGWQmSJKlRrg6TJElNajwHsh0mSZLaZCVIkqRG2Q6TJEmNajsLsh0mSZKaZCVIkqRG2Q6TJElNajwHsh0mSZLaZCVIkqRG2Q6TJElN8tlhkiRJDbISJElSq9ouBJkESZLUqsZzINthkiSpTVaCJElqlKvDJElSk1wdJkmS1CArQZIktartQpBJkCRJrWo8B7IdJkmS2mQlSJKkRrk6TJIkNan11WEmQZIkNar1SpBzgiRJUpNMgiRJUpNsh0mS1CjbYZIkSQ2yEiRJUqNcHSZJkppkO0ySJKlBVoIkSWpU44UgkyBJkprVeBZkO0ySJDXJSpAkSY1ydZgkSWqSq8MkSZIaZCVIkqRGNV4IMgmSJKlZjWdBtsMkSVKTrARJktQoV4dJkqQmuTpMkiSpQamq8Y5Bz0NJZlTVMeMdh9Qa/+xJI2clSIMyY7wDkBrlnz1phEyCJElSk0yCJElSk0yCNCjOSZDGh3/2pBFyYrQkSWqSlSBJktQkkyBJktQkkyCNqiTbJ/ltkllJDhzveKRWJDkuyd1JrhnvWKSJwiRIoybJZODLwA7AdOAdSaaPb1RSM44Hth/vIKSJxCRIo2kLYFZV3VRVTwCnADuOc0xSE6rq58B94x2HNJGYBGk0rQPc1vd+djcmSdISxyRIkiQ1ySRIo+l2YL2+9+t2Y5IkLXFMgjSaLgOmJVk/ydLAbsDZ4xyTJEkLZBKkUVNVc4H9gPOA64HTqura8Y1KakOSk4H/ADZOMjvJ3uMdk7Sk87EZkiSpSVaCJElSk0yCJElSk0yCJElSk0yCJElSk0yCJElSk0yCpHGU5KkkVya5Jsl3kyz/HK51fJJdutffGOrhtUnekGTrxbjHLUlWH+n4Qq7x7iRfGo37StJzYRIkja/HqmrTqtoEeAL4u/6dSaYszkWr6m+r6rohDnkDsMhJkCQ9n5gESUuOXwAbdlWaXyQ5G7guyeQkn05yWZKrkrwHID1fSvLbJP8OrDnvQkl+mmTz7vX2SS5P8pskFyZ5Cb1k65+6KtQ2SdZIcnp3j8uS/Fl37mpJzk9ybZJvABnph0myRZL/SHJFkl8m2bhv93pdjDcmOaTvnP+T5NIurq8lmbz4v05JGtpi/StT0ujqKj47AD/qhl4NbFJVNyeZATxYVX+aZBng4iTnA5sBGwPTgbWA64Dj5rvuGsDXgdd311q1qu5L8lXgD1X1me64k4DPVdVFSV5E71u/Xw4cAlxUVYcleSuwKN9CfAOwTVXNTfKXwL8Cf93t2wLYBHgUuCzJD4FHgF2BP6uqJ5N8BdgdOHER7ilJI2YSJI2v5ZJc2b3+BXAsvTbVpVV1cze+LfDKefN9gJWBacDrgZOr6ingjiQ/XsD1twJ+Pu9aVXXfQuL4S2B68kyhZ6UkK3b3+N/duT9Mcv8ifLaVgROSTAMKWKpv3wVVdS9AkjOA1wFzgdfQS4oAlgPuXoT7SdIiMQmSxtdjVbVp/0CXADzSPwT8Q1WdN99xbxnFOCYBW1XVHxcQy+I6HPhJVe3cteB+2rdv/uf1FL3PeUJVHfRcbipJI+WcIGnJdx7w90mWAkiyUZIVgJ8Du3ZzhtYG3riAcy8BXp9k/e7cVbvxh4EX9B13PvAP894k2bR7+XPgnd3YDsDURYh7ZeD27vW759v35iSrJlkO2Am4GLgQ2CXJmvNiTfLiRbifJC0SkyBpyfcNevN9Lk9yDfA1elXcM4Ebu30n0nuC+LNU1T3ADOCMJL8BTu12fR/Yed7EaOAfgc27idfX8d+r1A6ll0RdS68t9l9DxHlV9/Ty2UmOBP4f8IkkV/A/q86XAqcDVwGnV9XMbjXbR4Hzk1wFXACsPcLfkSQtMp8iL0mSmmQlSJIkNckkSJIkNckkSJIkNckkSJIkNckkSJIkNckkSJIkNckkSJIkNen/A+HoMFZlGCcIAAAAAElFTkSuQmCC",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 假设 y_test 是测试集的真实标签,y_pred 是模型的预测标签\n",
+ "\n",
+ "# 生成混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred_dt)\n",
+ "\n",
+ "# 使用Seaborn来可视化混淆矩阵\n",
+ "plt.figure(figsize=(10, 7))\n",
+ "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap=\"Blues\")\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.ylabel('Actual Label')\n",
+ "plt.xlabel('Predicted Label')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 假设 y_test 是测试集的真实标签,y_pred 是模型的预测标签\n",
+ "\n",
+ "# 生成混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred_rf)\n",
+ "\n",
+ "# 使用Seaborn来可视化混淆矩阵\n",
+ "plt.figure(figsize=(10, 7))\n",
+ "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap=\"Blues\")\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.ylabel('Actual Label')\n",
+ "plt.xlabel('Predicted Label')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 假设 y_test 是测试集的真实标签,y_pred 是模型的预测标签\n",
+ "\n",
+ "# 生成混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred_svm)\n",
+ "\n",
+ "# 使用Seaborn来可视化混淆矩阵\n",
+ "plt.figure(figsize=(10, 7))\n",
+ "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap=\"Blues\")\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.ylabel('Actual Label')\n",
+ "plt.xlabel('Predicted Label')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# 假设 y_test 是测试集的真实标签,y_pred 是模型的预测标签\n",
+ "\n",
+ "# 生成混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred_knn)\n",
+ "\n",
+ "# 使用Seaborn来可视化混淆矩阵\n",
+ "plt.figure(figsize=(10, 7))\n",
+ "sns.heatmap(conf_matrix, annot=True, fmt='d', cmap=\"Blues\")\n",
+ "plt.title('Confusion Matrix')\n",
+ "plt.ylabel('Actual Label')\n",
+ "plt.xlabel('Predicted Label')\n",
+ "plt.show()\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Custom Threshold Accuracy: 0.9312778033440712\n",
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.96 30424\n",
+ " 1 0.40 0.07 0.12 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.67 0.53 0.54 32595\n",
+ "weighted avg 0.90 0.93 0.91 32595\n",
+ "\n",
+ "Confusion Matrix:\n",
+ "[[30208 216]\n",
+ " [ 2024 147]]\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/dk/anaconda3/envs/igwn-py39/lib/python3.9/site-packages/sklearn/linear_model/_logistic.py:763: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
+ "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
+ "\n",
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
+ "Please also refer to the documentation for alternative solver options:\n",
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
+ " n_iter_i = _check_optimize_result(\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
+ "import numpy as np\n",
+ "\n",
+ "# 假设 X_train, X_test, y_train, y_test 已经在您的环境中定义好了\n",
+ "\n",
+ "# 创建 LogisticRegression 模型实例\n",
+ "lr_model = LogisticRegression(penalty='l2', # 正则化类型\n",
+ " dual=False, # 不使用对偶形式\n",
+ " tol=0.0001, # 收敛容忍度\n",
+ " C=1.0, # 正则化强度\n",
+ " fit_intercept=True, # 计算截距\n",
+ " class_weight=None, # 类别权重\n",
+ " random_state=None, # 随机数种子\n",
+ " solver='lbfgs', # 优化算法\n",
+ " max_iter=100, # 最大迭代次数\n",
+ " multi_class='auto', # 多分类策略\n",
+ " verbose=0, # 不输出过程\n",
+ " warm_start=False, # 不使用前次结果初始化\n",
+ " n_jobs=None) # CPU核数\n",
+ "\n",
+ "# 训练模型\n",
+ "lr_model.fit(X_train, y_train)\n",
+ "\n",
+ "# 获取测试集上的预测概率\n",
+ "y_proba = lr_model.predict_proba(X_test)[:, 1]\n",
+ "\n",
+ "# 定义一个阈值\n",
+ "threshold = 0.3\n",
+ "\n",
+ "# 根据阈值生成自定义的预测结果\n",
+ "y_pred_custom = np.where(y_proba >= threshold, 1, 0)\n",
+ "\n",
+ "# 计算准确率\n",
+ "accuracy_custom = accuracy_score(y_test, y_pred_custom)\n",
+ "\n",
+ "# 计算混淆矩阵\n",
+ "conf_matrix_custom = confusion_matrix(y_test, y_pred_custom)\n",
+ "\n",
+ "# 打印准确率和分类报告\n",
+ "print(f'Custom Threshold Accuracy: {accuracy_custom}')\n",
+ "print(classification_report(y_test, y_pred_custom))\n",
+ "\n",
+ "# 打印混淆矩阵\n",
+ "print('Confusion Matrix:')\n",
+ "print(conf_matrix_custom)\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "base",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.9.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/2023/homework/shanleilei/homework_credit_scoring .ipynb b/2023/homework/shanleilei/homework_credit_scoring .ipynb
new file mode 100644
index 00000000..8064e864
--- /dev/null
+++ b/2023/homework/shanleilei/homework_credit_scoring .ipynb
@@ -0,0 +1,2706 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "QATykvBElCro"
+ },
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/drive')"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "oAnvRrtMyTiF",
+ "outputId": "b5d533bd-f9ed-4e40-b1cf-8d63b679571d"
+ },
+ "execution_count": 2,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HF0X_fp8lCrq"
+ },
+ "source": [
+ "---\n",
+ "## 作业说明\n",
+ "\n",
+ "- 答题步骤:\n",
+ " - 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ " - 请养成代码注释的好习惯\n",
+ "\n",
+ "- 解题思路:\n",
+ " - 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ " - 解题思路**仅供参考**,鼓励原创解题方法\n",
+ " - 为督促同学们自己思考,解题思路内容设置为**白色**,必要时请从冒号后拖动鼠标查看\n",
+ "\n",
+ "- 所用数据\n",
+ " - 请注意导入数据库后先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "UZJUuzR9lCrr"
+ },
+ "source": [
+ "## machine learning for credit scoring\n",
+ "\n",
+ "\n",
+ "Banks play a crucial role in market economies. They decide who can get finance and on what terms and can make or break investment decisions. For markets and society to function, individuals and companies need access to credit.\n",
+ "\n",
+ "Credit scoring algorithms, which make a guess at the probability of default, are the method banks use to determine whether or not a loan should be granted. This competition requires participants to improve on the state of the art in credit scoring, by predicting the probability that somebody will experience financial distress in the next two years. [Dataset](https://www.kaggle.com/c/GiveMeSomeCredit)\n",
+ "\n",
+ "Attribute Information:\n",
+ "\n",
+ "|Variable Name\t|\tDescription\t|\tType|\n",
+ "|----|----|----|\n",
+ "|SeriousDlqin2yrs\t|\tPerson experienced 90 days past due delinquency or worse \t|\tY/N|\n",
+ "|RevolvingUtilizationOfUnsecuredLines\t|\tTotal balance on credit divided by the sum of credit limits\t|\tpercentage|\n",
+ "|age\t|\tAge of borrower in years\t|\tinteger|\n",
+ "|NumberOfTime30-59DaysPastDueNotWorse\t|\tNumber of times borrower has been 30-59 days past due |\tinteger|\n",
+ "|DebtRatio\t|\tMonthly debt payments\t|\tpercentage|\n",
+ "|MonthlyIncome\t|\tMonthly income\t|\treal|\n",
+ "|NumberOfOpenCreditLinesAndLoans\t|\tNumber of Open loans |\tinteger|\n",
+ "|NumberOfTimes90DaysLate\t|\tNumber of times borrower has been 90 days or more past due.\t|\tinteger|\n",
+ "|NumberRealEstateLoansOrLines\t|\tNumber of mortgage and real estate loans\t|\tinteger|\n",
+ "|NumberOfTime60-89DaysPastDueNotWorse\t|\tNumber of times borrower has been 60-89 days past due |integer|\n",
+ "|NumberOfDependents\t|\tNumber of dependents in family\t|\tinteger|\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "%cd /home\n",
+ "!pwd"
+ ],
+ "metadata": {
+ "id": "d8z8eYJrpM3V",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "1b0c4c22-feab-49d6-ecdb-9f273425d9c2"
+ },
+ "execution_count": 3,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "/home\n",
+ "/home\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "UDRHplYVlCrr"
+ },
+ "source": [
+ "----------\n",
+ "## Read the data into Pandas"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 244
+ },
+ "id": "otHEeK6JlCrs",
+ "outputId": "1487d03b-6577-4522-e25b-a461586d0276"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 4
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "rpSdRHj5lCrt",
+ "outputId": "ad14f6a3-aea4-4dee-9a15-7aefdce291a8"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 5
+ }
+ ],
+ "source": [
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Ey4XR8julCrt"
+ },
+ "source": [
+ "------------\n",
+ "## Drop na"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "OGuu1V7plCru",
+ "outputId": "a6c978f7-0977-49a0-dbe7-f7be99578440"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 6
+ }
+ ],
+ "source": [
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "r9VgpoValCru",
+ "outputId": "1ddba7eb-5409-46f3-bed5-78e966ad8432"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "(108648, 11)"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 7
+ }
+ ],
+ "source": [
+ "data.dropna(inplace=True)\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "6IjRfh0llCru"
+ },
+ "source": [
+ "---------\n",
+ "## Create X and y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "Lj82L8m7lCrv"
+ },
+ "outputs": [],
+ "source": [
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "y\n",
+ "y.mean()\n",
+ "X"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 461
+ },
+ "id": "wvZqZ50CWwyw",
+ "outputId": "2b3718d5-05cd-4030-dc14-368b447146ee"
+ },
+ "execution_count": 15,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45.0 \n",
+ "1 0.957151 40.0 \n",
+ "2 0.658180 38.0 \n",
+ "3 0.233810 30.0 \n",
+ "4 0.907239 49.0 \n",
+ "... ... ... \n",
+ "112910 0.385742 50.0 \n",
+ "112911 0.040674 74.0 \n",
+ "112912 0.299745 44.0 \n",
+ "112913 0.000000 30.0 \n",
+ "112914 0.850283 64.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "... ... ... ... \n",
+ "112910 0.0 0.404293 3400.0 \n",
+ "112911 0.0 0.225131 2100.0 \n",
+ "112912 0.0 0.716562 5584.0 \n",
+ "112913 0.0 0.000000 5716.0 \n",
+ "112914 0.0 0.249908 8158.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "... ... ... \n",
+ "112910 7.0 0.0 \n",
+ "112911 4.0 0.0 \n",
+ "112912 4.0 0.0 \n",
+ "112913 4.0 0.0 \n",
+ "112914 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "... ... ... \n",
+ "112910 0.0 0.0 \n",
+ "112911 1.0 0.0 \n",
+ "112912 1.0 0.0 \n",
+ "112913 0.0 0.0 \n",
+ "112914 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 \n",
+ "... ... \n",
+ "112910 0.0 \n",
+ "112911 0.0 \n",
+ "112912 2.0 \n",
+ "112913 0.0 \n",
+ "112914 0.0 \n",
+ "\n",
+ "[108648 rows x 10 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 112910 \n",
+ " 0.385742 \n",
+ " 50.0 \n",
+ " 0.0 \n",
+ " 0.404293 \n",
+ " 3400.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112911 \n",
+ " 0.040674 \n",
+ " 74.0 \n",
+ " 0.0 \n",
+ " 0.225131 \n",
+ " 2100.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112912 \n",
+ " 0.299745 \n",
+ " 44.0 \n",
+ " 0.0 \n",
+ " 0.716562 \n",
+ " 5584.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 112913 \n",
+ " 0.000000 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.000000 \n",
+ " 5716.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112914 \n",
+ " 0.850283 \n",
+ " 64.0 \n",
+ " 0.0 \n",
+ " 0.249908 \n",
+ " 8158.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
108648 rows × 10 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 15
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 461
+ },
+ "id": "pch3JmENlCrv",
+ "outputId": "0f0606f9-bed3-432e-fb27-ea827e557039"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 0.766127 45.0 \n",
+ "1 0.957151 40.0 \n",
+ "2 0.658180 38.0 \n",
+ "3 0.233810 30.0 \n",
+ "4 0.907239 49.0 \n",
+ "... ... ... \n",
+ "112910 0.385742 50.0 \n",
+ "112911 0.040674 74.0 \n",
+ "112912 0.299745 44.0 \n",
+ "112913 0.000000 30.0 \n",
+ "112914 0.850283 64.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "... ... ... ... \n",
+ "112910 0.0 0.404293 3400.0 \n",
+ "112911 0.0 0.225131 2100.0 \n",
+ "112912 0.0 0.716562 5584.0 \n",
+ "112913 0.0 0.000000 5716.0 \n",
+ "112914 0.0 0.249908 8158.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "... ... ... \n",
+ "112910 7.0 0.0 \n",
+ "112911 4.0 0.0 \n",
+ "112912 4.0 0.0 \n",
+ "112913 4.0 0.0 \n",
+ "112914 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "... ... ... \n",
+ "112910 0.0 0.0 \n",
+ "112911 1.0 0.0 \n",
+ "112912 1.0 0.0 \n",
+ "112913 0.0 0.0 \n",
+ "112914 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 \n",
+ "... ... \n",
+ "112910 0.0 \n",
+ "112911 0.0 \n",
+ "112912 2.0 \n",
+ "112913 0.0 \n",
+ "112914 0.0 \n",
+ "\n",
+ "[108648 rows x 10 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 112910 \n",
+ " 0.385742 \n",
+ " 50.0 \n",
+ " 0.0 \n",
+ " 0.404293 \n",
+ " 3400.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112911 \n",
+ " 0.040674 \n",
+ " 74.0 \n",
+ " 0.0 \n",
+ " 0.225131 \n",
+ " 2100.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112912 \n",
+ " 0.299745 \n",
+ " 44.0 \n",
+ " 0.0 \n",
+ " 0.716562 \n",
+ " 5584.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 112913 \n",
+ " 0.000000 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.000000 \n",
+ " 5716.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 112914 \n",
+ " 0.850283 \n",
+ " 64.0 \n",
+ " 0.0 \n",
+ " 0.249908 \n",
+ " 8158.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
108648 rows × 10 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 10
+ }
+ ],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ibsxca-zlCrv"
+ },
+ "source": [
+ "---\n",
+ "## 练习1:把数据切分成训练集和测试集\n",
+ "- 提示:from sklearn.model_selection import train_test_split('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "l68XolUflCrv",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "f4cf6577-fd69-4af7-ecb0-4dfed6bc538d"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10))"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 21
+ }
+ ],
+ "source": [
+ "from sklearn.model_selection import train_test_split\n",
+ "\n",
+ "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0,test_size=0.3, shuffle=True,)\n",
+ "X_train.shape,X_test.shape\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sklearn.preprocessing import StandardScaler\n",
+ "from sklearn.metrics import classification_report\n",
+ "\n",
+ "scaler = StandardScaler()\n",
+ "scaler.fit(X_train)\n",
+ "X_train_std = scaler.transform(X_train)\n",
+ "X_test_std = scaler.transform(X_test)"
+ ],
+ "metadata": {
+ "id": "9v3D-D3Y07Ul"
+ },
+ "execution_count": 26,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Q87tJ0J2lCrw"
+ },
+ "source": [
+ "----\n",
+ "## 练习2:使用logistic regression/决策树/SVM/KNN...等sklearn分类算法进行分类\n",
+ "尝试查sklearn API了解模型参数含义,调整不同的参数"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Ca37sZB8lCrx"
+ },
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:from sklearn import linear_model('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "XTm5aVdilCrx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 75
+ },
+ "outputId": "36fe07bc-abc9-4231-bad6-d5689888800d"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "LogisticRegression()"
+ ],
+ "text/html": [
+ "LogisticRegression() In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 34
+ }
+ ],
+ "source": [
+ "from sklearn.linear_model import LogisticRegression\n",
+ "#模型评估\n",
+ "clf_LR = LogisticRegression()\n",
+ "clf_LR.fit(X_train_std,y_train)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "-dAewE6flCrx"
+ },
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:from sklearn.tree import DecisionTreeClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "IZTMFpZIlCrx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 75
+ },
+ "outputId": "252e385d-c39a-4ca1-ec30-3893dddcf18e"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "DecisionTreeClassifier()"
+ ],
+ "text/html": [
+ "DecisionTreeClassifier() In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 35
+ }
+ ],
+ "source": [
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "\n",
+ "tree = DecisionTreeClassifier()\n",
+ "tree.fit(X_train_std,y_train)\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "hKGUQCl3lCrx"
+ },
+ "source": [
+ "### Random Forest\n",
+ "- 提示:from sklearn.ensemble import RandomForestClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "LOEnf6iflCrx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 75
+ },
+ "outputId": "23ff6f70-b172-4ad8-a9c0-b0de4aa4cfa9"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RandomForestClassifier()"
+ ],
+ "text/html": [
+ "RandomForestClassifier() In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 36
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "forest = RandomForestClassifier()\n",
+ "forest.fit(X_train_std,y_train)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "oRasKTa7lCrx"
+ },
+ "source": [
+ "### SVM\n",
+ "- 提示:from sklearn.svm import SVC('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "jqs7danTlCrx",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 75
+ },
+ "outputId": "6fdade0e-3f83-4f24-913f-feca5471cc5a"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RandomForestClassifier()"
+ ],
+ "text/html": [
+ "RandomForestClassifier() In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 37
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "clf_svc = RandomForestClassifier()\n",
+ "clf_svc.fit(X_train_std,y_train)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "HA9CxHGOlCrx"
+ },
+ "source": [
+ "### KNN\n",
+ "- 提示:from sklearn.neighbors import KNeighborsClassifier('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "d7MZ88l2lCry",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 75
+ },
+ "outputId": "35fad5aa-06b4-4944-ee71-b8f07fa56bf7"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RandomForestClassifier()"
+ ],
+ "text/html": [
+ "RandomForestClassifier() In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. "
+ ]
+ },
+ "metadata": {},
+ "execution_count": 38
+ }
+ ],
+ "source": [
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "\n",
+ "neigh = RandomForestClassifier()\n",
+ "neigh.fit(X_train_std,y_train)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "rN1I4x_1lCry"
+ },
+ "source": [
+ "---\n",
+ "\n",
+ "## 练习3:在测试集上进行预测,计算准确度"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from sklearn.metrics import classification_report"
+ ],
+ "metadata": {
+ "id": "VIOTodNWAMf5"
+ },
+ "execution_count": 63,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "bRGwY3NJlCry"
+ },
+ "source": [
+ "### Logistic regression\n",
+ "- 提示:y_pred_LR = clf_LR.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "Au1nyS-AlCry",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "f23b7c51-9de0-440f-914e-b6be3ae45dbd"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 1.00 0.97 30424\n",
+ " 1 0.54 0.04 0.08 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.74 0.52 0.52 32595\n",
+ "weighted avg 0.91 0.93 0.91 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#模型评估\n",
+ "clf_LR_predictions = clf_LR.predict(X_test_std)\n",
+ "print(classification_report(y_test, clf_LR_predictions))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "UQIT323FlCry"
+ },
+ "source": [
+ "### Decision Tree\n",
+ "- 提示:y_pred_tree = tree.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "EPRAFTr-lCry",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "7755340b-f70b-430d-959e-f3e3f2f7d8c8"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.95 0.94 0.94 30424\n",
+ " 1 0.25 0.29 0.27 2171\n",
+ "\n",
+ " accuracy 0.89 32595\n",
+ " macro avg 0.60 0.62 0.61 32595\n",
+ "weighted avg 0.90 0.89 0.90 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#模型评估\n",
+ "tree_predictions = tree.predict(X_test_std)\n",
+ "\n",
+ "print(classification_report(y_test, tree_predictions))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "MNlenJcJlCry"
+ },
+ "source": [
+ "### Random Forest\n",
+ "- 提示:y_pred_forest = forest.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "jEKV2DnQlCry",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "9e5a144c-10bb-44fe-ba8d-f02d256b2420"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.97 30424\n",
+ " 1 0.54 0.16 0.25 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.74 0.57 0.61 32595\n",
+ "weighted avg 0.92 0.93 0.92 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#模型评估\n",
+ "forest_predictions = forest.predict(X_test_std)\n",
+ "\n",
+ "print(classification_report(y_test, forest_predictions))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "mbLLBUbylCry"
+ },
+ "source": [
+ "### SVM\n",
+ "- 提示:y_pred_SVC = clf_svc.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "_3my9tQZlCry",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "83eddee4-474f-4ff5-c214-2b9f8286067a"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.97 30424\n",
+ " 1 0.56 0.17 0.26 2171\n",
+ "\n",
+ " accuracy 0.94 32595\n",
+ " macro avg 0.75 0.58 0.61 32595\n",
+ "weighted avg 0.92 0.94 0.92 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#模型评估\n",
+ "clf_svc_predictions = clf_svc.predict(X_test_std)\n",
+ "\n",
+ "print(classification_report(y_test, clf_svc_predictions))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "s7FRhxBplCrz"
+ },
+ "source": [
+ "### KNN\n",
+ "- 提示:y_pred_KNN = neigh.predict(x_test)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "rJ-6hv40lCrz",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "f26c9c36-cfeb-4f1b-e4c1-b1f82c44a285"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.99 0.97 30424\n",
+ " 1 0.53 0.17 0.25 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.73 0.58 0.61 32595\n",
+ "weighted avg 0.92 0.93 0.92 32595\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "#模型评估\n",
+ "neigh_predictions = neigh.predict(X_test_std)\n",
+ "\n",
+ "print(classification_report(y_test, neigh_predictions))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "jvp_0-3wlCrz"
+ },
+ "source": [
+ "---\n",
+ "## 练习4:查看sklearn的官方说明,了解分类问题的评估标准,并对此例进行评估"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "9UhwdZ79lCrz"
+ },
+ "source": [
+ "**混淆矩阵(Confusion Matrix)相关学习链接**\n",
+ "\n",
+ "- Blog: \n",
+ "http://blog.csdn.net/vesper305/article/details/44927047 \n",
+ "- WiKi: \n",
+ "http://en.wikipedia.org/wiki/Confusion_matrix \n",
+ "- sklearn doc: \n",
+ "http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "w6QhQynrlCrz",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "outputId": "474fef12-eb12-4722-fb03-3361f3fc659e"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/seaborn/utils.py:80: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.draw()\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/events.py:89: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " func(*args, **kwargs)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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qqNSxcXF6tOnj3bv3q0uXbrIZrMpLS1NTz75pKQLS6RnZGRo9uzZio6OVkZGhjIyMtSgQQPZ7XadPn1a8fHxqlOnjtLT0x1xY8eO1dmzZ0vl2gEAFcu5c+fUp08fR84p2T777DMdP37ckZt+u/02N/32OLkJMAeFFEzVokULffHFFzp37pzuueceHTx48IrxHTt2VOfOnQ09KzVlyhRZrVa9+eabpdFlAAAAgEIK5mvXrp2WLVumY8eO6Z577tHx48evGF8yKuVqYdSpUyd17txZr732ms6fP18aXQYAAEAFRyEFt9C1a1d99NFH2r17t7p3766cnJzfjb2Wwqik+Proo49Kq8sAAACowCik4DYeeOABvf3229q8ebP+8pe/XLFIKpmul5WV5VLbnTp1UqdOnbRjx47S6i4AAAAqMAopuJXBgwfr9ddf15o1a/Twww+rqKjosnGdO3dWp06dDLU9derUUughAAAAQCEFkwwaNEh2u11t2rS55NhTTz0lu92uzz//XC+99JLsdrvq1q17SVxqaqrsdruWL1/utN9ut+vvf//7JfGdO3fWvn371Lt3b1WvXr30LgYAAAAVDoUUAAAAABjEC3lR4S1evNgxqpWbm6vg4GCdP39e8fHx+vXXX53iPvnkE0nS+PHjndq4eHGMi9v7rWuJAwAAgPuhkEKFdt9996mgoMDxuXPnzkpKStLUqVPVvXt3de7c2SkuMTFR58+f1/Dhw11qz9XzAgAAwLMwtQ8AyqF58+bp9ttvl7+/v/z9/RUREaGVK1c6jp8/f14xMTGqU6eOqlevrl69el2yCuaBAwcUHR2tatWqKTAwUM8888wlC8CkpqbqjjvukMViUdOmTZWYmHhJX+bMmaPGjRvL19dX4eHh2rBhQ5lcMwAA1xMjUiiXAgICtHz58stOnYuKilJ2dvZlF7qQJG9vbzVo0EBPP/30ZY8/++yzpdpXoCw0aNBAr776qm6++WbZ7XYtWLBAf/3rX/XDDz/otttu05gxY7RixQotWbJEAQEBGjlypB588EF99913kqTi4mJFR0crODhY69at09GjRzVgwABVqVJFr7zyiiRp3759io6O1vDhw/Xhhx8qJSVFjz32mOrXr6+oqChJ0qJFixQbG6uEhASFh4dr5syZioqK0q5duxQYGGjazwcwA7kJKF+87Ha73exOAADK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\n"
+ },
+ "metadata": {}
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "from sklearn.metrics import confusion_matrix, classification_report\n",
+ "import seaborn as sns\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "\n",
+ "clf_LR_cm = confusion_matrix(y_test, clf_LR_predictions)\n",
+ "tree_cm = confusion_matrix(y_test, tree_predictions)\n",
+ "forest_cm = confusion_matrix(y_test, forest_predictions)\n",
+ "clf_svc_cm = confusion_matrix(y_test, clf_svc_predictions)\n",
+ "neigh_cm = confusion_matrix(y_test, neigh_predictions)\n",
+ "cm_list = [clf_LR_cm,tree_cm,forest_cm,clf_svc_cm,neigh_cm]\n",
+ "model_title = ['Logistic regression', 'Decision Tree', 'Random Forest', 'SVM', 'KNN']\n",
+ "plt.figure(figsize=(10, 10))\n",
+ "n=1\n",
+ "for i in range(len(cm_list)):\n",
+ " plt.subplot(3,2,n)\n",
+ " sns.heatmap(cm_list[i], annot=True, fmt=\"d\")\n",
+ " plt.title(model_title[i] +\"混淆矩阵\")\n",
+ " plt.ylabel('实际值')\n",
+ " plt.xlabel('预测值')\n",
+ "\n",
+ " n+=1\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "5MMIBxlClCr8"
+ },
+ "source": [
+ "## 练习5:调整模型的标准\n",
+ "\n",
+ "银行通常会有更严格的要求,因为fraud带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度”,试试看把阈值设定为0.3,再看看这时的评估指标(主要是准确率和召回率)。\n",
+ "\n",
+ "- 提示:sklearn的很多分类模型,predict_prob可以拿到预估的概率,可以根据它和设定的阈值大小去判断最终结果(分类类别)('Gender') "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "id": "r8awlD5ilCr8",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1000
+ },
+ "outputId": "c8050295-e767-446b-9874-e195ea987242"
+ },
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but LogisticRegression was fitted without feature names\n",
+ " warnings.warn(\n",
+ "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+ " _warn_prf(average, modifier, msg_start, len(result))\n",
+ "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+ " _warn_prf(average, modifier, msg_start, len(result))\n",
+ "/usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1344: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
+ " _warn_prf(average, modifier, msg_start, len(result))\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.93 1.00 0.97 30424\n",
+ " 1 0.00 0.00 0.00 2171\n",
+ "\n",
+ " accuracy 0.93 32595\n",
+ " macro avg 0.47 0.50 0.48 32595\n",
+ "weighted avg 0.87 0.93 0.90 32595\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyIAAAJwCAYAAAB1fNUWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABI+UlEQVR4nO3deVxWdf7//yegXLiBIZuGW1kqromKlJkmIxrVmFbaYmpa2QdNYXIrcymL0im1waUdK23USjMdUcMtk9Qw3ErLsswMxBRJUkCu6/eHP67vuRIVDN+XwuM+t3ObrnPe55z3uZwxXjzP+/32cDgcDgEAAACAQZ7u7gAAAACAiodCBAAAAIBxFCIAAAAAjKMQAQAAAGAchQgAAAAA4yhEAAAAABhHIQIAAADAOAoRAAAAAMZRiAAAAAAwjkIEwGWtc+fO6ty5c5ldr0GDBhowYECZXa+iSUpKkoeHh3766Sd3dwUAcIWjEAFQIkU/gH711Vfu7soFbdq0SRMnTlR2dra7uwIAAM6BQgTAZW3VqlVatWpVqc7ZtGmTJk2aVGwhsnfvXr3xxhtl1LuKp1+/fjp58qTq169/ye4REhKi6tWrF7v5+Pjo7bffdms7AEDZqOTuDgDA+Xh7e5fp9Ww2W5lez8putys/P18+Pj6X7B5Wf/75p6pWrWrkXkW8vLzk5eV1Se9x+vRpZWdnq1Kls/8VNWbMGNntdre2AwCUDRIRAGXq66+/Vo8ePeTr66vq1aura9eu+vLLL89qt2PHDt1yyy2qUqWKQkNDNXnyZL3zzjtnjT8obozIf/7zHzVr1kxVq1bVVVddpbZt22r+/PmSpIkTJ2rkyJGSpIYNG8rDw8PlmsWNEcnOzlZcXJwaNGggm82m0NBQPfTQQzpy5Mh5n9XDw0NDhw7VvHnz1KxZM9lsNiUnJ0uSfv31Vz388MMKDg6WzWZTs2bNiv2N+s8//6w777xT1apVU1BQkOLi4rRy5Up5eHho3bp1Lt9D8+bNlZaWpk6dOqlq1ap66qmnJEl5eXmaMGGCGjVqJJvNprp162rUqFHKy8tzudfq1avVsWNH1axZU9WrV1fjxo2d1yjJdyude4zIrFmznN9BnTp1FBsbe1YiVfQM33zzjbp06aKqVavq6quv1pQpU877PQMAyicSEQBlZvfu3br55pvl6+urUaNGqXLlynrttdfUuXNnrV+/XhEREZLO/JDepUsXeXh4aOzYsapWrZrefPPNEqUVb7zxhp544gndfffdGj58uE6dOqUdO3Zo8+bNuv/++9WrVy999913+uCDDzRt2jQFBARIkgIDA4u93okTJ3TzzTfr22+/1cMPP6w2bdroyJEjWrp0qQ4ePOg8/1zWrFmjhQsXaujQoQoICFCDBg2UmZmpDh06OAuVwMBArVixQoMGDVJOTo5GjBghScrNzdWtt96q3377TcOHD1dISIjmz5+vtWvXFnuv33//XT169FDfvn314IMPKjg4WHa7XXfeeac2btyoRx99VE2bNtXOnTs1bdo0fffdd1qyZInzz+b2229Xy5Yt9eyzz8pms2nfvn364osvSvzdnsvEiRM1adIkRUVF6fHHH9fevXs1e/Zsbd26VV988YUqV67sbHvs2DF1795dvXr10r333qsPP/xQo0ePVosWLdSjR4/zftcAgPKFQgRAmRk3bpwKCgq0ceNGXXPNNZKkhx56SI0bN9aoUaO0fv16SdJLL72kY8eOadu2bWrdurUkaeDAgbruuusueI/ly5erWbNmWrRoUbHHW7ZsqTZt2uiDDz5Qz5491aBBg/Neb+rUqdq1a5c+/vhj3XXXXS7P4nA4LtifvXv3aufOnQoLC3PuGzx4sAoLC7Vz507VqlVLkjRkyBDdd999mjhxoh577DFVqVJFr732mn788UctWbJE//znPyVJjz32mG644YZi75WRkaE5c+bosccec+57//339dlnn2n9+vXq2LGjc3/z5s01ZMgQbdq0STfeeKNWr16t/Px8rVix4pzF1YW+2+JkZWUpISFB3bp104oVK+TpeSZob9KkiYYOHar3339fAwcOdLY/dOiQ3n33XfXr10+SNGjQINWvX19vvfUWhQgAVDC8mgWgTBQWFmrVqlXq2bOnswiRpNq1a+v+++/Xxo0blZOTI0lKTk5WZGSkswiRJH9/fz3wwAMXvE/NmjV18OBBbd26tUz6/dFHH6lVq1YuRUgRDw+PC55/yy23uBQhDodDH330ke644w45HA4dOXLEuUVHR+v48ePatm2bpDPfw9VXX60777zTeb6Pj48eeeSRYu9ls9lcfqiXpEWLFqlp06Zq0qSJy71uvfVWSXKmKzVr1pQkffLJJ+cc63Ax3+1nn32m/Px8jRgxwlmESNIjjzwiX19fLV++3KV99erV9eCDDzo/e3t7q3379vrxxx9LfE8AQPlAIQKgTGRlZenPP/9U48aNzzrWtGlT2e12/fLLL5LOjIto1KjRWe2K2/dXo0ePVvXq1dW+fXtdd911io2NdXm9qLR++OEHNW/e/KLPb9iwocvnrKwsZWdn6/XXX1dgYKDLVlREHD58WNKZ7+Haa689q+A51/dw9dVXnzV4//vvv9fu3bvPutf111/vcq8+ffropptu0uDBgxUcHKy+fftq4cKFLkXJxXy3P//8sySd9efu7e2ta665xnm8SGho6FnPe9VVV+nYsWPnvQ8AoPzh1SwAV5SmTZtq7969WrZsmZKTk/XRRx9p1qxZGj9+vCZNmmS8P1WqVHH5XPSD/YMPPqj+/fsXe07Lli3L5F5F92vRooVeeeWVYs+pW7eu89wNGzZo7dq1Wr58uZKTk7VgwQLdeuutWrVqlby8vIx8t+eacaskr8EBAMoXChEAZSIwMFBVq1bV3r17zzq2Z88eeXp6On8orl+/vvbt23dWu+L2FadatWrq06eP+vTpo/z8fPXq1UvPP/+8xo4dKx8fnxK9UlXk2muv1a5du0rc/kICAwNVo0YNFRYWKioq6rxt69evr2+++UYOh8OlzyX9HqQz/d++fbu6du16wef29PRU165d1bVrV73yyit64YUX9PTTT2vt2rXOvl7ouy3uGaQzY2Wsr+Tl5+dr//79F/wOAAAVF69mASgTXl5e6tatmz755BOXqV0zMzM1f/58dezYUb6+vpKk6OhopaamKj093dnu6NGjmjdv3gXv8/vvv7t89vb2VlhYmBwOhwoKCiSd+WFaUolWVu/du7e2b9+uxYsXn3XsYn5L7+Xlpd69e+ujjz4qtsDJyspy/nN0dLR+/fVXLV261Lnv1KlTpVpw8d5779Wvv/5a7DknT55Ubm6upDPf718VjdEpmua3JN/tX0VFRcnb21uvvvqqy/f11ltv6fjx44qJiSnxswAAKhYSEQCl8vbbbzvXyrAaPny4Jk+e7Fyr4v/+7/9UqVIlvfbaa8rLy3NZK2LUqFF6//339Y9//EPDhg1zTt9br149HT169Ly/2e/WrZtCQkJ00003KTg4WN9++60SExMVExOjGjVqSJLCw8MlSU8//bT69u2rypUr64477nAWKFYjR47Uhx9+qHvuuUcPP/ywwsPDdfToUS1dulRz5sxRq1atSv0dvfjii1q7dq0iIiL0yCOPKCwsTEePHtW2bdv02WefOYuCxx57TImJibrvvvs0fPhw1a5dW/PmzXMmDyVJdvr166eFCxdqyJAhWrt2rW666SYVFhZqz549WrhwoVauXKm2bdvq2Wef1YYNGxQTE6P69evr8OHDmjVrlkJDQ52zbZXku/2rwMBAjR07VpMmTVL37t115513au/evZo1a5batWvnMjAdAAArChEApTJ79uxi9w8YMEDNmjXT559/rrFjxyohIUF2u10RERF6//33nWuISGfGLaxdu1ZPPPGEXnjhBQUGBio2NlbVqlXTE088cd6VyR977DHNmzdPr7zyik6cOKHQ0FA98cQTGjdunLNNu3bt9Nxzz2nOnDlKTk6W3W7X/v37iy1Eqlevrs8//1wTJkzQ4sWLNXfuXAUFBalr164KDQ29qO8oODhYW7Zs0bPPPquPP/5Ys2bNUq1atdSsWTO99NJLLvdes2aNhg0bphkzZqh69ep66KGHdOONN6p3794lWqHd09NTS5Ys0bRp0/Tuu+9q8eLFqlq1qq655hoNHz7cOWj9zjvv1E8//aS3335bR44cUUBAgG655RZNmjRJfn5+Jf5uizNx4kQFBgYqMTFRcXFx8vf316OPPqoXXnjBZQ0RAACsPByMEARwmRgxYoRee+01nThx4pyDmiuC6dOnKy4uTgcPHtTVV1/t7u4YFxAQoIyMDFWqdPbvysaMGaNGjRpp8ODBbmsHACgbjBEB4BYnT550+fz777/rvffeU8eOHStUEfLX7+HUqVN67bXXdN1111XIIgQAUHHwahYAt4iMjFTnzp3VtGlTZWZm6q233lJOTo6eeeYZd3fNqF69eqlevXpq3bq1jh8/rvfff1979uwp0cD98uxcq7+fOnVKiYmJbm8HAPj7eDULgFs89dRT+vDDD3Xw4EF5eHioTZs2mjBhQoWb7nX69Ol688039dNPP6mwsFBhYWEaNWqU+vTp4+6uAQBwSVGIAAAAADCOMSIAAAAAjKMQAQAAAGAchQgAAAAA48rlrFkFR350dxcAoExVqXOzu7sAAGXqdP6v7u7COZn8WbJywDXG7nW5IREBAAAAYFy5TEQAAACAi2YvdHcPKgQSEQAAAOAKMHv2bLVs2VK+vr7y9fVVZGSkVqxY4Tx+6tQpxcbGqlatWqpevbp69+6tzMxMl2scOHBAMTExqlq1qoKCgjRy5EidPn3apc26devUpk0b2Ww2NWrUSElJSWf1ZebMmWrQoIF8fHwUERGhLVu2lPp5KEQAAAAAK4fd3FYKoaGhevHFF5WWlqavvvpKt956q/75z39q9+7dkqS4uDh9+umnWrRokdavX69Dhw6pV69ezvMLCwsVExOj/Px8bdq0SXPnzlVSUpLGjx/vbLN//37FxMSoS5cuSk9P14gRIzR48GCtXLnS2WbBggWKj4/XhAkTtG3bNrVq1UrR0dE6fPhwqZ6nXC5oyGB1AOUNg9UBlDeX9WD1zL3G7lU5uPHfOt/f319Tp07V3XffrcDAQM2fP1933323JGnPnj1q2rSpUlNT1aFDB61YsUK33367Dh06pODgYEnSnDlzNHr0aGVlZcnb21ujR4/W8uXLtWvXLuc9+vbtq+zsbCUnJ0uSIiIi1K5dOyUmJkqS7Ha76tatq2HDhmnMmDEl7juJCAAAAGBltxvb8vLylJOT47Ll5eVdsIuFhYX673//q9zcXEVGRiotLU0FBQWKiopytmnSpInq1aun1NRUSVJqaqpatGjhLEIkKTo6Wjk5Oc5UJTU11eUaRW2KrpGfn6+0tDSXNp6enoqKinK2KSkKEQAAAMBNEhIS5Ofn57IlJCScs/3OnTtVvXp12Ww2DRkyRIsXL1ZYWJgyMjLk7e2tmjVrurQPDg5WRkaGJCkjI8OlCCk6XnTsfG1ycnJ08uRJHTlyRIWFhcW2KbpGSTFrFgAAAGDhKOXYjb9j7Nixio+Pd9lns9nO2b5x48ZKT0/X8ePH9eGHH6p///5av379pe7mJUEhAgAAALiJzWY7b+HxV97e3mrUqJEkKTw8XFu3btWMGTPUp08f5efnKzs72yUVyczMVEhIiCQpJCTkrNmtimbVsrb560xbmZmZ8vX1VZUqVeTl5SUvL69i2xRdo6R4NQsAAACwMjhG5O939cw4k/DwcFWuXFkpKSnOY3v37tWBAwcUGRkpSYqMjNTOnTtdZrdavXq1fH19FRYW5mxjvUZRm6JreHt7Kzw83KWN3W5XSkqKs01JkYgAAAAAV4CxY8eqR48eqlevnv744w/Nnz9f69at08qVK+Xn56dBgwYpPj5e/v7+8vX11bBhwxQZGakOHTpIkrp166awsDD169dPU6ZMUUZGhsaNG6fY2FhnKjNkyBAlJiZq1KhRevjhh7VmzRotXLhQy5cvd/YjPj5e/fv3V9u2bdW+fXtNnz5dubm5GjhwYKmeh0IEAAAAsDI4RqQ0Dh8+rIceeki//fab/Pz81LJlS61cuVL/+Mc/JEnTpk2Tp6enevfurby8PEVHR2vWrFnO8728vLRs2TI9/vjjioyMVLVq1dS/f389++yzzjYNGzbU8uXLFRcXpxkzZig0NFRvvvmmoqOjnW369OmjrKwsjR8/XhkZGWrdurWSk5PPGsB+IawjAgBXANYRAVDeXM7riOT/st3YvbzrtjJ2r8sNiQgAAABgZS90dw8qBAarAwAAADCOQgQAAACAcbyaBQAAAFhdpoPVyxsSEQAAAADGkYgAAAAAVmWw0CAujEQEAAAAgHEkIgAAAICFgzEiRpCIAAAAADCORAQAAACwYoyIESQiAAAAAIwjEQEAAACsGCNiBIkIAAAAAONIRAAAAAAre6G7e1AhkIgAAAAAMI5EBAAAALBijIgRJCIAAAAAjCMRAQAAAKxYR8QIEhEAAAAAxpGIAAAAAFaMETGCRAQAAACAcRQiAAAAAIzj1SwAAADAisHqRpCIAAAAADCORAQAAACwcDgK3d2FCoFEBAAAAIBxJCIAAACAFdP3GkEiAgAAAMA4EhEAAADAilmzjCARAQAAAGAciQgAAABgxRgRI0hEAAAAABhHIgIAAABY2VlHxAQSEQAAAADGkYgAAAAAVowRMYJEBAAAAIBxJCIAAACAFeuIGEEiAgAAAMA4EhEAAADAijEiRpCIAAAAADCORAQAAACwYoyIESQiAAAAAIyjEAEAAABgHK9mAQAAAFa8mmUEiQgAAAAA40hEAAAAAAuHo9DdXagQSEQAAAAAGEciAgAAAFgxRsQIEhEAAAAAxpGIAAAAAFYOEhETSEQAAAAAGEciAgAAAFgxRsQIEhEAAAAAxpGIAAAAAFaMETGCRAQAAACAcSQiAAAAgBVjRIwgEQEAAABgHIkIAAAAYMUYESNIRAAAAAAYRyICAAAAWDFGxAgSEQAAAADGUYgAAAAAMI5XswAAAAArXs0ygkQEAAAAgHEkIgAAAIAV0/caQSICAAAAwDgSEQAAAMCKMSJGkIgAAAAAMI5EBAAAALBijIgRJCIAAAAAjCMRAQAAAKwYI2IEiQgAAAAA40hEAAAAACvGiBhBIgIAAADAOBIRAAAAwIoxIkaQiAAAAAAwjkQEAAAAsCIRMYJEBAAAAIBxFCIAAACAlcNhbiuFhIQEtWvXTjVq1FBQUJB69uypvXv3urTp3LmzPDw8XLYhQ4a4tDlw4IBiYmJUtWpVBQUFaeTIkTp9+rRLm3Xr1qlNmzay2Wxq1KiRkpKSzurPzJkz1aBBA/n4+CgiIkJbtmwp1fNQiAAAAABXgPXr1ys2NlZffvmlVq9erYKCAnXr1k25ubku7R555BH99ttvzm3KlCnOY4WFhYqJiVF+fr42bdqkuXPnKikpSePHj3e22b9/v2JiYtSlSxelp6drxIgRGjx4sFauXOlss2DBAsXHx2vChAnatm2bWrVqpejoaB0+fLjEz+PhcJSyFLsCFBz50d1dAIAyVaXOze7uAgCUqdP5v7q7C+d08oMJxu5V5b5JF31uVlaWgoKCtH79enXq1EnSmUSkdevWmj59erHnrFixQrfffrsOHTqk4OBgSdKcOXM0evRoZWVlydvbW6NHj9by5cu1a9cu53l9+/ZVdna2kpOTJUkRERFq166dEhMTJUl2u11169bVsGHDNGbMmBL1n0QEAAAAcJO8vDzl5OS4bHl5eSU69/jx45Ikf39/l/3z5s1TQECAmjdvrrFjx+rPP/90HktNTVWLFi2cRYgkRUdHKycnR7t373a2iYqKcrlmdHS0UlNTJUn5+flKS0tzaePp6amoqChnm5KgEAEAAADcJCEhQX5+fi5bQkLCBc+z2+0aMWKEbrrpJjVv3ty5//7779f777+vtWvXauzYsXrvvff04IMPOo9nZGS4FCGSnJ8zMjLO2yYnJ0cnT57UkSNHVFhYWGybomuUBNP3AgAAAFYGp+8dO3ac4uPjXfbZbLYLnhcbG6tdu3Zp48aNLvsfffRR5z+3aNFCtWvXVteuXfXDDz/o2muvLZtOlxEKEQAAAMBNbDZbiQoPq6FDh2rZsmXasGGDQkNDz9s2IiJCkrRv3z5de+21CgkJOWt2q8zMTElSSEiI87+L9lnb+Pr6qkqVKvLy8pKXl1exbYquURK8mgUAAABYOezmttJ0y+HQ0KFDtXjxYq1Zs0YNGza84Dnp6emSpNq1a0uSIiMjtXPnTpfZrVavXi1fX1+FhYU526SkpLhcZ/Xq1YqMjJQkeXt7Kzw83KWN3W5XSkqKs01JkIgAAAAAV4DY2FjNnz9fn3zyiWrUqOEcj+Hn56cqVarohx9+0Pz583XbbbepVq1a2rFjh+Li4tSpUye1bNlSktStWzeFhYWpX79+mjJlijIyMjRu3DjFxsY6k5khQ4YoMTFRo0aN0sMPP6w1a9Zo4cKFWr58ubMv8fHx6t+/v9q2bav27dtr+vTpys3N1cCBA0v8PEzfCwBXAKbvBVDeXNbT97471ti9qjx04YHpRTw8PIrd/84772jAgAH65Zdf9OCDD2rXrl3Kzc1V3bp1ddddd2ncuHHy9fV1tv/555/1+OOPa926dapWrZr69++vF198UZUq/b+MYt26dYqLi9M333yj0NBQPfPMMxowYIDLfRMTEzV16lRlZGSodevWevXVV52vgpXoeShEAODyRyECoLyhEDmjNIVIecOrWQAAAIBV+fs9/WWJweoAAAAAjCMRAQAAAKwMriNSkZGIAAAAADCORAQAAACwIhExgkQEAAAAgHEkIgAAAIBVKVc8x8UhEQEAAABgHIkIAAAAYOGws46ICSQiAAAAAIwjEQEAAACsmDXLCBIRAAAAAMZRiAAAAAAwjlezAAAAACum7zWCRAQAAACAcSQiAAAAgBXT9xpBIgIAAADAOBIRAAAAwIrpe40gEQEAAABgHIkIAAAAYEUiYgSJCAAAAADjSEQAAAAAKwezZplAIgIAAADAOBIRAAAAwIoxIkaQiAAAAAAwjkQEAAAAsGJldSNIRFBh/HfxMt310OOK+EcvRfyjlx54NE6fp251Hs/Ly9fkl2fqph73ql3UXRrx1GQdOXqs2GtlH89R154PqvlNPZTzxwnn/tXrvtDg4U/p5pg+znt8sTntnH16872Fan5TD704fU7ZPSgAXKTHh/TXvu++1ImcH7Rp46dq17a1u7sEoByjEEGFERIYoLghA7Xw7f9owVuvqn14Kw0b86z2/fizJOmlV1/Tui8265XJTykpcYqyjvyuEU9NLvZa4xOm6/prG561Py19p25sf4Nm/ftZLXz7P2rXppViR03Ut9/tO6vtzm/3atEn/9P1jc6+DgCYds89d+rfUyfoucmvqF1Ed23f8Y3+t3yeAgNrubtrgHkOu7mtAqMQQYXRuWMHdbqxverXvVoN6oVq+GMDVLWKj7bv3qM/TuTq42WrNGrYI4oIb61mTa7Tc0/HK33nN9q+61uX6/x38TLlnDihAff3PuseY0YM0cMP3KMWTRurft2rNWLIANUPraN1Gze7tPvzz5MaM2mqJo4eLt8a1S/pcwNAScQNf0RvvjVfc99dqG+//V7/FztGf/55UgMH9HV31wCUU24tRI4cOaIpU6borrvuUmRkpCIjI3XXXXdp6tSpysrKcmfXUM4VFhbqf5+t08lTp9S6eRN9s/d7nT59Wh3a3uBsc039uqodHKTtu/Y49/2w/2fNeWe+EsY9KQ+PC//fx263K/fkSfn51nDZP/nlmeoU2U6R7W44x5kAYE7lypXVpk1Lpaz53LnP4XAoZc1GdegQ7saeAW5id5jbKjC3DVbfunWroqOjVbVqVUVFRen666+XJGVmZurVV1/Viy++qJUrV6pt27bnvU5eXp7y8vJc9nnm5clms12yvuPK9d0P+/XAY/HKz89X1SpVNOOFZ3Rtw/ra8/2Pqly50lnpRC3/mjpy9KgkKT8/XyMnvqR/xQ5W7ZAg/XIo44L3S/rgI/3550lFd+3k3Pe/z9bp2+9+0H/fnFG2DwcAFykgwF+VKlXS4cwjLvsPH85Sk8bXuqlXAMo7txUiw4YN0z333KM5c+bIw8PD5ZjD4dCQIUM0bNgwpaamnvc6CQkJmjRpksu+cSOf0PhRw8u8z7jyNawXqo+SZuqPE7latXajnn7+ZSUlTinRudPnJOma+nV1R/StJWq/fNVazX57nl59cYJqXVVTkvRbZpZenP6a3pj+gmw274t9DAAAcAk5WEfECLcVItu3b1dSUtJZRYgkeXh4KC4uTjfccOHXVsaOHav4+HiXfZ5//Fpm/UT5UrlyZdULrSNJatbkOu3e853eX/SJunftpIKC08r544RLKvL70WwF+PtLkjanbdf3P/6kVp1iJEmO/z9NvTmmjx55qK+GDu7nPO9/n63ThBdn6OXJT7m8fvXN3u919Fi27n14qHNfYaFdaem79MHHn2rb2qXy8vK6ZM8PAMU5cuSoTp8+raDgAJf9QUGBysjkVWkAl4bbCpGQkBBt2bJFTZo0Kfb4li1bFBwcfMHr2Gy2s17DKsg/co7WgCu73aH8/AKFNb5OlSpV0uav0vWPLh0lSft/PqjfMg+rVfMz/xud9vzTysvPd56769vv9MwL0zR31r9V9+razv3/W71Oz7wwTVOfHaNbbmzvcr8O4a21+L3ZLvvGPf+KGtavq0EP3kMRAsAtCgoKtG3bDt3apaOWLl0p6cwvBW/t0lGzZr/j5t4BKK/cVog8+eSTevTRR5WWlqauXbs6i47MzEylpKTojTfe0L///W93dQ/l0LTZ7+jmyLaqHRyk3D//1PJV67T16x167ZXJqlG9mnrd3k1T/vOG/HxrqFq1qnph2my1at5UrZo3lSRnklLkWHaOpDOD2otSlOWr1urpyS9rzIghahnWWEd+PzO+xGazqUb1aqpWraquu6aBy3WqVPFRTd8aZ+0HAJOmzXhD77w1TWnbdmjr1q/1xLBHVK1aFSXNXeDurgHmVfBB5Ka4rRCJjY1VQECApk2bplmzZqmwsFCS5OXlpfDwcCUlJenee+91V/dQDh3NztZTz/1bWb8fVY1q1XR9o4Z67ZXJurF9G0nS6Ccek6enp0Y8PVkFBQW6sX24nnkytlT3WLR0hU4XFmryyzM1+eWZzv3/7BGl58f9q0yfBwDK0qJFSxUY4K+J459USEigtm/frZjbH9Thw7xlAODS8HA4HG4v+QoKCnTkyJm/6AICAlS5cuW/d70jP5ZFtwDgslGlzs3u7gIAlKnT+ZfvmN7cyQ8au1e1ce8bu9flxm2JiFXlypVVu3btCzcEAAAAUC5cFoUIAAAAcNlgjIgRbl1ZHQAAAEDFRCICAAAAWLGgoREkIgAAAACMIxEBAAAArBgjYgSJCAAAAADjSEQAAAAAKwdjREwgEQEAAABgHIkIAAAAYMUYESNIRAAAAAAYRyICAAAAWDhYR8QIEhEAAAAAxpGIAAAAAFaMETGCRAQAAACAcRQiAAAAAIzj1SwAAADAilezjCARAQAAAGAciQgAAABg5WD6XhNIRAAAAAAYRyICAAAAWDFGxAgSEQAAAADGkYgAAAAAFg4SESNIRAAAAAAYRyICAAAAWJGIGEEiAgAAAMA4EhEAAADAys46IiaQiAAAAAAwjkQEAAAAsGKMiBEkIgAAAACMIxEBAAAArEhEjCARAQAAAGAciQgAAABg4XCQiJhAIgIAAADAOBIRAAAAwIoxIkaQiAAAAAAwjkIEAAAAgHG8mgUAAABY8WqWESQiAAAAAIwjEQEAAAAsHCQiRpCIAAAAADCOQgQAAACwsjvMbaWQkJCgdu3aqUaNGgoKClLPnj21d+9elzanTp1SbGysatWqperVq6t3797KzMx0aXPgwAHFxMSoatWqCgoK0siRI3X69GmXNuvWrVObNm1ks9nUqFEjJSUlndWfmTNnqkGDBvLx8VFERIS2bNlSquehEAEAAACuAOvXr1dsbKy+/PJLrV69WgUFBerWrZtyc3OdbeLi4vTpp59q0aJFWr9+vQ4dOqRevXo5jxcWFiomJkb5+fnatGmT5s6dq6SkJI0fP97ZZv/+/YqJiVGXLl2Unp6uESNGaPDgwVq5cqWzzYIFCxQfH68JEyZo27ZtatWqlaKjo3X48OESP4+HoxyuYV9w5Ed3dwEAylSVOje7uwsAUKZO5//q7i6c0/F+XY3dy+fN/ykvL89ln81mk81mu+C5WVlZCgoK0vr169WpUycdP35cgYGBmj9/vu6++25J0p49e9S0aVOlpqaqQ4cOWrFihW6//XYdOnRIwcHBkqQ5c+Zo9OjRysrKkre3t0aPHq3ly5dr165dznv17dtX2dnZSk5OliRFRESoXbt2SkxMlCTZ7XbVrVtXw4YN05gxY0r07CQiAAAAgJskJCTIz8/PZUtISCjRucePH5ck+fv7S5LS0tJUUFCgqKgoZ5smTZqoXr16Sk1NlSSlpqaqRYsWziJEkqKjo5WTk6Pdu3c721ivUdSm6Br5+flKS0tzaePp6amoqChnm5Jg1iwAAADAwuSsWWPHjlV8fLzLvpKkIXa7XSNGjNBNN92k5s2bS5IyMjLk7e2tmjVrurQNDg5WRkaGs421CCk6XnTsfG1ycnJ08uRJHTt2TIWFhcW22bNnzwX7XoRCBAAAAHCTkr6G9VexsbHatWuXNm7ceAl6ZQavZgEAAABWl+msWUWGDh2qZcuWae3atQoNDXXuDwkJUX5+vrKzs13aZ2ZmKiQkxNnmr7NoFX2+UBtfX19VqVJFAQEB8vLyKrZN0TVKgkIEAAAAuAI4HA4NHTpUixcv1po1a9SwYUOX4+Hh4apcubJSUlKc+/bu3asDBw4oMjJSkhQZGamdO3e6zG61evVq+fr6KiwszNnGeo2iNkXX8Pb2Vnh4uEsbu92ulJQUZ5uS4NUsAAAAwMru7g4ULzY2VvPnz9cnn3yiGjVqOMd0+Pn5qUqVKvLz89OgQYMUHx8vf39/+fr6atiwYYqMjFSHDh0kSd26dVNYWJj69eunKVOmKCMjQ+PGjVNsbKzzFbEhQ4YoMTFRo0aN0sMPP6w1a9Zo4cKFWr58ubMv8fHx6t+/v9q2bav27dtr+vTpys3N1cCBA0v8PBQiAAAAwBVg9uzZkqTOnTu77H/nnXc0YMAASdK0adPk6emp3r17Ky8vT9HR0Zo1a5azrZeXl5YtW6bHH39ckZGRqlatmvr3769nn33W2aZhw4Zavny54uLiNGPGDIWGhurNN99UdHS0s02fPn2UlZWl8ePHKyMjQ61bt1ZycvJZA9jPh3VEAOAKwDoiAMqby3kdkWP3dDZ2r6sWrTN2r8sNY0QAAAAAGMerWQAAAIDVZTpGpLwhEQEAAABgHIUIAAAAAON4NQsAAACwcFzkQoMoHRIRAAAAAMaRiAAAAABWDFY3gkQEAAAAgHEkIgAAAICFg0TECBIRAAAAAMaRiAAAAABWJCJGkIgAAAAAMI5EBAAAALBgjIgZJCIAAAAAjCMRAQAAAKxIRIwgEQEAAABgHIkIAAAAYMEYETNIRAAAAAAYRyICAAAAWJCImEEiAgAAAMA4EhEAAADAgkTEDBIRAAAAAMaRiAAAAABWDg9396BCIBEBAAAAYByFCAAAAADjeDULAAAAsGCwuhkkIgAAAACMIxEBAAAALBx2BqubQCICAAAAwDgSEQAAAMCCMSJmkIgAAAAAMI5EBAAAALBwsKChESQiAAAAAIwjEQEAAAAsGCNiBokIAAAAAONIRAAAAAAL1hExg0QEAAAAgHEkIgAAAICFw+HuHlQMJCIAAAAAjCMRAQAAACwYI2IGiQgAAAAA40hEAAAAAAsSETNIRAAAAAAYRyECAAAAwDhezQIAAAAsmL7XDBIRAAAAAMaRiAAAAAAWDFY3g0QEAAAAgHEkIgAAAICFw0EiYgKJCAAAAADjSEQAAAAAC4fd3T2oGEhEAAAAABhHIgIAAABY2BkjYgSJCAAAAADjSEQAAAAAC2bNMoNEBAAAAIBxJCIAAACABSurm0EiAgAAAMA4EhEAAADAwuFwdw8qBhIRAAAAAMaRiAAAAAAWjBExg0QEAAAAgHEkIgAAAIAFK6ubQSICAAAAwDgKEQAAAADG8WoWAAAAYOHg1SwjSEQAAAAAGFeqROSDDz7QH3/8UeL2QUFB6tmzZ2n7BAAAALgNCxqaUapE5Pnnn5ePj49sNluJthdeeOFS9RsAAADAFaxUiUjlypX10EMPlbh9YmJiqTsEAAAAuBPT95pRqkTEw6N0fyilbQ8AAACgYmDWLAAAAMCCWbPMYNYsAAAAAMaVKhEpKCjQhg0bStTW4XDIwZQDAAAAuMLwI6wZpSpE+vXrpxUrVpS4/YABA0rbHwAAAAAVQKkKkbi4uFKlHJ6evPkFAACAKwuzZplRqkKkWbNmCg0NLVFbh8OhP//8U5s3b76ojgEAAAAov0pViFSrVk1r1qwpcft27dqVukNloeH1d7rlvgAAALjyXa6zZm3YsEFTp05VWlqafvvtNy1evFg9e/Z0Hh8wYIDmzp3rck50dLSSk5Odn48ePaphw4bp008/laenp3r37q0ZM2aoevXqzjY7duxQbGystm7dqsDAQA0bNkyjRo1yue6iRYv0zDPP6KefftJ1112nl156Sbfddlupnod1RAAAAIArQG5urlq1aqWZM2ees0337t3122+/ObcPPvjA5fgDDzyg3bt3a/Xq1Vq2bJk2bNigRx991Hk8JydH3bp1U/369ZWWlqapU6dq4sSJev31151tNm3apPvuu0+DBg3S119/rZ49e6pnz57atWtXqZ6HdUQAAAAAi8t1jEiPHj3Uo0eP87ax2WwKCQkp9ti3336r5ORkbd26VW3btpUk/ec//9Ftt92mf//736pTp47mzZun/Px8vf322/L29lazZs2Unp6uV155xVmwzJgxQ927d9fIkSMlSc8995xWr16txMREzZkzp8TPw2hyAAAAwE3y8vKUk5PjsuXl5V309datW6egoCA1btxYjz/+uH7//XfnsdTUVNWsWdNZhEhSVFSUPD09neO6U1NT1alTJ3l7ezvbREdHa+/evTp27JizTVRUlMt9o6OjlZqaWqq+UogAAAAAFg6DW0JCgvz8/Fy2hISEi+p39+7d9e677yolJUUvvfSS1q9frx49eqiwsFCSlJGRoaCgIJdzKlWqJH9/f2VkZDjbBAcHu7Qp+nyhNkXHS6pUr2Z5e3vrxhtvLHH7gICAUnUGAAAAqEjGjh2r+Ph4l302m+2irtW3b1/nP7do0UItW7bUtddeq3Xr1qlr165/q5+XQqkKkfbt2ysrK6vE7Rs1alTqDgEAAAAVhc1mu+jC40KuueYaBQQEaN++feratatCQkJ0+PBhlzanT5/W0aNHneNKQkJClJmZ6dKm6POF2pxrbMq5lKoQ2bBhg5YuXVriRQ3vuecePffcc6XqEAAAAOBOl+tg9dI6ePCgfv/9d9WuXVuSFBkZqezsbKWlpSk8PFyStGbNGtntdkVERDjbPP300yooKFDlypUlSatXr1bjxo111VVXOdukpKRoxIgRznutXr1akZGRpepfqQoRDw8P1atXr8TtS7MKOwAAAIBzO3HihPbt2+f8vH//fqWnp8vf31/+/v6aNGmSevfurZCQEP3www8aNWqUGjVqpOjoaElS06ZN1b17dz3yyCOaM2eOCgoKNHToUPXt21d16tSRJN1///2aNGmSBg0apNGjR2vXrl2aMWOGpk2b5rzv8OHDdcstt+jll19WTEyM/vvf/+qrr75ymeK3JFhHBAAAALBwODyMbaXx1Vdf6YYbbtANN9wgSYqPj9cNN9yg8ePHy8vLSzt27NCdd96p66+/XoMGDVJ4eLg+//xzl1e/5s2bpyZNmqhr16667bbb1LFjR5cCws/PT6tWrdL+/fsVHh6uf/3rXxo/frzLWiM33nij5s+fr9dff12tWrXShx9+qCVLlqh58+aleh4PRyliizZt2mjbtm0lvnj79u21ZcuWUnWoLIT6l+5LAIDLXcaJY+7uAgCUqdP5v7q7C+f0Rcjdxu51U8aHxu51uWFBQwAAAMDC7u4OVBClKkROnjypZ599tkRtGR8CAAAA4FxKVYi89tprOnnyZInbFw2MAQAAAK4UDjHO2YRSFSKdOnW6VP0AAAAAUIEwRgQAAACwsDPCwIhSTd8LAAAAAGWBRAQAAACwsDNGxAgSEQAAAADGkYgAAAAAFsyaZQaJCAAAAADjSEQAAAAAC1ZWN4NEBAAAAIBxJCIAAACABWNEzCARAQAAAGAciQgAAABgwRgRM0hEAAAAABhHIQIAAADAOF7NAgAAACx4NcsMEhEAAAAAxpGIAAAAABZM32sGiQgAAAAA40hEAAAAAAs7gYgRJCIAAAAAjCMRAQAAACzsjBExgkQEAAAAgHEkIgAAAICFw90dqCBIRAAAAAAYRyICAAAAWLCyuhkkIgAAAACMIxEBAAAALOwezJplAokIAAAAAONIRAAAAAALZs0yg0QEAAAAgHEkIgAAAIAFs2aZQSICAAAAwDgKEQAAAADG8WoWAAAAYGFn9l4jSEQAAAAAGEciAgAAAFjYRSRiAokIAAAAAONIRAAAAAALFjQ0g0QEAAAAgHEkIgAAAIAFs2aZQSICAAAAwDgSEQAAAMDC7u4OVBAkIgAAAACMIxEBAAAALJg1ywwSEQAAAADGkYgAAAAAFsyaZQaJCAAAAADjSEQAAAAAC2bNMoNEBAAAAIBxJCIAAACABYmIGSQiAAAAAIwjEQEAAAAsHMyaZQSJCAAAAADjKEQAAAAAGMerWQAAAIAFg9XNIBEBAAAAYByJCAAAAGBBImIGiQgAAAAA40hEAAAAAAuHuztQQZCIAAAAADCORAQAAACwsLOgoREkIgAAAACMIxEBAAAALJg1ywwSEQAAAADGkYgAAAAAFiQiZpCIAAAAADCORAQAAACwYB0RM0hEAAAAABhHIgIAAABYsI6IGSQiAAAAAIwjEQEAAAAsmDXLDBIRAAAAAMZRiAAAAAAwjlezAAAAAAum7zWDRAQAAACAcRQiAAAAgIVdDmNbaWzYsEF33HGH6tSpIw8PDy1ZssTluMPh0Pjx41W7dm1VqVJFUVFR+v77713aHD16VA888IB8fX1Vs2ZNDRo0SCdOnHBps2PHDt18883y8fFR3bp1NWXKlLP6smjRIjVp0kQ+Pj5q0aKF/ve//5XqWSQKEQAAAOCKkJubq1atWmnmzJnFHp8yZYpeffVVzZkzR5s3b1a1atUUHR2tU6dOOds88MAD2r17t1avXq1ly5Zpw4YNevTRR53Hc3Jy1K1bN9WvX19paWmaOnWqJk6cqNdff93ZZtOmTbrvvvs0aNAgff311+rZs6d69uypXbt2lep5PBwOR7l7DS7Uv7m7uwAAZSrjxDF3dwEAytTp/F/d3YVzeq7+A8bu9czP8y7qPA8PDy1evFg9e/aUdCYNqVOnjv71r3/pySeflCQdP35cwcHBSkpKUt++ffXtt98qLCxMW7duVdu2bSVJycnJuu2223Tw4EHVqVNHs2fP1tNPP62MjAx5e3tLksaMGaMlS5Zoz549kqQ+ffooNzdXy5Ytc/anQ4cOat26tebMmVPiZyARAQAAANwkLy9POTk5LlteXl6pr7N//35lZGQoKirKuc/Pz08RERFKTU2VJKWmpqpmzZrOIkSSoqKi5Onpqc2bNzvbdOrUyVmESFJ0dLT27t2rY8eOOdtY71PUpug+JUUhAgAAAFg4DG4JCQny8/Nz2RISEkrd54yMDElScHCwy/7g4GDnsYyMDAUFBbkcr1Spkvz9/V3aFHcN6z3O1aboeEkxfS8AAADgJmPHjlV8fLzLPpvN5qbemEUhAgAAAFjYDd7LZrOVSeEREhIiScrMzFTt2rWd+zMzM9W6dWtnm8OHD7ucd/r0aR09etR5fkhIiDIzM13aFH2+UJui4yXFq1kAAADAFa5hw4YKCQlRSkqKc19OTo42b96syMhISVJkZKSys7OVlpbmbLNmzRrZ7XZFREQ422zYsEEFBQXONqtXr1bjxo111VVXOdtY71PUpug+JUUhAgAAAFjYPcxtpXHixAmlp6crPT1d0pkB6unp6Tpw4IA8PDw0YsQITZ48WUuXLtXOnTv10EMPqU6dOs6ZtZo2baru3bvrkUce0ZYtW/TFF19o6NCh6tu3r+rUqSNJuv/+++Xt7a1BgwZp9+7dWrBggWbMmOHy+tjw4cOVnJysl19+WXv27NHEiRP11VdfaejQoaV6Hl7NAgAAAK4AX331lbp06eL8XFQc9O/fX0lJSRo1apRyc3P16KOPKjs7Wx07dlRycrJ8fHyc58ybN09Dhw5V165d5enpqd69e+vVV191Hvfz89OqVasUGxur8PBwBQQEaPz48S5rjdx4442aP3++xo0bp6eeekrXXXedlixZoubNS7eEBuuIAMAVgHVEAJQ3l/M6IuMa3G/sXpN/mm/sXpcbXs0CAAAAYByvZgEAAAAW5e51ocsUiQgAAAAA40hEAAAAAAuT64hUZCQiAAAAAIwjEQEAAAAs7IwSMYJEBAAAAIBxFCIAAAAAjOPVLAAAAMCCF7PMIBEBAAAAYByJCAAAAGDB9L1mkIgAAAAAMI5EBAAAALBg+l4zSEQAAAAAGEciAgAAAFiQh5hBIgIAAADAOBIRAAAAwIJZs8wgEQEAAABgHIkIAAAAYOFglIgRJCIAAAAAjCMRAQAAACwYI2IGiQgAAAAA40hEAAAAAAtWVjeDRAQAAACAcSQiAAAAgAV5iBkkIgAAAACMoxABAAAAYByvZgEAAAAWDFY3g0QEAAAAgHEkIgAAAIAFCxqaQSKCCi12xGAt++y/2vPzZqXvXa8335uhaxo1cGnzQP+7tWjpO/r25y918Ogu+frWcDkeeVM7HTy6q9it1Q3NJUk2m7deSZyszzZ+rJ8Op+vN92aYekQAKLHHh/TXvu++1ImcH7Rp46dq17a1u7sEoByjEEGFFnlTW8196wPdGX2/7uv1qCpXrqz5H72uKlWrONv4VPHRupSNSnzljWKv8dWWr3VDk1tctvnvfqiff/pF27/eJUny9PLSqVN5evv1edq4/ksjzwYApXHPPXfq31Mn6LnJr6hdRHdt3/GN/rd8ngIDa7m7a4BxDoP/qch4NQsV2oP3DHH5HBf7tHZ8/7latgrT5tQ0SdJbc96XdCb5KE5BwWllHf7d+blSpUrq1qOL3nljvnPfyT9P6qknn5MktW1/g3z9apx1HQBwp7jhj+jNt+Zr7rsLJUn/FztGt/XoqoED+mrK1Jlu7h2A8ohEBLDw9a0uScrOPn7R1+jWo7Ou8q+phfOXlFGvAODSqly5stq0aamUNZ879zkcDqWs2agOHcLd2DPAPewGt4rssi5EfvnlFz388MPnbZOXl6ecnByXzeGo6H+suBgeHh6a+MIYbflym/Z+u++ir9P3wV5av+YL/XYoswx7BwCXTkCAvypVqqTDmUdc9h8+nKWQ4EA39QpAeXdZFyJHjx7V3Llzz9smISFBfn5+Ltsfp46c9xygOM9PHafGTRspdvDIi75G7TrBuuXWm/Tf9z8uw54BAACTGCNihlvHiCxduvS8x3/88ccLXmPs2LGKj4932de0foe/1S9UPJNfekpR0beod0z/v5Vk3Ht/Tx07mq1VK9aVXecA4BI7cuSoTp8+raDgAJf9QUGBysjMclOvAJR3bi1EevbsKQ8PDzkc564GPTw8znsNm80mm832l3Mu66AHl5nJLz2l7jFddc+dA/XLgV//1rXuvb+nPlzwqU6fPl1GvQOAS6+goEDbtu3QrV06aunSlZLO/Pv31i4dNWv2O27uHWAeL/mb4daf2GvXrq2PP/5Ydru92G3btm3u7B4qgOenjtNd996uoY+O1okTuQoMqqXAoFry8fl/xW1gUC2FNW+sBtfUkyQ1CbtOYc0bq2ZNX5dr3dQpQvUb1NUH731U7L2ua3zNmfOu8pOvbw2FNW+ssOaNL93DAUApTJvxhgYPul/9+t2jJk0aaWbii6pWrYqS5i5wd9cAlFNuTUTCw8OVlpamf/7zn8Uev1BaAvxd/Qf1lSR9uCzJZX9c7NNa9MEnkqR+A/sofvT/OY99/L93z2ojSfc92EtbN3+tH77fX+y93l0wW3XrXe38vGrDmYIl1L/5338QAPibFi1aqsAAf00c/6RCQgK1fftuxdz+oA4fZtwlKh47P38a4eFw40/6n3/+uXJzc9W9e/dij+fm5uqrr77SLbfcUqrr8oMdgPIm48Qxd3cBAMrU6fy/9zr0pdSvfi9j93rv54o7wY1bE5Gbb775vMerVatW6iIEAAAA+DvIQ8xgVDcAAAAA49yaiAAAAACXGzuZiBEkIgAAAACMIxEBAAAALCr6iuemkIgAAAAAMI5CBAAAAIBxvJoFAAAAWNjd3YEKgkQEAAAAgHEkIgAAAIAF0/eaQSICAAAAwDgSEQAAAMCC6XvNIBEBAAAAYByJCAAAAGDBrFlmkIgAAAAAMI5EBAAAALBwOBgjYgKJCAAAAADjSEQAAAAAC9YRMYNEBAAAAIBxJCIAAACABbNmmUEiAgAAAMA4EhEAAADAgpXVzSARAQAAAGAciQgAAABgwaxZZpCIAAAAADCOQgQAAACAcbyaBQAAAFg4HLyaZQKJCAAAAADjSEQAAAAACxY0NINEBAAAAIBxJCIAAACABQsamkEiAgAAAMA4EhEAAADAggUNzSARAQAAAGAciQgAAABgwToiZpCIAAAAADCOQgQAAACwsMthbCuNiRMnysPDw2Vr0qSJ8/ipU6cUGxurWrVqqXr16urdu7cyMzNdrnHgwAHFxMSoatWqCgoK0siRI3X69GmXNuvWrVObNm1ks9nUqFEjJSUlXfR3eT4UIgAAAMAVolmzZvrtt9+c28aNG53H4uLi9Omnn2rRokVav369Dh06pF69ejmPFxYWKiYmRvn5+dq0aZPmzp2rpKQkjR8/3tlm//79iomJUZcuXZSenq4RI0Zo8ODBWrlyZZk/i4ejHL4EF+rf3N1dAIAylXHimLu7AABl6nT+r+7uwjl1Do0ydq91Bz8rcduJEydqyZIlSk9PP+vY8ePHFRgYqPnz5+vuu++WJO3Zs0dNmzZVamqqOnTooBUrVuj222/XoUOHFBwcLEmaM2eORo8eraysLHl7e2v06NFavny5du3a5bx23759lZ2dreTk5L/3sH9BIgIAAAC4SV5ennJycly2vLy8c7b//vvvVadOHV1zzTV64IEHdODAAUlSWlqaCgoKFBX1/4qoJk2aqF69ekpNTZUkpaamqkWLFs4iRJKio6OVk5Oj3bt3O9tYr1HUpugaZYlCBAAAALCwOxzGtoSEBPn5+blsCQkJxfYrIiJCSUlJSk5O1uzZs7V//37dfPPN+uOPP5SRkSFvb2/VrFnT5Zzg4GBlZGRIkjIyMlyKkKLjRcfO1yYnJ0cnT54si6/Xiel7AQAAADcZO3as4uPjXfbZbLZi2/bo0cP5zy1btlRERITq16+vhQsXqkqVKpe0n5cCiQgAAABg4TC42Ww2+fr6umznKkT+qmbNmrr++uu1b98+hYSEKD8/X9nZ2S5tMjMzFRISIkkKCQk5axatos8XauPr61vmxQ6FCAAAAHAFOnHihH744QfVrl1b4eHhqly5slJSUpzH9+7dqwMHDigyMlKSFBkZqZ07d+rw4cPONqtXr5avr6/CwsKcbazXKGpTdI2yRCECAAAAXAGefPJJrV+/Xj/99JM2bdqku+66S15eXrrvvvvk5+enQYMGKT4+XmvXrlVaWpoGDhyoyMhIdejQQZLUrVs3hYWFqV+/ftq+fbtWrlypcePGKTY21pnCDBkyRD/++KNGjRqlPXv2aNasWVq4cKHi4uLK/HkYIwIAAABYlHahQVMOHjyo++67T7///rsCAwPVsWNHffnllwoMDJQkTZs2TZ6enurdu7fy8vIUHR2tWbNmOc/38vLSsmXL9PjjjysyMlLVqlVT//799eyzzzrbNGzYUMuXL1dcXJxmzJih0NBQvfnmm4qOji7z52EdEQC4ArCOCIDy5nJeR+Smq281dq8vfl1j7F6XGxIRAAAAwOJyTUTKG8aIAAAAADCORAQAAACwKIcjFy5LJCIAAAAAjCMRAQAAACwYI2IGiQgAAAAA40hEAAAAAAsHiYgRJCIAAAAAjCMRAQAAACyYNcsMEhEAAAAAxpGIAAAAABbMmmUGiQgAAAAA40hEAAAAAAvGiJhBIgIAAADAOBIRAAAAwIIxImaQiAAAAAAwjkQEAAAAsGBldTNIRAAAAAAYRyECAAAAwDhezQIAAAAs7EzfawSJCAAAAADjSEQAAAAACwarm0EiAgAAAMA4EhEAAADAgjEiZpCIAAAAADCORAQAAACwYIyIGSQiAAAAAIwjEQEAAAAsGCNiBokIAAAAAONIRAAAAAALxoiYQSICAAAAwDgSEQAAAMCCMSJmkIgAAAAAMI5EBAAAALBgjIgZJCIAAAAAjCMRAQAAACwcDru7u1AhkIgAAAAAMI5CBAAAAIBxvJoFAAAAWNgZrG4EiQgAAAAA40hEAAAAAAsHCxoaQSICAAAAwDgSEQAAAMCCMSJmkIgAAAAAMI5EBAAAALBgjIgZJCIAAAAAjCMRAQAAACzsJCJGkIgAAAAAMI5EBAAAALBwMGuWESQiAAAAAIwjEQEAAAAsmDXLDBIRAAAAAMaRiAAAAAAWrKxuBokIAAAAAONIRAAAAAALxoiYQSICAAAAwDgSEQAAAMCCldXNIBEBAAAAYByFCAAAAADjeDULAAAAsGCwuhkkIgAAAACMIxEBAAAALFjQ0AwSEQAAAADGkYgAAAAAFowRMYNEBAAAAIBxJCIAAACABQsamkEiAgAAAMA4EhEAAADAwsGsWUaQiAAAAAAwjkQEAAAAsGCMiBkkIgAAAACMIxEBAAAALFhHxAwSEQAAAADGkYgAAAAAFsyaZQaJCAAAAADjSEQAAAAAC8aImEEiAgAAAMA4ChEAAAAAxlGIAAAAABYOh8PYdjFmzpypBg0ayMfHRxEREdqyZUsZfwNmUIgAAAAAV4gFCxYoPj5eEyZM0LZt29SqVStFR0fr8OHD7u5aqXk4yuFonFD/5u7uAgCUqYwTx9zdBQAoU6fzf3V3F86pkvfVxu5V2u8hIiJC7dq1U2JioiTJbrerbt26GjZsmMaMGXMpunjJkIgAAAAAbpKXl6ecnByXLS8vr9i2+fn5SktLU1RUlHOfp6enoqKilJqaaqrLZaZcTt978Ogud3cBFUBeXp4SEhI0duxY2Ww2d3cHAP42/l4DzjCZ1kycOFGTJk1y2TdhwgRNnDjxrLZHjhxRYWGhgoODXfYHBwdrz549l7Kbl0S5fDULMCEnJ0d+fn46fvy4fH193d0dAPjb+HsNMC8vL++sBMRmsxX7y4BDhw7p6quv1qZNmxQZGencP2rUKK1fv16bN2++5P0tS+UyEQEAAACuBOcqOooTEBAgLy8vZWZmuuzPzMxUSEjIpejeJcUYEQAAAOAK4O3trfDwcKWkpDj32e12paSkuCQkVwoSEQAAAOAKER8fr/79+6tt27Zq3769pk+frtzcXA0cONDdXSs1ChHgItlsNk2YMIEBnQDKDf5eAy5/ffr0UVZWlsaPH6+MjAy1bt1aycnJZw1gvxIwWB0AAACAcYwRAQAAAGAchQgAAAAA4yhEAAAAABhHIQIAAADAOAoR4CLNnDlTDRo0kI+PjyIiIrRlyxZ3dwkALsqGDRt0xx13qE6dOvLw8NCSJUvc3SUAFQCFCHARFixYoPj4eE2YMEHbtm1Tq1atFB0drcOHD7u7awBQarm5uWrVqpVmzpzp7q4AqECYvhe4CBEREWrXrp0SExMlnVnVtG7duho2bJjGjBnj5t4BwMXz8PDQ4sWL1bNnT3d3BUA5RyIClFJ+fr7S0tIUFRXl3Ofp6amoqCilpqa6sWcAAABXDgoRoJSOHDmiwsLCs1YwDQ4OVkZGhpt6BQAAcGWhEAEAAABgHIUIUEoBAQHy8vJSZmamy/7MzEyFhIS4qVcAAABXFgoRoJS8vb0VHh6ulJQU5z673a6UlBRFRka6sWcAAABXjkru7gBwJYqPj1f//v3Vtm1btW/fXtOnT1dubq4GDhzo7q4BQKmdOHFC+/btc37ev3+/0tPT5e/vr3r16rmxZwDKM6bvBS5SYmKipk6dqoyMDLVu3VqvvvqqIiIi3N0tACi1devWqUuXLmft79+/v5KSksx3CECFQCECAAAAwDjGiAAAAAAwjkIEAAAAgHEUIgAAAACMoxABAAAAYByFCAAAAADjKEQAAAAAGEchAgAAAMA4ChEAAAAAxlVydwcAoCJav369HnvsMfn4+Ljst9vtuuWWW7Rlyxbl5eWddd6JEye0e/duTZ8+Xe+9954qVXL9azw/P19PP/20HnjggUvafwAA/i4KEQBwg5MnT6pv376aOHGiy/6ffvpJY8aMkYeHh9LT0886r3PnznI4HDp27JgSExPVuXNnl+NJSUn6448/Ll3HAQAoI7yaBQAAAMA4ChEAAAAAxlGIAAAAADCOQgQAAACAcRQiAAAAAIyjEAEAAABgHIUIAAAAAOMoRAAAAAAYRyECAAAAwDgKEQAAAADGVXJ3BwCgIvLz89OyZcu0bNmys45FR0crOztbbdu2LfZcT09PhYaG6sknnyz2+FNPPVWmfQUA4FLwcDgcDnd3AgAAAEDFwqtZAAAAAIyjEAEAAABgHIUIAAAAAOMoRAAAAAAYRyECAAAAwDgKEQAAAADGUYgAAAAAMI5CBAAAAIBxFCIAAAAAjPv/AKq0kZ0ZIx7SAAAAAElFTkSuQmCC\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but DecisionTreeClassifier was fitted without feature names\n",
+ " warnings.warn(\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.94 0.90 0.92 30424\n",
+ " 1 0.09 0.13 0.11 2171\n",
+ "\n",
+ " accuracy 0.85 32595\n",
+ " macro avg 0.51 0.52 0.51 32595\n",
+ "weighted avg 0.88 0.85 0.86 32595\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyIAAAJwCAYAAAB1fNUWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFl0lEQVR4nO3deXxOZ/7/8fctkcSWqJKE2mlttdTSSO0jI2ppg2qpqrWWCS2ptRTVJS3tWErR6W8aU3TQlmoUTSlaUksqVSlqV9WEICJBErnv3x8e7u+5R1RiuW7k9ZzHeUzvcz73OdfJfL/0k/e5rmNzOBwOAQAAAIBBBdw9AAAAAAD5D40IAAAAAONoRAAAAAAYRyMCAAAAwDgaEQAAAADG0YgAAAAAMI5GBAAAAIBxNCIAAAAAjKMRAQAAAGAcjQiAfO3w4cOy2WyKiorK0/datmypli1b3pYxAQCQH9CIAHCrqKgo2Ww25+bj46MyZcooNDRUM2fO1Llz59w9xDtGxYoVXX5W19ry2lQBAOAONofD4XD3IADkX1FRUerTp48mT56sSpUqKSsrS4mJiVq/fr1iYmJUvnx5rVixQnXq1Lkt13c4HMrIyFDBggXl4eGR6+9lZmZKkry8vG7LuHKyfPlypaWlOT9//fXX+vTTTzVt2jSVLFnSuf+xxx5T5cqVb+tYvv76a3Xq1EkFCxbM8XhGRoYuXryoNWvWuKUuL/9bAgDcw9PdAwAASXr88cfVsGFD5+exY8dq3bp16tChg5544gnt3r1bhQoVuuXXvZLC5JXJBuSKsLAwl8+JiYn69NNPFRYWpooVK17ze+np6SpSpMgtHYvdblfXrl21YMGCHI8HBgbK4XC4rQ4AcOfj0SwAd6y//e1vevXVV3XkyJGr/sVzz549euqpp1SiRAn5+PioYcOGWrFixVXnSElJ0fDhw1WxYkV5e3urbNmyev7555WcnCwp5zkiiYmJ6tOnj8qWLStvb2+VLl1aTz75pA4fPuysyWmOyIkTJ9SvXz8FBATIx8dHdevW1fz5811qrlzv3Xff1YcffqgqVarI29tbjRo10rZt227uByapd+/eKlq0qA4cOKB27dqpWLFi6tGjh6TLzcP06dNVq1Yt+fj4KCAgQAMHDtSZM2euOs+qVavUrFkzFSlSRMWKFVP79u2VkJBw0+MDAOAKEhEAd7SePXvqlVde0TfffKMXXnhBkpSQkKAmTZrogQce0JgxY1SkSBEtWbJEYWFh+vzzz9WpUydJUlpampo1a6bdu3erb9++ql+/vpKTk7VixQodO3bM5XEmqy5duighIUFDhw5VxYoVdeLECcXExOjo0aPXTB4uXLigli1bav/+/RoyZIgqVaqkpUuXqnfv3kpJSdFLL73kUr9o0SKdO3dOAwcOlM1m05QpU9S5c2cdPHjwmo8d5dalS5cUGhqqpk2b6t1331XhwoUlSQMHDnQ+Cvfiiy/q0KFDmjVrlnbs2KFNmzY5r/vJJ5+oV69eCg0N1TvvvKPz589rzpw5atq0qXbs2PGX6QsAALlFIwLgjla2bFn5+fnpwIEDzn0vvfSSypcvr23btsnb21uS9I9//ENNmzbV6NGjnY3I1KlTtWvXLn3xxRfOfZI0fvz4az6+k5KSos2bN2vq1KkaMWKEc//YsWP/cpwffvihdu/erQULFjgTiEGDBqlFixYaP368+vbtq2LFijnrjx49qn379um+++6TJFWrVk1PPvmk1qxZow4dOuTlR3SVjIwMde3aVZGRkc59P/zwgz766CMtXLhQzz77rHN/q1at1LZtWy1dulTPPvus0tLS9OKLL6p///768MMPnXW9evVStWrV9NZbb7nsBwDgRvFoFoA7XtGiRZ2rZ50+fVrr1q3T008/rXPnzik5OVnJyck6deqUQkNDtW/fPv3xxx+SpM8//1x169Z1aUKusNlsOV6rUKFC8vLy0vr163N8ZOlavv76awUGBqp79+7OfQULFtSLL76otLQ0bdiwwaX+mWeecTYhktSsWTNJ0sGDB3N9zb8yePBgl89Lly6Vn5+f/v73vzt/ZsnJyWrQoIGKFi2q7777TpIUExOjlJQUde/e3aXOw8NDQUFBzjoAAG4WiQiAO15aWpr8/f0lSfv375fD4dCrr76qV199Ncf6EydO6IEHHtCBAwfUpUuXPF3L29tb77zzjl5++WUFBASocePG6tChg55//nkFBgZe83tHjhzRgw8+qAIFXH+/U6NGDedxq/Lly7t8vtKU5KX5uRZPT0+VLVvWZd++fft09uxZ58/xf504ccJZJ12en5MTX1/fmx4fAAASjQiAO9yxY8d09uxZVa1aVdLlCdeSNGLECIWGhub4nSu1N2rYsGHq2LGjli9frjVr1ujVV19VZGSk1q1bp0ceeeSmzn3FtZaXvRUrPnl7e1/VENntdvn7+2vhwoU5fqdUqVLOOunyPJGcGi9PT/7aAADcGvyNAuCO9sknn0iSs+m48n6MggULKiQk5C+/W6VKFe3ateuGrlulShW9/PLLevnll7Vv3z7Vq1dP77333jWXja1QoYJ27twpu93u0gTs2bPHedydqlSpom+//VZNmjT5y2WQq1SpIkny9/e/7s8XAICbwRwRAHesdevW6fXXX1elSpWcE8D9/f3VsmVLzZs3T3/++edV3zl58qTzn7t06aKff/5Zy5Ytu6ruWsnD+fPndfHiRZd9VapUUbFixZSRkXHNsbZr106JiYlavHixc9+lS5f0/vvvq2jRomrRosVf3+xt9vTTTys7O1uvv/76VccuXbqklJQUSZcbPl9fX7311lvKysq6qtb68wUA4GaQiAC4I6xatUp79uzRpUuXlJSUpHXr1ikmJkYVKlTQihUrXF46OHv2bDVt2lS1a9fWCy+8oMqVKyspKUmxsbE6duyYfv75Z0nSyJEj9dlnn6lr167q27evGjRooNOnT2vFihWaO3eu6tate9U4fvvtN7Vu3VpPP/20atasKU9PTy1btkxJSUnq1q3bNcc/YMAAzZs3T71791ZcXJwqVqyozz77TJs2bdL06dNdVsxyhxYtWmjgwIGKjIxUfHy82rRpo4IFC2rfvn1aunSpZsyYoaeeekq+vr6aM2eOevbsqfr166tbt24qVaqUjh49qpUrV6pJkyaaNWuWW+8FAHBvoBEBcEeYMGGCpMtvLC9RooRq166t6dOnq0+fPlf9S3zNmjW1fft2vfbaa4qKitKpU6fk7++vRx55xHke6fJqW99//70mTpyoZcuWaf78+fL391fr1q2vmsx9Rbly5dS9e3etXbtWn3zyiTw9PVW9enUtWbLkLye+FypUSOvXr9eYMWM0f/58paamqlq1avr444/Vu3fvm/8B3QJz585VgwYNNG/ePL3yyivy9PRUxYoV9dxzz6lJkybOumeffVZlypTR22+/ralTpyojI0MPPPCAmjVrpj59+rjxDgAA9xKb41bMjAQA5CvR0dH673//e805M4GBgTp27JhWr17tljom1QPAnY85IgAAAACM41dGAIAbsmTJEkVHR+d4LDU11e11AIA7G49mAQAAADCOR7MAAAAA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\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but RandomForestClassifier was fitted without feature names\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.97 0.84 0.90 30424\n",
+ " 1 0.23 0.65 0.34 2171\n",
+ "\n",
+ " accuracy 0.83 32595\n",
+ " macro avg 0.60 0.75 0.62 32595\n",
+ "weighted avg 0.92 0.83 0.86 32595\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyIAAAJwCAYAAAB1fNUWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABD+UlEQVR4nO3de3zP9f//8ft7YxvDJLbZxyGRw5xWw6zw0ccy0WGlAzpYSPqMYiVWQn3VikrKqcPnYz6VDsopclgTkqHUCuFDCGlznDFss/fr90c/r8/r3Rw28Xxjt+vl8rp8vJ+v5/v1er7W5eKzh/vz+Xy5LMuyBAAAAAAG+Xh7AAAAAABKHwoRAAAAAMZRiAAAAAAwjkIEAAAAgHEUIgAAAACMoxABAAAAYByFCAAAAADjKEQAAAAAGEchAgAAAMA4ChEApVZ8fLyuuuoqbw8DAIBSiUIEwAWXkpIil8tlH2XKlNHf/vY3xcfH67fffvP28C4af/45OY+hQ4d6e3in9OKLL2rWrFneHgYA4BJUxtsDAFB6PP/886pTp46OHz+ulStXKiUlRcuXL9e6desUEBDg7eFdNE7+nJyaNGnipdGc2Ysvvqi77rpLcXFxdtv69et17bXXys/P75Tfyc/P14YNG3T8+HGv9Ktbt27JHhIAcEFQiAAw5uabb1aLFi0kSX369FHVqlX18ssva86cObrnnnu8PLqLh/PndD7l5uYqMDDwvF/3zyzLUqtWrbR8+fJTnm/durUsy/JaPwDAxYGpWQC8pm3btpKkX375xW7Lz8/X8OHDFRkZqaCgIAUGBqpt27b66quvPL67fft2uVwuvfLKK3r77bdVt25d+fv7q2XLlvr222+L3GvWrFlq0qSJAgIC1KRJE82cOfOUY8rNzdUTTzyhmjVryt/fXw0aNNArr7xS5BdYl8ul/v37a/r06QoPD1e5cuUUHR2ttWvXSpLeeust1atXTwEBAWrfvr22b9/+V35UHhYvXqy2bdsqMDBQlStX1u23364NGzZ49Bk5cqRcLpd+/vln9ejRQ1dccYXatGljn3///fcVGRmpcuXKqUqVKurWrZt27tzpcY3Nmzera9euCg0NVUBAgGrUqKFu3brp0KFD9s8gNzdXU6dOtaeQxcfHn7fnBABc3khEAHjNyV/Or7jiCrstJydH7777rrp3766HH35Yhw8f1r/+9S/FxsZq9erVioiI8LjGtGnTdPjwYT3yyCNyuVwaPXq07rzzTm3dulVly5aVJC1atEhdu3ZVeHi4kpOTtX//fj300EOqUaOGx7Usy9Jtt92mr776Sr1791ZERIQWLlyowYMH67ffftPYsWM9+n/99deaM2eOEhISJEnJycm65ZZb9NRTT2nixIn65z//qYMHD2r06NHq1auXFi9eXKyfy6FDh7Rv3z6PtqpVq0qSvvzyS9188826+uqrNXLkSB07dkxvvvmmbrjhBn3//fdFFt/ffffduuaaa/Tiiy/axdQLL7ygZ599Vvfcc4/69OmjvXv36s0331S7du30ww8/qHLlysrPz1dsbKzy8vI0YMAAhYaG6rffftPcuXOVnZ2toKAgvffee+rTp49atWqlvn37ShLTngAAxWcBwAU2ZcoUS5L15ZdfWnv37rV27txpffrpp1a1atUsf39/a+fOnXbfEydOWHl5eR7fP3jwoBUSEmL16tXLbtu2bZslybryyiutAwcO2O2zZ8+2JFmff/653RYREWFVr17dys7OttsWLVpkSbJq165tt82aNcuSZI0aNcrj/nfddZflcrmsLVu22G2SLH9/f2vbtm1221tvvWVJskJDQ62cnBy7PSkpyZLk0fdMP6dTHc5nCQ4Otvbv32+3/fjjj5aPj4/14IMP2m0jRoywJFndu3f3uMf27dstX19f64UXXvBoX7t2rVWmTBm7/YcffrAkWdOnTz/jmAMDA62ePXsWudYNN9xw2u9ERUVZmzdv9lo/AMDFgalZAIyJiYlRtWrVVLNmTd11110KDAzUnDlzPJIJX19fe7Gx2+3WgQMHdOLECbVo0ULff/99kWvee++9HonKyeleW7dulST9/vvvysjIUM+ePRUUFGT3u+mmmxQeHu5xrS+++EK+vr567LHHPNqfeOIJWZal+fPne7R36NDBI4GIioqSJHXt2lUVK1Ys0n5yTGczYcIEpaamehzOZ4mPj1eVKlXs/s2aNdNNN92kL774osi1+vXr5/F5xowZcrvduueee7Rv3z77CA0N1TXXXGNPgTv5s1q4cKGOHj1arHEDAFASTM0CYMyECRNUv359HTp0SP/+97+1bNky+fv7F+k3depUvfrqq9q4caMKCgrs9j/vJCVJtWrV8vh8sig5ePCgJOnXX3+VJF1zzTVFvtugQQOP4ubXX39VWFiYRxEhSY0aNfK41unuffKX95o1a56y/eSYzqZVq1anXKx+8v4NGjQocq5Ro0ZauHBhkQXpf/6Zbd68WZZlnfLnIcmezlanTh0lJibqtdde0wcffKC2bdvqtttu0/333+9R0AEAcK4oRAAY4/wFOy4uTm3atFGPHj20adMmVahQQdIfi6jj4+MVFxenwYMHKzg4WL6+vkpOTvZY1H6Sr6/vKe9lGdgd6XT39uaY/qxcuXIen91ut1wul+bPn3/KcZ787yBJr776quLj4zV79mwtWrRIjz32mJKTk7Vy5coi62sAACgpChEAXnGyuLjxxhs1fvx4+4V9n376qa6++mrNmDFDLpfL7j9ixIhzuk/t2rUl/ZEE/NmmTZuK9P3yyy91+PBhj1Rk48aNHtfylpP3//O4pT/GWLVq1bNuz1u3bl1ZlqU6deqofv36Z71n06ZN1bRpUw0bNkwrVqzQDTfcoMmTJ2vUqFGS5PHfCACAkmCNCACvad++vVq1aqXXX39dx48fl/S/NMGZHqxatUrp6enndI/q1asrIiJCU6dOtbedlaTU1FT9/PPPHn07d+6swsJCjR8/3qN97Nixcrlcuvnmm89pDOeL81mys7Pt9nXr1mnRokXq3LnzWa9x5513ytfXV88991yRhMayLO3fv1/SH7uXnThxwuN806ZN5ePjo7y8PLstMDDQYywAABQXiQgArxo8eLDuvvtupaSkqF+/frrllls0Y8YM3XHHHerSpYu2bdumyZMnKzw8XEeOHDmneyQnJ6tLly5q06aNevXqpQMHDujNN99U48aNPa5566236sYbb9Qzzzyj7du3q3nz5lq0aJFmz56tgQMHXhRb044ZM0Y333yzoqOj1bt3b3v73qCgII0cOfKs369bt65GjRqlpKQkbd++XXFxcapYsaK2bdummTNnqm/fvnryySe1ePFi9e/fX3fffbfq16+vEydO6L333pOvr6+6du1qXy8yMlJffvmlXnvtNYWFhalOnTpGXpoIALj0kYgA8Ko777xTdevW1SuvvKLCwkLFx8frxRdf1I8//qjHHntMCxcu1Pvvv/+X3jTeqVMnTZ8+XYWFhUpKStKMGTM0ZcqUItf08fHRnDlzNHDgQM2dO1cDBw7Uzz//rDFjxui11177q496XsTExGjBggW68sorNXz4cL3y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\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but RandomForestClassifier was fitted without feature names\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.97 0.85 0.91 30424\n",
+ " 1 0.23 0.64 0.34 2171\n",
+ "\n",
+ " accuracy 0.84 32595\n",
+ " macro avg 0.60 0.75 0.62 32595\n",
+ "weighted avg 0.92 0.84 0.87 32595\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAyIAAAJwCAYAAAB1fNUWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABASklEQVR4nO3debxVZb0/8M85DAdEwRQBCcUpRRIlJ8TStIjjlSxMu+KUA2oaWEIqmqbcJgw1hwsO1U3M6aK3NMUpLgrUBScUp5SccTogKqIo49m/P/yx2ydQOYbrILzfvdYrzlrfvfazrIgvn/U8T1WpVCoFAACgQNVNPQAAAGDtoxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBAAAKpxEBWIFHH300Bx54YLp27ZpWrVrls5/9bL72ta/lP//zP/Pggw+mqqoqZ5555gd+/qmnnkpVVVWGDh2aJBk+fHiqqqpSXV2dF198cbn6efPmpXXr1qmqqsrgwYM/secCgNWFRgTgn0yZMiU777xzHn744Rx77LEZNWpUjjnmmFRXV+eiiy7KjjvumG7duuW66677wHtce+21SZLDDjuswfmampoVfu6Pf/zjCu/TqVOnrLvuuis8WrVqld/97ndNWgcAH1fzph4AwOrm5z//edq1a5f7778/66+/foNrs2fPTpIceuih+fGPf5x77rknu+2223L3uO6669KtW7fsuOOODc7vu+++ue6663Lqqac2OH/ttdemX79++cMf/tDg/JIlSzJ37tw0b778b9ennXZa6uvrm7QOAD4uiQjAP3nmmWfy+c9/frkmJEk6dOiQ5P1GJPlH8lFp2rRpmTFjRrmm0iGHHJLp06fnySefLJ+rq6vLXXfdlUMOOWQVPQEArP40IgD/pGvXrpk2bVoee+yxD6zZfPPNs/vuu+f666/P0qVLG1xb1pysqLHYc88906VLlwYNzNixY7PuuuumX79+q+gJAGD1pxEB+Ccnn3xy3n333fTs2TO77757hg0blj//+c9ZvHhxg7pDDz00s2bNyoQJE8rn6uvrM3bs2PTu3TtbbLHFcveuqqrKgAEDGswTueaaa/Ktb30rNTU1n9xDAcBqRiMC8E++9rWvZerUqfnGN76Rhx9+OCNHjkxtbW0++9nP5uabby7XHXTQQWnRokWDdGPSpEl5+eWXV/ha1jKHHHJInn766dx///3lf/daFgBrG40IwArssssu+eMf/5g333wz9913X04//fS8/fbbOfDAA/O3v/0tSbLhhhumtrY2N954YxYsWJDk/deymjdvnn//93//wHt/4QtfSLdu3XLttdfmmmuuSadOnfKVr3ylkOcCgNWFRgTgQ7Rs2TK77LJLfvGLX+TSSy/N4sWLc8MNN5SvH3bYYZk3b17GjRuXRYsW5Q9/+EP69u2bjTba6EPve8ghh2Ts2LG59tprc9BBB6W62m/HAKxd/D8fwEraeeedkySvvvpq+dw3vvGNrLfeern22mtz++2358033/zQ17KWOeSQQ/Lqq6/m73//u9eyAFgr2UcE4J/cfffd2WuvvVJVVdXg/G233ZYk2WabbcrnWrdunf333z9jx47Nu+++mzZt2uSb3/zmR37HlltumQsvvDDvvfdedt1111X7AADwKaARAfgnJ554Yt59993sv//+6datWxYtWpQpU6Zk7Nix2WyzzXLUUUc1qD/ssMPy+9//PnfeeWcOPfTQtGnTZqW+5wc/+MEnMXwA+FTQiAD8k/POOy833HBDbrvttvz617/OokWLsummm+Z73/tezjzzzOU2OvzKV76SjTfeOK+++upKvZYFAGhEAJazzz77ZJ999lnp+mbNmuWVV1750Jrhw4dn+PDhH3mvUqm00t8LAJ9mJqsDAACFk4gArObat2+/wvMLFizIqFGjmrwOAD6OqpL3AAAAgIJ5NQsAACicRgQAACicRgQAACicRgQAACjcGrlq1uI5zzb1EABWqT13GNjUQwBYpaa+fHdTD+EDFflnyRbttyjsu1Y3EhEAAKBwa2QiAgAAH1v90qYewVpBIgIAABROIgIAAJVK9U09grWCRAQAACicRAQAACrVS0SKIBEBAAAKJxEBAIAKJXNECiERAQAACicRAQCASuaIFEIiAgAAFE4iAgAAlcwRKYREBAAAKJxGBAAAKtUvLe5ohBEjRmSXXXbJeuutlw4dOqR///6ZMWNGg5q99torVVVVDY7jjz++Qc3MmTPTr1+/rLPOOunQoUNOOeWULFmypEHNxIkTs+OOO6ampiZbbbVVxowZs9x4Ro8enc022yytWrVKr169ct999zXqeTQiAADwKTBp0qQMGjQo99xzT8aPH5/Fixenb9++mT9/foO6Y489Nq+++mr5GDlyZPna0qVL069fvyxatChTpkzJlVdemTFjxuSss84q1zz33HPp169f9t5770yfPj0nnXRSjjnmmNx5553lmrFjx2bo0KE5++yz8+CDD2aHHXZIbW1tZs+evdLPU1UqlUr/wj+P1dLiOc829RAAVqk9dxjY1EMAWKWmvnx3Uw/hAy164cHCvqtl1x0/9mdfe+21dOjQIZMmTcqee+6Z5P1EpGfPnrnwwgtX+Jnbb789X//61/PKK6+kY8eOSZLLLrssw4YNy2uvvZaWLVtm2LBhufXWW/PYY4+VPzdgwIDMnTs3d9xxR5KkV69e2WWXXTJq1KgkSX19fTbZZJOceOKJOe2001Zq/BIRAACoVKov7Fi4cGHmzZvX4Fi4cOFKDfOtt95KkmywwQYNzl9zzTVp3759tttuu5x++ul59913y9emTp2aHj16lJuQJKmtrc28efPy+OOPl2v69OnT4J61tbWZOnVqkmTRokWZNm1ag5rq6ur06dOnXLMyNCIAANBERowYkXbt2jU4RowY8ZGfq6+vz0knnZQvfvGL2W677crnDznkkFx99dW5++67c/rpp+eqq67KYYcdVr5eV1fXoAlJUv65rq7uQ2vmzZuX9957L3PmzMnSpUtXWLPsHivD8r0AAFCpwA0NTz/99AwdOrTBuZqamo/83KBBg/LYY4/lr3/9a4Pzxx13XPnXPXr0yMYbb5yvfvWreeaZZ7LllluumkGvIhoRAABoIjU1NSvVeFQaPHhwxo0bl8mTJ6dLly4fWturV68kydNPP50tt9wynTp1Wm51q1mzZiVJOnXqVP73Zecqa9q2bZvWrVunWbNmadas2Qprlt1jZXg1CwAAKpRK9YUdjRtXKYMHD86NN96Yu+66K5tvvvlHfmb69OlJko033jhJ0rt37zz66KMNVrcaP3582rZtm+7du5drJkyY0OA+48ePT+/evZMkLVu2zE477dSgpr6+PhMmTCjXrAyJCAAAfAoMGjQo1157bf70pz9lvfXWK8/HaNeuXVq3bp1nnnkm1157bfbdd99suOGGeeSRRzJkyJDsueee2X777ZMkffv2Tffu3XP44Ydn5MiRqaury5lnnplBgwaVk5njjz8+o0aNyqmnnpqjjz46d911V66//vrceuut5bEMHTo0RxxxRHbeeefsuuuuufDCCzN//vwcddRRK/08lu8F+BSwfC+wplmdl+9d+NSUwr6r5nO7r3RtVVXVCs9fccUVOfLII/Piiy/msMMOy2OPPZb58+dnk002yf77758zzzwzbdu2Lde/8MILOeGEEzJx4sS0adMmRxxxRM4555w0b/6PjGLixIkZMmRI/va3v6VLly758Y9/nCOPPLLB944aNSrnnntu6urq0rNnz1x88cXlV8FW6nk0IgCrP40IsKbRiLyvMY3ImsarWQAAUKmRczf4eExWBwAACicRAQCASvVLm3oEawWJCAAAUDiJCAAAVDJHpBASEQAAoHASEQAAqFQvESmCRAQAACicRAQAACqZI1IIiQgAAFA4jQgAAFA4r2YBAEAlk9ULIREBAAAKJxEBAIAKpdLSph7CWkEiAgAAFE4iAgAAlSzfWwiJCAAAUDiJCAAAVLJqViEkIgAAQOEkIgAAUMkckUJIRAAAgMJJRAAAoFK9fUSKIBEBAAAKJxEBAIBK5ogUQiICAAAUTiICAACV7CNSCIkIAABQOIkIAABUMkekEBIRAACgcBIRAACoZI5IISQiAABA4TQiAABA4byaBQAAlbyaVQiJCAAAUDiJCAAAVCiVljb1ENYKEhEAAKBwEhEAAKhkjkghJCIAAEDhJCIAAFCpJBEpgkQEAAAonEQEAAAqmSNSCIkIAABQOIkIAABUMkekEBIRAACgcBIRAACoZI5IISQiAABA4SQiAABQyRyRQkhEAACAwklEAACgkjkihZCIAAAAhdOIAAAAhfNqFgAAVPJqViEkIgAAQOEkIgAAUMnyvYWQiAAAAIWTiAAAQCVzRAohEQEAAAonEQEAgErmiBRCIgIAABROIgIAAJXMESmERAQAACicRAQAACqZI1IIiQgAAFA4iQgAAFQyR6QQEhEAAKBwEhEAAKgkESmERAQAACicRAQAACqVSk09grWCRAQAACicRAQAACqZI1IIiQgAAFA4jQgAAFA4r2YBAEAlr2YVQiICAAAUTiICAACVShKRIkhEAACAwklEAACgkjkihZCIAAAAhZOIAABApVKpqUewVpCIAAAAhZOIAABAJXNECiERAQAACicRAQCAShKRQkhEAACAwklEAACgkp3VCyERAQAACicRAQCACqV6+4gUQSICAAAUTiICAACVrJpVCIkIAABQOI0IAABQOK9m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4PqRRx6ZqqqqBsc+++zToOaNN97IoYcemrZt22b99dfPwIED88477zSoeeSRR7LHHnukVatW2WSTTTJy5MjlxnLDDTekW7duadWqVXr06JHbbrutcQ8TjQgAAHwqzJ8/PzvssENGjx79gTX77LNPXn311fJx3XXXNbh+6KGH5vHHH8/48eMzbty4TJ48Occdd1z5+rx589K3b9907do106ZNy7nnnpvhw4fn17/+dblmypQpOfjggzNw4MA89NBD6d+/f/r375/HHnusUc9TVSo1thdb/S2e82xTDwFgldpzh4FNPQSAVWrqy3c39RA+0As79insu7o++L8f63NVVVW58cYb079///K5I488MnPnzl0uKVnmiSeeSPfu3XP//fdn5513TpLccccd2XffffPSSy+lc+fOufTSS3PGGWekrq4uLVu2TJKcdtppuemmm/Lkk08mSQ466KDMnz8/48aNK997t912S8+ePXPZZZet9DNIRAAAoIksXLgw8+bNa3AsXLjwY99v4sSJ6dChQ7bZZpuccMIJef3118vXpk6dmvXXX7/chCRJnz59Ul1dnXvvvbdcs+eee5abkCSpra3NjBkz8uabb5Zr+vRp2KzV1tZm6tSpjRqrRgQAACqU6qsKO0aMGJF27do1OEaMGPGxxr3PPvvk97//fSZMmJBf/vKXmTRpUv7t3/4tS5cuTZLU1dWlQ4cODT7TvHnzbLDBBqmrqyvXdOzYsUHNsp8/qmbZ9ZVl+V4AAGgip59+eoYOHdrgXE1Nzce614ABA8q/7tGjR7bffvtsueWWmThxYr761a/+S+P8JEhEAACgidTU1KRt27YNjo/biPyzLbbYIu3bt8/TTz+dJOnUqVNmz57doGbJkiV544030qlTp3LNrFmzGtQs+/mjapZdX1kaEQAAqLC6Lt/bWC+99FJef/31bLzxxkmS3r17Z+7cuZk2bVq55q677kp9fX169epVrpk8eXIWL15crhk/fny22WabfOYznynXTJgwocF3jR8/Pr17927U+DQiAADwKfDOO+9k+vTpmT59epLkueeey/Tp0zNz5sy88847OeWUU3LPPffk+eefz4QJE/LNb34zW221VWpra5Mk2267bfbZZ58ce+yxue+++/J///d/GTx4cAYMGJDOnTsnSQ455JC0bNkyAwcOzOOPP56xY8fmoosuavD62A9+8IPccccdOf/88/Pkk09m+PDheeCBBzJ48OBGPY/lewE+BSzfC6xpVufle5/t0bew79ri0T+vdO3EiROz9957L3f+iCOOyKWXXpr+/fvnoYceyty5c9O5c+f07ds3P/3pTxtMLH/jjTcyePDg3HLLLamurs4BBxyQiy++OOuuu2655pFHHsmgQYNy//33p3379jnxxBMzbNiwBt95ww035Mwzz8zzzz+fz33ucxk5cmT23XffRj27RgTgU0AjAqxpNCLva0wjsqaxahYAAFQolaqaeghrBXNEAACAwklEAACgQqm+qUewdpCIAAAAhZOIAABAhXpzRAohEQEAAAonEQEAgApWzSqGRAQAACicRAQAACqU6iUiRZCIAAAAhZOIAABAhVKpqUewdpCIAAAAhZOIAABABXNEiiERAQAACicRAQCACnZWL4ZEBAAAKJxGBAAAKJxXswAAoELJq1mFkIgAAACFa1Qict111+Xtt99e6foOHTqkf//+jR0TAAA0GRsaFqNRicjPf/7ztGrVKjU1NSt1/OIXv/ikxg0AAHyKNSoRadGiRb7zne+sdP2oUaMaPSAAAGhKlu8tRqMSkaqqxv2H0th6AABg7WDVLAAAqGDVrGJYNQsAAChcoxKRxYsXZ/LkyStVWyqVUrLkAAAAnzL+CFuMRjUihx9+eG6//faVrj/yyCMbOx4AAGAt0KhGZMiQIY1KOaqrvfkFAMCni1WzitGoRuTzn/98unTpslK1pVIp7777bu69996PNTAAAGDN1ahGpE2bNrnrrrtWun6XXXZp9IBWhdad92iS7wX4pNQ0b9HUQwBYa1g1qxj2EQEAAApnHxEAAKhgjkgxzCYHAAAKJxEBAIAKthEpRqMakZYtW2b33Xdf6fr27ds3ekAAAMCar1GNyK677prXXnttpeu32mqrRg8IAABY8zWqEZk8eXJuvvnmld7U8Nvf/nZ++tOffqyBAQBAUzBZvRiNakSqqqqy6aabrnR9Y3ZhBwAA1h6NbkQ+yXoAAGhqNjQshuV7AQCAwlm+FwAAKtQ39QDWEo1qRN5777385Cc/Wala80MAAIAP0qhG5PLLL89777230vW1tbWNHhAAADSlUswRKUKjGpE999zzkxoHAACwFjFHBAAAKtSbYVAIq2YBAACFk4gAAECFenNECiERAQAACicRAQCAClbNKoZEBAAAKJxEBAAAKthZvRgSEQAAoHASEQAAqGCOSDEkIgAAQOEkIgAAUMEckWJIRAAAgMJpRAAAgMJ5NQsAACp4NasYEhEAAKBwEhEAAKhg+d5iSEQAAIDCSUQAAKBCvUCkEBIRAACgcBIRAACoUG+OSCEkIgAAQOEkIgAAUKHU1ANYS0hEAACAwklEAACggp3ViyERAQAACicRAQCACvVVVs0qgkQEAAAonEQEAAAqWDWrGBIRAACgcBIRAACoYNWsYkhEAACAwmlEAACAwnk1CwAAKtRbvbcQEhEAAKBwEhEAAKhQH5FIESQiAABA4SQiAABQwYaGxZCIAAAAhZOIAABABatmFUMiAgAAFE4iAgAAFeqbegBrCYkIAABQOIkIAABUsGpWMSQiAABA4SQiAABQwapZxZCIAAAAhZOIAABABatmFUMiAgAAFE4iAgAAFSQixZCIAAAAhZOIAABAhZJVswohEQEAAAqnEQEAAAqnEQEAgAr1BR6NMXny5Oy3337p3LlzqqqqctNNNzW4XiqVctZZZ2XjjTdO69at06dPnzz11FMNat54440ceuihadu2bdZff/0MHDgw77zzToOaRx55JHvssUdatWqVTTbZJCNHjlxuLDfccEO6deuWVq1apUePHrntttsa+TQaEQAA+FSYP39+dthhh4wePXqF10eOHJmLL744l112We699960adMmtbW1WbBgQbnm0EMPzeOPP57x48dn3LhxmTx5co477rjy9Xnz5qVv377p2rVrpk2blnPPPTfDhw/Pr3/963LNlClTcvDBB2fgwIF56KGH0r9///Tv3z+PPfZYo56nqlQqlRr5z2C117zlZ5t6CACrVE3zFk09BIBVav67zzf1ED7QqE0OK+y7jn36v7Jw4cIG52pqalJTU/Ohn6uqqsqNN96Y/v37J3k/DencuXN++MMf5uSTT06SvPXWW+nYsWPGjBmTAQMG5Iknnkj37t1z//33Z+edd06S3HHHHdl3333z0ksvpXPnzrn00ktzxhlnpK6uLi1btkySnHbaabnpppvy5JNPJkkOOuigzJ8/P+PGjSuPZ7fddkvPnj1z2WWXrfSzS0QAAKCJjBgxIu3atWtwjBgxotH3ee6551JXV5c+ffqUz7Vr1y69evXK1KlTkyRTp07N+uuvX25CkqRPnz6prq7Ovffe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kcEnDsx++x2W119/M0kyadKUdOy4UU466bi0aNEi66/fNj/56bAkSadOHRrcZ8yYi/PanCfyzDP35e233873vnda4c8CfHqt1o3IG2+8kSuvvPJDa0aMGJF27do1OEr1bxc0QtZkRx85IHfceXdefXXWctdatWqVgwf0b5CGLDv/m8vPy5SpD+SLX9ove365fx5/fEZu/tPv06pVq6KGDvChJk+amt677Zuv7H1Axo+flKuuGp2NNtowSfLEE0/luGN/mO//4NjMef2JPPvc/Xnh+Rcza9Zrqa9v+Pe3w4b9NF/c/ev59rePyeabd805vzyzKR4HVjlzRIrRpLNnb7755g+9/uyzz37kPU4//fQMHTq0wbnPbNjtXxoXbLrpZ/PVr+6RA//9mBVeP+CAfllnnda56uobGpw/eED/dO26Sb64xzfKydxhhw/KnNl/yze+0TfXX//h/50HKMK7776XZ599Ic8++0Luv/+hPPzI3TniiINy3nmXJEmuv/7mXH/9zenQoX3mz383pVIpJ37/mDz33MwG95k167XMmvVa/v73Z/LmG3PzvxP+J7885+LU1b3WFI8FfMo0aSPSv3//VFVVfeirVFVVVR96j5qamtTU1DTqM/BRjjzioMyePSe33TZhhdePPnJAbhk3PnPmvNHg/DrrtE59fX2D/04v+7m6erUOIIG1WHV1dVrWtFzu/OzZc5Ik3/nOt7NgwcLcdddfP/QeSdKyZc0H1sCnxdo+d6MoTfono4033jh//OMfU19fv8LjwQcfbMrhsZaqqqrKEd85KFddfcMK53VsueVm2WOP3fK731273LX/nTA5n/lMu/znxb9It25bpXv3rfNfv70gS5YsycSJU4oYPrCWa9NmnWy/fffy/kWbdd0k22/fPV26dM4667TO8P84Jbvs8oVsssln0/ML2+XSy0amc+dOufGPt5bv8d3jv5OePT+frbbaPMd99/Cc/6uf5OyzRuatt+YlSWpr98rhh3873btvnU037ZLaffbORRf/PFOm3J+ZM19qkucGPn2aNBHZaaedMm3atHzzm99c4fWPSkvgk9Dnq3uka9cuuWLMilfLOurIAXnppVfz5/GTlrs2Y8Yz6b//kfnxmUPz18k3p76+PtOnP55+Xz8sdXWzP+mhA2THHbfPHXf+Y/7aL0f+OEly9VX/k+9//4xsvfWW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\n"
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/sklearn/base.py:432: UserWarning: X has feature names, but RandomForestClassifier was fitted without feature names\n",
+ " warnings.warn(\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ " precision recall f1-score support\n",
+ "\n",
+ " 0 0.97 0.83 0.89 30424\n",
+ " 1 0.22 0.67 0.33 2171\n",
+ "\n",
+ " accuracy 0.82 32595\n",
+ " macro avg 0.59 0.75 0.61 32595\n",
+ "weighted avg 0.92 0.82 0.86 32595\n",
+ "\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "name": "stderr",
+ "text": [
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38469 (\\N{CJK UNIFIED IDEOGRAPH-9645}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 20540 (\\N{CJK UNIFIED IDEOGRAPH-503C}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28151 (\\N{CJK UNIFIED IDEOGRAPH-6DF7}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 28102 (\\N{CJK UNIFIED IDEOGRAPH-6DC6}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 30697 (\\N{CJK UNIFIED IDEOGRAPH-77E9}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 38453 (\\N{CJK UNIFIED IDEOGRAPH-9635}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 39044 (\\N{CJK UNIFIED IDEOGRAPH-9884}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n",
+ "/usr/local/lib/python3.10/dist-packages/IPython/core/pylabtools.py:151: UserWarning: Glyph 27979 (\\N{CJK UNIFIED IDEOGRAPH-6D4B}) missing from current font.\n",
+ " fig.canvas.print_figure(bytes_io, **kw)\n"
+ ]
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "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AACoZI1IERIRAACgOIkIAABUskakCIkIAABQnEYEAAAoztQsAACoZGpWERIRAACgOIkIAABUqK9f2dxD2CRIRAAAgOIkIgAAUMkakSIkIgAAQHESEQAAqFQvESlBIgIAABQnEQEAgErWiBQhEQEAAIqTiAAAQCVrRIqQiAAAAMVJRAAAoJI1IkVIRAAAgOIkIgAAUMkakSIkIgAAQHESEQAAqGSNSBESEQAAoDiNCAAAUJypWQAAUMnUrCIkIgAAQHESEQAAqGT73iIkIgAAQHESEQAAqGSNSBESEQAAoDiJCAAAVLJGpAiJCAAAUJxEBAAAKlkjUoREBAAAKE4iAgAAlawRKUIiAgAAFCcRAQCAStaIFCERAQAAipOIAABAJYlIERIRAACgOIkIAABUqq9v7hFsEiQiAABAcRIRAACoZI1IERIRAACgOI0IAABQnKlZAABQydSsIiQiAABAcRIRAACoVC8RKUEiAgAAFCcRAQCAStaIFCERAQAAipOIAABApfr65h7BJkEiAgAAFCcRAQCAStaIFCERAQAAipOIAABAJYlIERIRAACgOIkIAABU8mb1IiQiAABAcRoRAACoUF9XX+xoitGjR2e//fZL27Zt06lTpwwcODCPP/54o5rXX389Q4cOzbbbbputttoqxx13XObMmdOoZvbs2RkwYEC23HLLdOrUKWeffXZWrFjRqGby5MnZZ599Ul1dnZ133jnjxo1bbTxXXHFF3vve96Z169bp06dP7rvvviY9j0YEAAA2AFOmTMnQoUNzzz33ZOLEiVm+fHmOOOKILF68uKFm+PDh+e1vf5ubb745U6ZMyQsvvJBjjz224frKlSszYMCALFu2LHfffXeuv/76jBs3Lueff35DzaxZszJgwIAcdthhmTFjRs4666yceuqpufPOOxtqbrzxxowYMSIXXHBBHnzwwey1116pqanJ3Llz1/p5qurrN75XRy5/6enmHgLAOjVg739v7iEArFO/e25Ccw/hTb129ZeKfVfLU8Zk6dKljc5VV1enurr6bT87b968dOrUKVOmTMnBBx+cBQsWZLvttssNN9yQT3ziE0mSmTNnZrfddsu0adNywAEH5I477sjRRx+dF154IZ07d06SXH311TnnnHMyb968tGrVKuecc05uu+22PPLIIw3fdcIJJ2T+/PmZMOGNf299+vTJfvvtl7FjxyZJ6urqsv322+fMM8/Mueeeu1bPLhEBAIBmMnr06LRv377RMXr06LX67IIFC5Ik22yzTZJk+vTpWb58efr169dQs+uuu2aHHXbItGnTkiTTpk1Lz549G5qQJKmpqcnChQvz6KOPNtRU3mNVzap7LFu2LNOnT29U06JFi/Tr16+hZm3YNQsAAJrJyJEjM2LEiEbn1iYNqaury1lnnZUPfehD2WOPPZIktbW1adWqVTp06NCotnPnzqmtrW2oqWxCVl1fde2tahYuXJglS5bklVdeycqVK9dYM3PmzLcd+yoaEQAAqFRw+961nYb1fw0dOjSPPPJI/vSnP70LoyrD1CwAANiADBs2LOPHj88f/vCHdO/eveF8ly5dsmzZssyfP79R/Zw5c9KlS5eGmv+7i9aqn9+upl27dtliiy3SsWPHtGzZco01q+6xNjQiAABQqa6+3NEE9fX1GTZsWG655Zbcdddd2WmnnRpd7927dzbffPNMmjSp4dzjjz+e2bNnp2/fvkmSvn375uGHH260u9XEiRPTrl279OjRo6Gm8h6ralbdo1WrVundu3ejmrq6ukyaNKmhZm2YmgUAABuAoUOH5oYbbsivf/3rtG3btmFNR/v27bPFFlukffv2GTJkSEaMGJFtttkm7dq1y5lnnpm+ffvmgAMOSJIcccQR6dGjR04++eSMGTMmtbW1Oe+88zJ06NCGKWKnn356xo4dm69+9av53Oc+l7vuuis33XRTbrvttoaxjBgxIoMGDcq+++6b/fffP5deemkWL16cU045Za2fRyMCAACV6sqtEWmKq666Kkly6KGHNjr/4x//OIMHD06SXHLJJWnRokWOO+64LF26NDU1Nbnyyisbalu2bJnx48fnjDPOSN++fdOmTZsMGjQo3/rWtxpqdtppp9x2220ZPnx4LrvssnTv3j3XXXddampqGmo+9alPZd68eTn//PNTW1ubXr16ZcKECastYH8r3iMCsAHwHhFgY7Nev0fkv8r9mbvlmVe+fdFGSiICAACV1tNEZGNjsToAAFCcRAQAACptfCsX1ksSEQAAoDiJCAAAVLJGpAiJCAAAUJxEBAAAKjXxjee8MxoRNhk/+MmN+f2UP2fWs8+ndXWr9OrZI8PP+Fx22rF7Q83gYV/NA395uNHnjv/YUbngq2cmSWY+8XR++LOb8uBDj2b+/IXp1rVzPjnwqJz8yYEN9fNeejkXjf1BHp35RGY//0JO+sQxOfes0xvdc+LkP+cHP7kxz/3jhaxYsSI7dH9PBp14bI7pf/i79xsAbBJOHv6ZnDziM43OPffkcxly2OfTtsNWOXnEyel9cO90es92WfDPBbn7zmkZ9/3r89qrrzXU//s3z8ju+/bIjh/cMc89+VzO6D+00f02r948Xxr9xXyg587ZYecdcu+kezPq1G8FoCk0ImwyHpjxcE489qPZY7ddsmLlylx2zbicNvzr+fXPr8mWW7RuqPvEMf0z7NSTG35u3bq64dd/e/yJbLN1h3z3/LPTpdN2mfHIY/nm9y5PyxYt8ulPHJMkWbZ8ebbu0D6nDTohP73xljWOpX27tjlt0Key047bZ/PNNsuUu+/LN/7jP7Pt1h3yoT6936XfAWBT8czjz+ScE0c2/Lxyxcokybadt822nbfNDy78QZ59YnY6v6dTvjj6zGzbeZt8+/TvNLrHhJt+l117fTDv222n1e7fskWLLH19aW790a/z4aM+/O4+DDSHemtEStCIsMm45j8vbPTzd74+IgcffWL+9vgT2bdXz4bzraur03HbbdZ4j2OPrmn08/bv6Zq/PvJYfj/l7oZG5D1dO2fk/09Abrntd2u8z/777Nno55M/OTC/ueP3efCvj2pEgH/ZyhUr88q8V1Y7/8zjz+bbX/jfPwtffPbF/HjM9TnnsrPTomWL1K184y9fV15wVZKkwzbt19iIvL5kaf7ra2OTJLvvt3u2atfm3XgMYCPXrI3ISy+9lB/96EeZNm1aamtrkyRdunTJgQcemMGDB2e77bZrzuGxkVu0+I1pCO3btW10/raJf8j43/0hHbfZOod8qE9OP+XEbNG69ZpukSR5ddHitG+31TseR319fe6dPiPPzH4+w8/43Du+D8Aq79npPfnFAz/PsteX5bEHH8sPv/vjzHth3hpr27Rtk9cWvdbQhACxRqSQZmtE7r///tTU1GTLLbdMv379sssuuyRJ5syZk8svvzzf/e53c+edd2bfffd9y/ssXbo0S5cubXSuxdKlqa6ufpNPQFJXV5fvXnZN9t6zRz7wvvc2nB/wkUPTrUvnbNdxm/z9yVm55Kof5ZnZz+ey0d9Y433+8vDfcuekqbniom82eQyvLlqcfxv4mSxftjwtWrbIeV8emgP33+edPhJAkmTmX2bmohEX5/mnns82nbfJZ846Kf/5q+/ntH6nZ8niJY1q223dLid96cTcfsMdzTRaYFPWbI3ImWeemeOPPz5XX311qqqqGl2rr6/P6aefnjPPPDPTpk17y/uMHj063/xm478Ennf2F3P+V7+0zsfMxuPCi6/Ik08/k59c9f1G54//2FENv97l/Ttlu47bZMgXR2b28y9kh+7dGtU+8fQz+eK538wZnzvpHU2narPlFvnVuCvy2mtLcs/0Gbnov36Q7t26rjZtC6Ap7p/8QMOvZ82clZl/mZmfTftJDjn64Ey48c6Ga1tutWUuvP5bmf3E7Pz0P3/WHEOF9Va994gU0WyNyF//+teMGzdutSYkSaqqqjJ8+PDsvffeb3ufkSNHZsSIEY3OtXj1H+tsnGx8vnPxlZly9325/oqL0qXTW0//69lj1yTJc/94sVEj8tSsZzPkiyPziWOOzBcGn/iOxtGiRYuGe+66y/vz9DPP5bqf3qgRAdapxQsX5/lZ/0i39/7vn2FbtNki3/nphXlt0ZKM+vy3GhazA5TUbC807NKlS+677743vX7fffelc+fOb3uf6urqtGvXrtFhWhZrUl9fn+9cfGUmTb07P7r8u+nercvbfmbmE08lSaPF608+/WxOOfPcfOzIfvnSFwavs/HV1ddl2fLl6+x+AEnSesvW6bpj17w89+UkbyQho3/+H1mxfEUu+NyoLF/qzx2geTRbIvKVr3wlp512WqZPn57DDz+8oemYM2dOJk2alB/84Af5/ve//zZ3gbV34cVX5PaJk3P5d89Pmy23yEv/fOM/yltt1Satq6sz+/kXcvvEyTmo737p0L5d/v7krHzv8muyb6898sGd39g15omnn8mQM8/NgX16Z9AJH2+4R4sWLbLN1h0avmvm399oYF577fW8Mn9BZv79qWy++WZ5/047JnnjnSa77/qBbP+erlm2fHn+OO3+jJ9wV877yrCCvyPAxujz552ae35/b+Y+Pzfbdt4mnx1xcupWrswffj35/zch30n1Fq3zvS+NyZZtt8yWbbdMkiz454LU/f/pKN3e2zWtt9wiW2+3dVq1rs77erwvSTL7idlZsXxFkmSHD+yQzTbfLG07tM0WbbZoqHn6b083w1PDOmaxehFV9fX1zfY7feONN+aSSy7J9OnTs3LlG7Fwy5Yt07t374wYMSKf/OQn39F9l7/kD0FWt8eHjlzj+Qu/NiIDB3wkL86Zl5HfGpMnnn42S15/PV06bZfDDz4wXxh8QrZq88bWlFf88Ge56kc/X+0e3bp0yu9+df1bfldlzeXXXp8Jk6ZmztyXUl3dKjvtuH0+c/zHcmS/Q9bFo7IRGrD3vzf3ENhAfO2Kc9OzT8+07dA2C15ekEfvfzQ/HnN9Xnz2xex5wJ75/s1j1vi5k/sOypzn5yRJLrppTPbqu/o00cqan9x9fbpsv/rMhSO2778On4aN2e+em9DcQ3hTi7/z2WLf1ebrPyn2XeubZm1EVlm+fHleeumlJEnHjh2z+eab/2v304gAGxmNCLCxWa8bkQs/U+y72py36W4WsV680HDzzTdP165dm3sYAABAIetFIwIAAOsNa0SKaLZdswAAgE2XRAQAACp5oWEREhEAAKA4iQgAAFSyRqQIiQgAAFCcRAQAACrVWyNSgkQEAAAoTiICAACVrBEpQiICAAAUJxEBAIAK9d4jUoREBAAAKE4iAgAAlawRKUIiAgAAFKcRAQAAijM1CwAAKpmaVYREBAAAKE4iAgAAlept31uCRAQAAChOIgIAAJWsESlCIgIAABQnEQEAgAr1EpEiJCIAAEBxEhEAAKgkESlCIgIAABQnEQEAgEp13iNSgkQEAAAoTiICAACVrBEpQiICAAAUJxEBAIBKEpEiJCIAAEBxEhEAAKhQXy8RKUEiAgAAFCcRAQCAStaIFCERAQAAitOIAAAAxZmaBQAAlUzNKkIiAgAAFCcRAQCACvUSkSIkIgAAQHESEQAAqCQRKUIiAgAAFCcRAQCASnXNPYBNg0QEAAAoTiICAAAV7JpVhkQEAAAoTiICAACVJCJFSEQAAIDiJCIAAFDJrllFSEQAAIDiJCIAAFDBrlllSEQAAIDiJCIAAFDJGpEiJCIAAEBxGhEAAKA4U7MAAKCCxeplSEQAAIDiJCIAAFDJYvUiJCIAAEBxEhEAAKhQLxEpQiICAAAUJxEBAIBKEpEiJCIAAEBxEhEAAKhgjUgZEhEAAKA4iQgAAFSSiBQhEQEAAIqTiAAAQAVrRMqQiAAAAMVJRAAAoIJEpAyJCAAAUJxEBAAAKkhEypCIAAAAxUlEAACgUn1Vc49gkyARAQAAitOIAAAAxZmaBQAAFSxWL0MiAgAAFCcRAQCACvV1FquXIBEBAACK04gAAECF+rpyR1NMnTo1H/3oR9OtW7dUVVXl1ltvbXR98ODBqaqqanT079+/Uc3LL7+ck046Ke3atUuHDh0yZMiQLFq0qFHNQw89lIMOOiitW7fO9ttvnzFjxqw2lptvvjm77rprWrdunZ49e+b2229v2sNEIwIAABuExYsXZ6+99soVV1zxpjX9+/fPiy++2HD84he/aHT9pJNOyqOPPpqJEydm/PjxmTp1ak477bSG6wsXLswRRxyRHXfcMdOnT89FF12UUaNG5dprr22oufvuu3PiiSdmyJAh+ctf/pKBAwdm4MCBeeSRR5r0PFX19fX1TfrEBmD5S0839xAA1qkBe/97cw8BYJ363XMTmnsIb+offf+t2Hd1nHxHli5d2uhcdXV1qqur3/JzVVVVueWWWzJw4MCGc4MHD878+fNXS0pWeeyxx9KjR4/cf//92XfffZMkEyZMyFFHHZXnn38+3bp1y1VXXZWvf/3rqa2tTatWrZIk5557bm699dbMnDkzSfKpT30qixcvzvjx4xvufcABB6RXr165+uqr1/rZJSIAANBMRo8enfbt2zc6Ro8e/Y7vN3ny5HTq1Ckf/OAHc8YZZ+Sf//xnw7Vp06alQ4cODU1IkvTr1y8tWrTIvffe21Bz8MEHNzQhSVJTU5PHH388r7zySkNNv379Gn1vTU1Npk2b1qSx2jULAAAqlHyPyMiRIzNixIhG594uDXkz/fv3z7HHHpuddtopTz31VL72ta/lyCOPzLRp09KyZcvU1tamU6dOjT6z2WabZZtttkltbW2SpLa2NjvttFOjms6dOzdc23rrrVNbW9twrrJm1T3WlkYEAACaydpMw1pbJ5xwQsOve/bsmT333DPvf//7M3ny5Bx++OHr5DvWJVOzAACgQn1dVbHj3fS+970vHTt2zJNPPpkk6dKlS+bOnduoZsWKFXn55ZfTpUuXhpo5c+Y0qln189vVrLq+tjQiAACwEXr++efzz3/+M127dk2S9O3bN/Pnz8/06dMbau66667U1dWlT58+DTVTp07N8uXLG2omTpyYD37wg9l6660baiZNmtTouyZOnJi+ffs2aXwaEQAAqFBfX+5oikWLFmXGjBmZMWNGkmTWrFmZMWNGZs+enUWLFuXss8/OPffck2eeeSaTJk3Kxz72sey8886pqalJkuy2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370P5sj+J2b6A39dZ/eH5mStUxlV9c34N/0//vGPWbx4cfr377/G64sXL84DDzyQQw45pEn33ayVrQOBjUvrzVo19xAA1qlFr81q7iG8qZN3PLbYd/302f8p9l3rm2ZNRA466KC3vN6mTZsmNyEAAPCvkIeUsV5v3wsAAGycmjURAQCA9U2dTKQIiQgAAFCcRAQAACps6m88L0UiAgAAFKcRAQAAijM1CwAAKtQ19wA2ERIRAACgOIkIAABUsH1vGRIRAACgOIkIAABUsH1vGRIRAACgOIkIAABUsGtWGRIRAACgOIkIAABUqK+3RqQEiQgAAFCcRAQAACp4j0gZEhEAAKA4iQgAAFSwa1YZEhEAAKA4iQgAAFTwZvUyJCIAAEBxEhEAAKhg16wyJCIAAEBxGhEAAKA4U7MAAKBCfb2pWSVIRAAAgOIkIgAAUMELDcuQiAAAAMVJRAAAoIIXGpYhEQEAgA3AqFGjUlVV1ejYddddG66//vrrGTp0aLbddttstdVWOe644zJnzpxG95g9e3YGDBiQLbfcMp06dcrZZ5+dFStWNKqZPHly9tlnn1RXV2fnnXfOuHHj3pXn0YgAAECFutQXO5pq9913z4svvthw/OlPf2q4Nnz48Pz2t7/NzTffnClTpuSFF17Iscce23B95cqVGTBgQJYtW5a77747119/fcaNG5fzzz+/oWbWrFkZMGBADjvssMyYMSNnnXVWTj311Nx5553/2m/qGlTVb4T7k23W6j3NPQSAdar1Zq2aewgA69Si12Y19xDeVL/ta4p91++fW/u/4I8aNSq33nprZsyYsdq1BQsWZLvttssNN9yQT3ziE0mSmTNnZrfddsu0adNywAEH5I477sjRRx+dF154IZ07d06SXH311TnnnHMyb968tGrVKuecc05uu+22PPLIIw33PuGEEzJ//vxMmDDhX3vY/0MiAgAAFerr64sdS5cuzcKFCxsdS5cufdOxPfHEE+nWrVve97735aSTTsrs2bOTJNOnT8/y5cvTr1+/htpdd901O+ywQ6ZNm5YkmTZtWnr27NnQhCRJTU1NFi5cmEcffbShpvIeq2pW3WNd0ogAAEAzGT16dNq3b9/oGD169Bpr+/Tpk3HjxmXChAm56qqrMmvWrBx00EF59dVXU1tbm1atWqVDhw6NPtO5c+fU1tYmSWpraxs1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\n"
+ },
+ "metadata": {}
+ }
+ ],
+ "source": [
+ "## your code here\n",
+ "import numpy as np\n",
+ "\n",
+ "def PredictProb_Func(model,strs):\n",
+ "# 获取测试集上的预测概率\n",
+ " probabilities = model.predict_proba(X_test)\n",
+ "\n",
+ " # 将概率转换为基于阈值的预测\n",
+ " # 阈值设置为 0.3\n",
+ " threshold = 0.3\n",
+ " predictions = np.where(probabilities[:, 1] > threshold, 1, 0)\n",
+ "\n",
+ " cm = confusion_matrix(y_test, predictions)\n",
+ " print(classification_report(y_test, predictions))\n",
+ "\n",
+ " # 使用 Seaborn 绘制混淆矩阵的热图\n",
+ " plt.figure(figsize=(10, 7))\n",
+ " sns.heatmap(cm, annot=True, fmt=\"d\")\n",
+ " plt.title(strs + \"混淆矩阵\")\n",
+ " plt.ylabel('实际值')\n",
+ " plt.xlabel('预测值')\n",
+ " plt.show()\n",
+ "models = [clf_LR,tree,forest,clf_svc,neigh]\n",
+ "model_title = ['Logistic regression', 'Decision Tree', 'Random Forest', 'SVM', 'KNN']\n",
+ "for i in range(len(models)):\n",
+ " PredictProb_Func(models[i],strs=model_title[i])"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "ICTP-AP",
+ "language": "python",
+ "name": "ictp-ap"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ },
+ "colab": {
+ "provenance": []
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
\ No newline at end of file
diff --git a/2023/homework/shanleilei/homework_credit_scoring_finetune_ensemble (1).ipynb b/2023/homework/shanleilei/homework_credit_scoring_finetune_ensemble (1).ipynb
new file mode 100644
index 00000000..f525356c
--- /dev/null
+++ b/2023/homework/shanleilei/homework_credit_scoring_finetune_ensemble (1).ipynb
@@ -0,0 +1,4564 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "k_CLEMjrMAqJ"
+ },
+ "source": [
+ "# 一起来打怪之 Credit Scoring 练习"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "Z0OW7RM-MFT8",
+ "outputId": "72d80441-4c4f-4c58-ee99-c7dfdc090ba7"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Mounted at /content/drive\n"
+ ]
+ }
+ ],
+ "source": [
+ "from google.colab import drive\n",
+ "drive.mount('/content/drive')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "5V6KTIVDMvOq",
+ "outputId": "3e1e6d3c-6445-400e-b244-1c914ba74d61"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "/home\n",
+ "/home\n"
+ ]
+ }
+ ],
+ "source": [
+ "%cd /home\n",
+ "!pwd"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "mG4nJrowMAqN"
+ },
+ "source": [
+ "-------\n",
+ "## >>>说明:\n",
+ "### 1. 答题步骤:\n",
+ "- 回答问题**请保留每一步**操作过程,请不要仅仅给出最后答案\n",
+ "- 请养成代码注释的好习惯\n",
+ "\n",
+ "### 2. 解题思路:\n",
+ "- 为方便大家准确理解题目,在习题实战中有所收获,本文档提供了解题思路提示\n",
+ "- 解题思路**仅供参考**,鼓励原创解题方法\n",
+ "- 为督促同学们自己思考,解题思路内容设置为**注释**,请注意查看\n",
+ "\n",
+ "### 3. 所用数据:\n",
+ "- 问题使用了多个数据库,请注意导入每个数据库后都先**查看和了解数据的基本性质**,后面的问题不再一一提醒"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "-pqLruT0MAqO"
+ },
+ "source": [
+ "--------\n",
+ "## 操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "LqukVKStMAqO"
+ },
+ "source": [
+ "### 信用卡欺诈项目"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wi25E5aoMAqO"
+ },
+ "source": [
+ " #### 前期数据导入,预览及处理(此部分勿修改,涉及的数据文件无需复制移动)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 224
+ },
+ "id": "lgp-DAsbMAqP",
+ "outputId": "058ae1bc-ed01-4dae-bdd2-e13c8cca3df7",
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SeriousDlqin2yrs \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 \n",
+ " 1 \n",
+ " 0.766127 \n",
+ " 45.0 \n",
+ " 2.0 \n",
+ " 0.802982 \n",
+ " 9120.0 \n",
+ " 13.0 \n",
+ " 0.0 \n",
+ " 6.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " \n",
+ " \n",
+ " 1 \n",
+ " 0 \n",
+ " 0.957151 \n",
+ " 40.0 \n",
+ " 0.0 \n",
+ " 0.121876 \n",
+ " 2600.0 \n",
+ " 4.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " \n",
+ " \n",
+ " 2 \n",
+ " 0 \n",
+ " 0.658180 \n",
+ " 38.0 \n",
+ " 1.0 \n",
+ " 0.085113 \n",
+ " 3042.0 \n",
+ " 2.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 3 \n",
+ " 0 \n",
+ " 0.233810 \n",
+ " 30.0 \n",
+ " 0.0 \n",
+ " 0.036050 \n",
+ " 3300.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 4 \n",
+ " 0 \n",
+ " 0.907239 \n",
+ " 49.0 \n",
+ " 1.0 \n",
+ " 0.024926 \n",
+ " 63588.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " SeriousDlqin2yrs RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "0 1 0.766127 45.0 \n",
+ "1 0 0.957151 40.0 \n",
+ "2 0 0.658180 38.0 \n",
+ "3 0 0.233810 30.0 \n",
+ "4 0 0.907239 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "0 2.0 0.802982 9120.0 \n",
+ "1 0.0 0.121876 2600.0 \n",
+ "2 1.0 0.085113 3042.0 \n",
+ "3 0.0 0.036050 3300.0 \n",
+ "4 1.0 0.024926 63588.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "0 13.0 0.0 \n",
+ "1 4.0 0.0 \n",
+ "2 2.0 1.0 \n",
+ "3 5.0 0.0 \n",
+ "4 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "0 6.0 0.0 \n",
+ "1 0.0 0.0 \n",
+ "2 0.0 0.0 \n",
+ "3 0.0 0.0 \n",
+ "4 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents \n",
+ "0 2.0 \n",
+ "1 1.0 \n",
+ "2 0.0 \n",
+ "3 0.0 \n",
+ "4 0.0 "
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "pd.set_option('display.max_columns', 500)\n",
+ "import zipfile\n",
+ "with zipfile.ZipFile('KaggleCredit2.csv.zip', 'r') as z:\n",
+ " f = z.open('KaggleCredit2.csv')\n",
+ " data = pd.read_csv(f, index_col=0)\n",
+ "data.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "Mc4-fzrqMAqR",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "c2b92b9e-08e5-419a-f9bf-52fb4749efc6"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(112915, 11)"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 检查数据维度\n",
+ "data.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "IERweTeOMAqR",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "23a41874-77fe-4826-91be-23fd91235033"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SeriousDlqin2yrs 0\n",
+ "RevolvingUtilizationOfUnsecuredLines 0\n",
+ "age 4267\n",
+ "NumberOfTime30-59DaysPastDueNotWorse 0\n",
+ "DebtRatio 0\n",
+ "MonthlyIncome 0\n",
+ "NumberOfOpenCreditLinesAndLoans 0\n",
+ "NumberOfTimes90DaysLate 0\n",
+ "NumberRealEstateLoansOrLines 0\n",
+ "NumberOfTime60-89DaysPastDueNotWorse 0\n",
+ "NumberOfDependents 4267\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 查看数据缺失值情况\n",
+ "data.isnull().sum(axis=0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "4ar24HP0MAqR",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "2360108c-1766-4834-d100-b95f7f5ff050"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ ":3: UserWarning: Pandas doesn't allow columns to be created via a new attribute name - see https://pandas.pydata.org/pandas-docs/stable/indexing.html#attribute-access\n",
+ " data.shapey = data['SeriousDlqin2yrs']\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 清除缺失值\n",
+ "data.dropna(inplace=True)\n",
+ "data.shapey = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "VzIwPYH4MAqS",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "b2d92fb4-ab15-4885-9722-25143a37e5eb"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.06742876076872101"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 取出对应的X和y\n",
+ "y = data['SeriousDlqin2yrs']\n",
+ "X = data.drop('SeriousDlqin2yrs', axis=1)\n",
+ "# 查看平均的欺诈率\n",
+ "y.mean()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "dFhSUyJhMAqS"
+ },
+ "source": [
+ "### 以下为操作题"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "j7Tr10JPMAqS"
+ },
+ "source": [
+ "#### 1.把数据切分成训练集和测试集"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "gI6ZAu6iMAqT",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "a64f0047-5c0a-4fd3-8703-6671037750cc"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "((76053, 10), (32595, 10))"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:查看train_test_split函数\n",
+ "from sklearn.model_selection import train_test_split\n",
+ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)\n",
+ "\n",
+ "X_train.shape, X_test.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 498
+ },
+ "collapsed": true,
+ "id": "N10VpYshMAqT",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "371d1bff-3d3d-4537-f771-9bc7a0656037"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 101322\n",
+ "1 7326\n",
+ "Name: SeriousDlqin2yrs, dtype: int64\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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hDWzZs0a5ebmavz48QoODlZGRoaKi4ut/Xa7XR999JFycnKUmJiofv36qbCw0OdeQ2PHjtXatWs1b948Pf300xoyZIg2btyoYcOG+fuyAQBAF+T3+wh1J9xHCKbgPkIAupOA3kcIAACgqyCEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLEIIQAAYCxCCAAAGIsQAgAAxiKEAACAsQghAABgLEIIAAAYixACAADGIoQAAICxCCEAAGAsQggAABiLEAIAAMYihAAAgLE6PYReeuklBQUFaebMmda2kydPKicnR3379tWNN96ojIwMNTc3+zzv4MGDSktL0w033KD+/fvrqaee0pkzZ3xmPv74Y40cOVLh4eG6+eabVVpaesH5ly9frsGDBysiIkJJSUmqq6vrjMsEAABdUKeG0Pbt2/WnP/1JP/3pT322z5o1S++9957Wr1+vLVu26NChQ7rvvvus/WfPnlVaWppOnTqlbdu2afXq1SotLVVhYaE1c+DAAaWlpemuu+7Srl27NHPmTD322GP68MMPrZl169YpLy9P8+fP186dOzVixAilpqbq8OHDnXnZAACgiwjyer3ezjjwiRMnNHLkSK1YsUILFy5UQkKClixZIrfbrZtuuklr167V/fffL0lqbGzU0KFDVVNTozFjxuiDDz7QPffco0OHDsnhcEiSSkpKNHfuXB05ckRhYWGaO3euysvLtXfvXuucmZmZamlpUUVFhSQpKSlJo0eP1rJlyyRJ7e3tiomJ0fTp05Wfn3/Za/B4PLLb7XK73bLZbP7+Fl3XBueXB3oJuIa+fikt0EsAAL+5mt/fnfaKUE5OjtLS0pSSkuKzvb6+XqdPn/bZHhcXpx/96EeqqamRJNXU1Gj48OFW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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# 通过SeriousDlqin2yrs字段查看正负样本分布情况\n",
+ "# 提示:value_counts\n",
+ "print(y.value_counts())\n",
+ "\n",
+ "# 绘制两种类别的柱状图\n",
+ "# 提示:dataframe可以直接plot(kind='bar')\n",
+ "y.value_counts().plot(kind='bar')\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "73ubVTnSMAqU"
+ },
+ "source": [
+ "#### 2.数据预处理之离散化"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 615
+ },
+ "collapsed": true,
+ "id": "KM7rwQjOMAqU",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "6db15cd8-7764-4f9d-aa12-6eef880d6289"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_class \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 87116 \n",
+ " 0.408449 \n",
+ " 54.0 \n",
+ " 0.0 \n",
+ " 0.206660 \n",
+ " 6696.0 \n",
+ " 20.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (51.0, 54.0] \n",
+ " \n",
+ " \n",
+ " 60949 \n",
+ " 0.236068 \n",
+ " 72.0 \n",
+ " 0.0 \n",
+ " 0.383361 \n",
+ " 13365.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (69.0, 72.0] \n",
+ " \n",
+ " \n",
+ " 81875 \n",
+ " 0.029731 \n",
+ " 65.0 \n",
+ " 1.0 \n",
+ " 0.260219 \n",
+ " 7950.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (63.0, 66.0] \n",
+ " \n",
+ " \n",
+ " 48666 \n",
+ " 0.021520 \n",
+ " 49.0 \n",
+ " 0.0 \n",
+ " 0.548327 \n",
+ " 7500.0 \n",
+ " 12.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (48.0, 51.0] \n",
+ " \n",
+ " \n",
+ " 56435 \n",
+ " 0.450862 \n",
+ " 24.0 \n",
+ " 0.0 \n",
+ " 0.941176 \n",
+ " 900.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (21.0, 24.0] \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 52062 \n",
+ " 0.015245 \n",
+ " 57.0 \n",
+ " 0.0 \n",
+ " 0.101078 \n",
+ " 6400.0 \n",
+ " 9.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " (54.0, 57.0] \n",
+ " \n",
+ " \n",
+ " 101903 \n",
+ " 0.026483 \n",
+ " 42.0 \n",
+ " 0.0 \n",
+ " 0.336710 \n",
+ " 6711.0 \n",
+ " 20.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (39.0, 42.0] \n",
+ " \n",
+ " \n",
+ " 5396 \n",
+ " 0.094593 \n",
+ " 49.0 \n",
+ " 0.0 \n",
+ " 0.098861 \n",
+ " 5269.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (48.0, 51.0] \n",
+ " \n",
+ " \n",
+ " 80798 \n",
+ " 0.133383 \n",
+ " 55.0 \n",
+ " 0.0 \n",
+ " 0.477288 \n",
+ " 10500.0 \n",
+ " 19.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (54.0, 57.0] \n",
+ " \n",
+ " \n",
+ " 102407 \n",
+ " 0.480536 \n",
+ " 49.0 \n",
+ " 0.0 \n",
+ " 0.636136 \n",
+ " 10000.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (48.0, 51.0] \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
76053 rows × 11 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "87116 0.408449 54.0 \n",
+ "60949 0.236068 72.0 \n",
+ "81875 0.029731 65.0 \n",
+ "48666 0.021520 49.0 \n",
+ "56435 0.450862 24.0 \n",
+ "... ... ... \n",
+ "52062 0.015245 57.0 \n",
+ "101903 0.026483 42.0 \n",
+ "5396 0.094593 49.0 \n",
+ "80798 0.133383 55.0 \n",
+ "102407 0.480536 49.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "87116 0.0 0.206660 6696.0 \n",
+ "60949 0.0 0.383361 13365.0 \n",
+ "81875 1.0 0.260219 7950.0 \n",
+ "48666 0.0 0.548327 7500.0 \n",
+ "56435 0.0 0.941176 900.0 \n",
+ "... ... ... ... \n",
+ "52062 0.0 0.101078 6400.0 \n",
+ "101903 0.0 0.336710 6711.0 \n",
+ "5396 0.0 0.098861 5269.0 \n",
+ "80798 0.0 0.477288 10500.0 \n",
+ "102407 0.0 0.636136 10000.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "87116 20.0 0.0 \n",
+ "60949 10.0 0.0 \n",
+ "81875 8.0 0.0 \n",
+ "48666 12.0 0.0 \n",
+ "56435 3.0 0.0 \n",
+ "... ... ... \n",
+ "52062 9.0 0.0 \n",
+ "101903 20.0 0.0 \n",
+ "5396 8.0 0.0 \n",
+ "80798 19.0 0.0 \n",
+ "102407 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 3.0 0.0 \n",
+ "81875 2.0 0.0 \n",
+ "48666 2.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 2.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 3.0 0.0 \n",
+ "102407 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_class \n",
+ "87116 2.0 (51.0, 54.0] \n",
+ "60949 0.0 (69.0, 72.0] \n",
+ "81875 2.0 (63.0, 66.0] \n",
+ "48666 0.0 (48.0, 51.0] \n",
+ "56435 0.0 (21.0, 24.0] \n",
+ "... ... ... \n",
+ "52062 1.0 (54.0, 57.0] \n",
+ "101903 2.0 (39.0, 42.0] \n",
+ "5396 0.0 (48.0, 51.0] \n",
+ "80798 0.0 (54.0, 57.0] \n",
+ "102407 0.0 (48.0, 51.0] \n",
+ "\n",
+ "[76053 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对年龄按照3岁一个区间进行离散化\n",
+ "# 提示:可以先计算出分桶边界,再基于pandas的cut函数进行离散化(分箱、分桶)\n",
+ "# 确定age的最小值和最大值\n",
+ "age_min = int(X_train['age'].min())\n",
+ "age_max = int(X_train['age'].max())\n",
+ "\n",
+ "# 创建区间边界\n",
+ "bins = list(range(age_min, age_max + 3, 3))\n",
+ "\n",
+ "# 使用cut函数进行离散化\n",
+ "X_train['age_class'] = pd.cut(X_train.age, bins=bins, include_lowest=True)\n",
+ "X_train"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 615
+ },
+ "id": "ZC-ztuOkXjyT",
+ "outputId": "c3d292aa-ba62-4e4c-98b1-0ba0cf75978e"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " age \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_class \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 94876 \n",
+ " 0.110716 \n",
+ " 71.0 \n",
+ " 0.0 \n",
+ " 0.379946 \n",
+ " 7100.0 \n",
+ " 19.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (69.0, 72.0] \n",
+ " \n",
+ " \n",
+ " 74492 \n",
+ " 0.022211 \n",
+ " 58.0 \n",
+ " 0.0 \n",
+ " 0.266376 \n",
+ " 11250.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (57.0, 60.0] \n",
+ " \n",
+ " \n",
+ " 48991 \n",
+ " 0.995334 \n",
+ " 54.0 \n",
+ " 0.0 \n",
+ " 0.229102 \n",
+ " 2583.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " (51.0, 54.0] \n",
+ " \n",
+ " \n",
+ " 109765 \n",
+ " 0.012314 \n",
+ " 80.0 \n",
+ " 0.0 \n",
+ " 0.002997 \n",
+ " 1000.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " (78.0, 81.0] \n",
+ " \n",
+ " \n",
+ " 16286 \n",
+ " 0.671940 \n",
+ " 50.0 \n",
+ " 0.0 \n",
+ " 0.316112 \n",
+ " 15000.0 \n",
+ " 15.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (48.0, 51.0] \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 105990 \n",
+ " 0.432024 \n",
+ " 74.0 \n",
+ " 0.0 \n",
+ " 0.732508 \n",
+ " 2100.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (72.0, 75.0] \n",
+ " \n",
+ " \n",
+ " 31564 \n",
+ " 1.000000 \n",
+ " 51.0 \n",
+ " 0.0 \n",
+ " 0.293369 \n",
+ " 4086.0 \n",
+ " 7.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (48.0, 51.0] \n",
+ " \n",
+ " \n",
+ " 47890 \n",
+ " 0.728543 \n",
+ " 60.0 \n",
+ " 1.0 \n",
+ " 0.305331 \n",
+ " 3094.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (57.0, 60.0] \n",
+ " \n",
+ " \n",
+ " 102980 \n",
+ " 0.056936 \n",
+ " 62.0 \n",
+ " 0.0 \n",
+ " 0.173340 \n",
+ " 22700.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " (60.0, 63.0] \n",
+ " \n",
+ " \n",
+ " 81410 \n",
+ " 0.319929 \n",
+ " 72.0 \n",
+ " 0.0 \n",
+ " 0.397048 \n",
+ " 4200.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " (69.0, 72.0] \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
32595 rows × 11 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines age \\\n",
+ "94876 0.110716 71.0 \n",
+ "74492 0.022211 58.0 \n",
+ "48991 0.995334 54.0 \n",
+ "109765 0.012314 80.0 \n",
+ "16286 0.671940 50.0 \n",
+ "... ... ... \n",
+ "105990 0.432024 74.0 \n",
+ "31564 1.000000 51.0 \n",
+ "47890 0.728543 60.0 \n",
+ "102980 0.056936 62.0 \n",
+ "81410 0.319929 72.0 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "94876 0.0 0.379946 7100.0 \n",
+ "74492 0.0 0.266376 11250.0 \n",
+ "48991 0.0 0.229102 2583.0 \n",
+ "109765 0.0 0.002997 1000.0 \n",
+ "16286 0.0 0.316112 15000.0 \n",
+ "... ... ... ... \n",
+ "105990 0.0 0.732508 2100.0 \n",
+ "31564 0.0 0.293369 4086.0 \n",
+ "47890 1.0 0.305331 3094.0 \n",
+ "102980 0.0 0.173340 22700.0 \n",
+ "81410 0.0 0.397048 4200.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "94876 19.0 0.0 \n",
+ "74492 10.0 0.0 \n",
+ "48991 3.0 0.0 \n",
+ "109765 2.0 0.0 \n",
+ "16286 15.0 0.0 \n",
+ "... ... ... \n",
+ "105990 10.0 0.0 \n",
+ "31564 7.0 2.0 \n",
+ "47890 5.0 0.0 \n",
+ "102980 7.0 0.0 \n",
+ "81410 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "94876 1.0 0.0 \n",
+ "74492 1.0 0.0 \n",
+ "48991 1.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 1.0 0.0 \n",
+ "... ... ... \n",
+ "105990 2.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 1.0 0.0 \n",
+ "102980 2.0 0.0 \n",
+ "81410 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_class \n",
+ "94876 0.0 (69.0, 72.0] \n",
+ "74492 2.0 (57.0, 60.0] \n",
+ "48991 3.0 (51.0, 54.0] \n",
+ "109765 1.0 (78.0, 81.0] \n",
+ "16286 2.0 (48.0, 51.0] \n",
+ "... ... ... \n",
+ "105990 0.0 (72.0, 75.0] \n",
+ "31564 0.0 (48.0, 51.0] \n",
+ "47890 0.0 (57.0, 60.0] \n",
+ "102980 2.0 (60.0, 63.0] \n",
+ "81410 0.0 (69.0, 72.0] \n",
+ "\n",
+ "[32595 rows x 11 columns]"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "X_test['age_class'] = pd.cut(X_test.age, bins=bins, include_lowest=True)\n",
+ "X_test"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "g4DQ_hVfMAqU"
+ },
+ "source": [
+ "#### 3.数据预处理之独热向量编码"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 461
+ },
+ "collapsed": true,
+ "id": "pmcPB4drMAqU",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "dbaf9e7e-9947-4c04-b20e-de00b66cea9e"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_class_(-0.001, 3.0] \n",
+ " age_class_(3.0, 6.0] \n",
+ " age_class_(6.0, 9.0] \n",
+ " age_class_(9.0, 12.0] \n",
+ " age_class_(12.0, 15.0] \n",
+ " age_class_(15.0, 18.0] \n",
+ " age_class_(18.0, 21.0] \n",
+ " age_class_(21.0, 24.0] \n",
+ " age_class_(24.0, 27.0] \n",
+ " age_class_(27.0, 30.0] \n",
+ " age_class_(30.0, 33.0] \n",
+ " age_class_(33.0, 36.0] \n",
+ " age_class_(36.0, 39.0] \n",
+ " age_class_(39.0, 42.0] \n",
+ " age_class_(42.0, 45.0] \n",
+ " age_class_(45.0, 48.0] \n",
+ " age_class_(48.0, 51.0] \n",
+ " age_class_(51.0, 54.0] \n",
+ " age_class_(54.0, 57.0] \n",
+ " age_class_(57.0, 60.0] \n",
+ " age_class_(60.0, 63.0] \n",
+ " age_class_(63.0, 66.0] \n",
+ " age_class_(66.0, 69.0] \n",
+ " age_class_(69.0, 72.0] \n",
+ " age_class_(72.0, 75.0] \n",
+ " age_class_(75.0, 78.0] \n",
+ " age_class_(78.0, 81.0] \n",
+ " age_class_(81.0, 84.0] \n",
+ " age_class_(84.0, 87.0] \n",
+ " age_class_(87.0, 90.0] \n",
+ " age_class_(90.0, 93.0] \n",
+ " age_class_(93.0, 96.0] \n",
+ " age_class_(96.0, 99.0] \n",
+ " age_class_(99.0, 102.0] \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 87116 \n",
+ " 0.408449 \n",
+ " 0.0 \n",
+ " 0.206660 \n",
+ " 6696.0 \n",
+ " 20.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 60949 \n",
+ " 0.236068 \n",
+ " 0.0 \n",
+ " 0.383361 \n",
+ " 13365.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 81875 \n",
+ " 0.029731 \n",
+ " 1.0 \n",
+ " 0.260219 \n",
+ " 7950.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 48666 \n",
+ " 0.021520 \n",
+ " 0.0 \n",
+ " 0.548327 \n",
+ " 7500.0 \n",
+ " 12.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 56435 \n",
+ " 0.450862 \n",
+ " 0.0 \n",
+ " 0.941176 \n",
+ " 900.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 52062 \n",
+ " 0.015245 \n",
+ " 0.0 \n",
+ " 0.101078 \n",
+ " 6400.0 \n",
+ " 9.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 101903 \n",
+ " 0.026483 \n",
+ " 0.0 \n",
+ " 0.336710 \n",
+ " 6711.0 \n",
+ " 20.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 5396 \n",
+ " 0.094593 \n",
+ " 0.0 \n",
+ " 0.098861 \n",
+ " 5269.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 80798 \n",
+ " 0.133383 \n",
+ " 0.0 \n",
+ " 0.477288 \n",
+ " 10500.0 \n",
+ " 19.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 102407 \n",
+ " 0.480536 \n",
+ " 0.0 \n",
+ " 0.636136 \n",
+ " 10000.0 \n",
+ " 8.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
76053 rows × 43 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines \\\n",
+ "87116 0.408449 \n",
+ "60949 0.236068 \n",
+ "81875 0.029731 \n",
+ "48666 0.021520 \n",
+ "56435 0.450862 \n",
+ "... ... \n",
+ "52062 0.015245 \n",
+ "101903 0.026483 \n",
+ "5396 0.094593 \n",
+ "80798 0.133383 \n",
+ "102407 0.480536 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "87116 0.0 0.206660 6696.0 \n",
+ "60949 0.0 0.383361 13365.0 \n",
+ "81875 1.0 0.260219 7950.0 \n",
+ "48666 0.0 0.548327 7500.0 \n",
+ "56435 0.0 0.941176 900.0 \n",
+ "... ... ... ... \n",
+ "52062 0.0 0.101078 6400.0 \n",
+ "101903 0.0 0.336710 6711.0 \n",
+ "5396 0.0 0.098861 5269.0 \n",
+ "80798 0.0 0.477288 10500.0 \n",
+ "102407 0.0 0.636136 10000.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "87116 20.0 0.0 \n",
+ "60949 10.0 0.0 \n",
+ "81875 8.0 0.0 \n",
+ "48666 12.0 0.0 \n",
+ "56435 3.0 0.0 \n",
+ "... ... ... \n",
+ "52062 9.0 0.0 \n",
+ "101903 20.0 0.0 \n",
+ "5396 8.0 0.0 \n",
+ "80798 19.0 0.0 \n",
+ "102407 8.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 3.0 0.0 \n",
+ "81875 2.0 0.0 \n",
+ "48666 2.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 2.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 3.0 0.0 \n",
+ "102407 2.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_class_(-0.001, 3.0] age_class_(3.0, 6.0] \\\n",
+ "87116 2.0 0.0 0.0 \n",
+ "60949 0.0 0.0 0.0 \n",
+ "81875 2.0 0.0 0.0 \n",
+ "48666 0.0 0.0 0.0 \n",
+ "56435 0.0 0.0 0.0 \n",
+ "... ... ... ... \n",
+ "52062 1.0 0.0 0.0 \n",
+ "101903 2.0 0.0 0.0 \n",
+ "5396 0.0 0.0 0.0 \n",
+ "80798 0.0 0.0 0.0 \n",
+ "102407 0.0 0.0 0.0 \n",
+ "\n",
+ " age_class_(6.0, 9.0] age_class_(9.0, 12.0] age_class_(12.0, 15.0] \\\n",
+ "87116 0.0 0.0 0.0 \n",
+ "60949 0.0 0.0 0.0 \n",
+ "81875 0.0 0.0 0.0 \n",
+ "48666 0.0 0.0 0.0 \n",
+ "56435 0.0 0.0 0.0 \n",
+ "... ... ... ... \n",
+ "52062 0.0 0.0 0.0 \n",
+ "101903 0.0 0.0 0.0 \n",
+ "5396 0.0 0.0 0.0 \n",
+ "80798 0.0 0.0 0.0 \n",
+ "102407 0.0 0.0 0.0 \n",
+ "\n",
+ " age_class_(15.0, 18.0] age_class_(18.0, 21.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(21.0, 24.0] age_class_(24.0, 27.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 1.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(27.0, 30.0] age_class_(30.0, 33.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(33.0, 36.0] age_class_(36.0, 39.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(39.0, 42.0] age_class_(42.0, 45.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 1.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(45.0, 48.0] age_class_(48.0, 51.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 1.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 1.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 1.0 \n",
+ "\n",
+ " age_class_(51.0, 54.0] age_class_(54.0, 57.0] \\\n",
+ "87116 1.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 1.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 1.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(57.0, 60.0] age_class_(60.0, 63.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(63.0, 66.0] age_class_(66.0, 69.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 1.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(69.0, 72.0] age_class_(72.0, 75.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 1.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(75.0, 78.0] age_class_(78.0, 81.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(81.0, 84.0] age_class_(84.0, 87.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(87.0, 90.0] age_class_(90.0, 93.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(93.0, 96.0] age_class_(96.0, 99.0] \\\n",
+ "87116 0.0 0.0 \n",
+ "60949 0.0 0.0 \n",
+ "81875 0.0 0.0 \n",
+ "48666 0.0 0.0 \n",
+ "56435 0.0 0.0 \n",
+ "... ... ... \n",
+ "52062 0.0 0.0 \n",
+ "101903 0.0 0.0 \n",
+ "5396 0.0 0.0 \n",
+ "80798 0.0 0.0 \n",
+ "102407 0.0 0.0 \n",
+ "\n",
+ " age_class_(99.0, 102.0] \n",
+ "87116 0.0 \n",
+ "60949 0.0 \n",
+ "81875 0.0 \n",
+ "48666 0.0 \n",
+ "56435 0.0 \n",
+ "... ... \n",
+ "52062 0.0 \n",
+ "101903 0.0 \n",
+ "5396 0.0 \n",
+ "80798 0.0 \n",
+ "102407 0.0 \n",
+ "\n",
+ "[76053 rows x 43 columns]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对上述分箱后的年龄段进行独热向量编码\n",
+ "# 提示:使用pandas的get_dummies完成\n",
+ "X_train = pd.get_dummies(X_train, dtype='float')\n",
+ "X_train = X_train.drop('age', axis=1)\n",
+ "X_train"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 461
+ },
+ "id": "vX-1iSNdWsQZ",
+ "outputId": "f771950f-0e56-4d3a-9ab9-2f9b410e59b7"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " RevolvingUtilizationOfUnsecuredLines \n",
+ " NumberOfTime30-59DaysPastDueNotWorse \n",
+ " DebtRatio \n",
+ " MonthlyIncome \n",
+ " NumberOfOpenCreditLinesAndLoans \n",
+ " NumberOfTimes90DaysLate \n",
+ " NumberRealEstateLoansOrLines \n",
+ " NumberOfTime60-89DaysPastDueNotWorse \n",
+ " NumberOfDependents \n",
+ " age_class_(-0.001, 3.0] \n",
+ " age_class_(3.0, 6.0] \n",
+ " age_class_(6.0, 9.0] \n",
+ " age_class_(9.0, 12.0] \n",
+ " age_class_(12.0, 15.0] \n",
+ " age_class_(15.0, 18.0] \n",
+ " age_class_(18.0, 21.0] \n",
+ " age_class_(21.0, 24.0] \n",
+ " age_class_(24.0, 27.0] \n",
+ " age_class_(27.0, 30.0] \n",
+ " age_class_(30.0, 33.0] \n",
+ " age_class_(33.0, 36.0] \n",
+ " age_class_(36.0, 39.0] \n",
+ " age_class_(39.0, 42.0] \n",
+ " age_class_(42.0, 45.0] \n",
+ " age_class_(45.0, 48.0] \n",
+ " age_class_(48.0, 51.0] \n",
+ " age_class_(51.0, 54.0] \n",
+ " age_class_(54.0, 57.0] \n",
+ " age_class_(57.0, 60.0] \n",
+ " age_class_(60.0, 63.0] \n",
+ " age_class_(63.0, 66.0] \n",
+ " age_class_(66.0, 69.0] \n",
+ " age_class_(69.0, 72.0] \n",
+ " age_class_(72.0, 75.0] \n",
+ " age_class_(75.0, 78.0] \n",
+ " age_class_(78.0, 81.0] \n",
+ " age_class_(81.0, 84.0] \n",
+ " age_class_(84.0, 87.0] \n",
+ " age_class_(87.0, 90.0] \n",
+ " age_class_(90.0, 93.0] \n",
+ " age_class_(93.0, 96.0] \n",
+ " age_class_(96.0, 99.0] \n",
+ " age_class_(99.0, 102.0] \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 94876 \n",
+ " 0.110716 \n",
+ " 0.0 \n",
+ " 0.379946 \n",
+ " 7100.0 \n",
+ " 19.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 74492 \n",
+ " 0.022211 \n",
+ " 0.0 \n",
+ " 0.266376 \n",
+ " 11250.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 48991 \n",
+ " 0.995334 \n",
+ " 0.0 \n",
+ " 0.229102 \n",
+ " 2583.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 3.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 109765 \n",
+ " 0.012314 \n",
+ " 0.0 \n",
+ " 0.002997 \n",
+ " 1000.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 16286 \n",
+ " 0.671940 \n",
+ " 0.0 \n",
+ " 0.316112 \n",
+ " 15000.0 \n",
+ " 15.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " ... \n",
+ " \n",
+ " \n",
+ " 105990 \n",
+ " 0.432024 \n",
+ " 0.0 \n",
+ " 0.732508 \n",
+ " 2100.0 \n",
+ " 10.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 31564 \n",
+ " 1.000000 \n",
+ " 0.0 \n",
+ " 0.293369 \n",
+ " 4086.0 \n",
+ " 7.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 47890 \n",
+ " 0.728543 \n",
+ " 1.0 \n",
+ " 0.305331 \n",
+ " 3094.0 \n",
+ " 5.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 102980 \n",
+ " 0.056936 \n",
+ " 0.0 \n",
+ " 0.173340 \n",
+ " 22700.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 2.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ " 81410 \n",
+ " 0.319929 \n",
+ " 0.0 \n",
+ " 0.397048 \n",
+ " 4200.0 \n",
+ " 7.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 1.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " 0.0 \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
32595 rows × 43 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " RevolvingUtilizationOfUnsecuredLines \\\n",
+ "94876 0.110716 \n",
+ "74492 0.022211 \n",
+ "48991 0.995334 \n",
+ "109765 0.012314 \n",
+ "16286 0.671940 \n",
+ "... ... \n",
+ "105990 0.432024 \n",
+ "31564 1.000000 \n",
+ "47890 0.728543 \n",
+ "102980 0.056936 \n",
+ "81410 0.319929 \n",
+ "\n",
+ " NumberOfTime30-59DaysPastDueNotWorse DebtRatio MonthlyIncome \\\n",
+ "94876 0.0 0.379946 7100.0 \n",
+ "74492 0.0 0.266376 11250.0 \n",
+ "48991 0.0 0.229102 2583.0 \n",
+ "109765 0.0 0.002997 1000.0 \n",
+ "16286 0.0 0.316112 15000.0 \n",
+ "... ... ... ... \n",
+ "105990 0.0 0.732508 2100.0 \n",
+ "31564 0.0 0.293369 4086.0 \n",
+ "47890 1.0 0.305331 3094.0 \n",
+ "102980 0.0 0.173340 22700.0 \n",
+ "81410 0.0 0.397048 4200.0 \n",
+ "\n",
+ " NumberOfOpenCreditLinesAndLoans NumberOfTimes90DaysLate \\\n",
+ "94876 19.0 0.0 \n",
+ "74492 10.0 0.0 \n",
+ "48991 3.0 0.0 \n",
+ "109765 2.0 0.0 \n",
+ "16286 15.0 0.0 \n",
+ "... ... ... \n",
+ "105990 10.0 0.0 \n",
+ "31564 7.0 2.0 \n",
+ "47890 5.0 0.0 \n",
+ "102980 7.0 0.0 \n",
+ "81410 7.0 0.0 \n",
+ "\n",
+ " NumberRealEstateLoansOrLines NumberOfTime60-89DaysPastDueNotWorse \\\n",
+ "94876 1.0 0.0 \n",
+ "74492 1.0 0.0 \n",
+ "48991 1.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 1.0 0.0 \n",
+ "... ... ... \n",
+ "105990 2.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 1.0 0.0 \n",
+ "102980 2.0 0.0 \n",
+ "81410 1.0 0.0 \n",
+ "\n",
+ " NumberOfDependents age_class_(-0.001, 3.0] age_class_(3.0, 6.0] \\\n",
+ "94876 0.0 0.0 0.0 \n",
+ "74492 2.0 0.0 0.0 \n",
+ "48991 3.0 0.0 0.0 \n",
+ "109765 1.0 0.0 0.0 \n",
+ "16286 2.0 0.0 0.0 \n",
+ "... ... ... ... \n",
+ "105990 0.0 0.0 0.0 \n",
+ "31564 0.0 0.0 0.0 \n",
+ "47890 0.0 0.0 0.0 \n",
+ "102980 2.0 0.0 0.0 \n",
+ "81410 0.0 0.0 0.0 \n",
+ "\n",
+ " age_class_(6.0, 9.0] age_class_(9.0, 12.0] age_class_(12.0, 15.0] \\\n",
+ "94876 0.0 0.0 0.0 \n",
+ "74492 0.0 0.0 0.0 \n",
+ "48991 0.0 0.0 0.0 \n",
+ "109765 0.0 0.0 0.0 \n",
+ "16286 0.0 0.0 0.0 \n",
+ "... ... ... ... \n",
+ "105990 0.0 0.0 0.0 \n",
+ "31564 0.0 0.0 0.0 \n",
+ "47890 0.0 0.0 0.0 \n",
+ "102980 0.0 0.0 0.0 \n",
+ "81410 0.0 0.0 0.0 \n",
+ "\n",
+ " age_class_(15.0, 18.0] age_class_(18.0, 21.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(21.0, 24.0] age_class_(24.0, 27.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(27.0, 30.0] age_class_(30.0, 33.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(33.0, 36.0] age_class_(36.0, 39.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(39.0, 42.0] age_class_(42.0, 45.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(45.0, 48.0] age_class_(48.0, 51.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 1.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 1.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(51.0, 54.0] age_class_(54.0, 57.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 1.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(57.0, 60.0] age_class_(60.0, 63.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 1.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 1.0 0.0 \n",
+ "102980 0.0 1.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(63.0, 66.0] age_class_(66.0, 69.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(69.0, 72.0] age_class_(72.0, 75.0] \\\n",
+ "94876 1.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 1.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 1.0 0.0 \n",
+ "\n",
+ " age_class_(75.0, 78.0] age_class_(78.0, 81.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 1.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(81.0, 84.0] age_class_(84.0, 87.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(87.0, 90.0] age_class_(90.0, 93.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(93.0, 96.0] age_class_(96.0, 99.0] \\\n",
+ "94876 0.0 0.0 \n",
+ "74492 0.0 0.0 \n",
+ "48991 0.0 0.0 \n",
+ "109765 0.0 0.0 \n",
+ "16286 0.0 0.0 \n",
+ "... ... ... \n",
+ "105990 0.0 0.0 \n",
+ "31564 0.0 0.0 \n",
+ "47890 0.0 0.0 \n",
+ "102980 0.0 0.0 \n",
+ "81410 0.0 0.0 \n",
+ "\n",
+ " age_class_(99.0, 102.0] \n",
+ "94876 0.0 \n",
+ "74492 0.0 \n",
+ "48991 0.0 \n",
+ "109765 0.0 \n",
+ "16286 0.0 \n",
+ "... ... \n",
+ "105990 0.0 \n",
+ "31564 0.0 \n",
+ "47890 0.0 \n",
+ "102980 0.0 \n",
+ "81410 0.0 \n",
+ "\n",
+ "[32595 rows x 43 columns]"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "X_test = pd.get_dummies(X_test, dtype='float')\n",
+ "X_test = X_test.drop('age', axis=1)\n",
+ "X_test"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Q8MhdlfDMAqV"
+ },
+ "source": [
+ "#### 4.数据预处理之幅度缩放"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "_XAKQa86MAqV",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "7a0985ec-c685-44ee-8e3c-e76f05ce0be1"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[-0.02280078, -0.10952419, -0.44571797, ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ],\n",
+ " [-0.02352386, -0.10952419, 0.34755716, ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ],\n",
+ " [-0.02438938, 0.18379115, -0.20527158, ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ],\n",
+ " ...,\n",
+ " [-0.02411731, -0.10952419, -0.92966324, ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ],\n",
+ " [-0.0239546 , -0.10952419, 0.76923 , ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ],\n",
+ " [-0.02249839, -0.10952419, 1.48235852, ..., -0.0183736 ,\n",
+ " -0.01356876, -0.005539 ]])"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 请对连续值特征进行幅度缩放\n",
+ "# 提示:可以使用StandardScaler等幅度缩放器进行处理\n",
+ "from sklearn.preprocessing import StandardScaler\n",
+ "import numpy as np\n",
+ "\n",
+ "scaler = StandardScaler()\n",
+ "scaler.fit(X_train)\n",
+ "scaler.fit(X_test)\n",
+ "X_train_std = scaler.transform(X_train)\n",
+ "X_test_std = scaler.transform(X_test)\n",
+ "X_train_std"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "yIa7KMepMAqW"
+ },
+ "source": [
+ "#### 5.使用logistic regression建模,并且输出一下系数,分析重要度。 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "6o74poK3MAqW",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "c6512799-a9ab-4735-e856-0a1fd4ae51e3"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Coefficients: [[-2.81589427e-02 1.63969606e+00 2.96352536e-01 -1.28711091e-01\n",
+ " -1.17800741e-01 1.44089745e+00 -1.53793032e-01 -2.91889200e+00\n",
+ " 8.30549763e-02 -2.69194891e-03 0.00000000e+00 0.00000000e+00\n",
+ " 0.00000000e+00 0.00000000e+00 0.00000000e+00 -2.23147494e-02\n",
+ " 6.22851242e-02 1.05842914e-01 1.23723820e-01 1.00275470e-01\n",
+ " 8.62764684e-02 6.00809812e-02 6.98201692e-02 4.27174214e-02\n",
+ " 6.21330528e-02 4.78632927e-02 4.40763401e-02 -1.73953563e-02\n",
+ " -3.55745157e-02 -5.91254236e-02 -1.22688949e-01 -1.37964712e-01\n",
+ " -1.05043205e-01 -9.35789660e-02 -1.15241058e-01 -1.44065903e-01\n",
+ " -7.62206144e-02 -5.44624724e-02 -1.12937889e-02 -2.40835057e-02\n",
+ " -2.02254765e-01 1.45156952e-02 -5.22338763e-02]]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:fit建模,建完模之后可以取出coef属性\n",
+ "from sklearn.linear_model import LogisticRegression\n",
+ "\n",
+ "lr = LogisticRegression()\n",
+ "lr.fit(X_train_std, y_train)\n",
+ "coefficients = lr.coef_\n",
+ "print(\"Coefficients:\", coefficients)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "OIw0HvmhMAqW"
+ },
+ "source": [
+ "#### 6.使用网格搜索交叉验证进行调参\n",
+ "调整penalty和C参数,其中penalty候选为\"l1\"和\"l2\",C的候选为[1,10,100,500]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 118
+ },
+ "collapsed": true,
+ "id": "GQzqlSMDMAqW",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "0ece21fd-3382-4b8a-e211-4945291b503f"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "GridSearchCV(cv=5, estimator=LogisticRegression(solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']},\n",
+ " scoring='accuracy') In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org. GridSearchCV GridSearchCV(cv=5, estimator=LogisticRegression(solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']},\n",
+ " scoring='accuracy') "
+ ],
+ "text/plain": [
+ "GridSearchCV(cv=5, estimator=LogisticRegression(solver='liblinear'),\n",
+ " param_grid={'C': [1, 10, 100, 500], 'penalty': ['l1', 'l2']},\n",
+ " scoring='accuracy')"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# 提示:先按照上面要求准备好网格字典,再使用GridSearchCV进行调参\n",
+ "\n",
+ "from sklearn.model_selection import GridSearchCV\n",
+ "\n",
+ "\n",
+ "logreg = LogisticRegression(solver='liblinear')\n",
+ "\n",
+ "param_grid = {\n",
+ " 'penalty': ['l1', 'l2'],\n",
+ " 'C': [1, 10, 100, 500]\n",
+ "}\n",
+ "\n",
+ "grid_search = GridSearchCV(logreg, param_grid, cv=5, scoring='accuracy')\n",
+ "grid_search.fit(X_train_std, y_train)\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "3p6zYd0uMAqX",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "7701011e-8441-4a79-e8ee-205c7dd3cf99"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Best parameters: {'C': 1, 'penalty': 'l2'}\n",
+ "Best cross-validation score: 0.93\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 输出最好的超参数\n",
+ "# 输出最好的模型\n",
+ "\n",
+ "print(\"Best parameters:\", grid_search.best_params_)\n",
+ "print(\"Best cross-validation score: {:.2f}\".format(grid_search.best_score_))\n",
+ "\n",
+ "\n",
+ "best_model = grid_search.best_estimator_\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "BZ7sobk-MAqX"
+ },
+ "source": [
+ "#### 7.在测试集上进行预测,计算 查准率/查全率/auc/混淆矩阵/f1值 等测试指标"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "PMNRRrFUMAqX",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "bd10842a-c1d9-447f-e501-fbd141cd431c"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Precision: 0.5808823529411765\n",
+ "Recall: 0.03552158273381295\n",
+ "AUC: 0.7077820547881606\n",
+ "Confusion Matrix:\n",
+ " [[30314 57]\n",
+ " [ 2145 79]]\n",
+ "F1 Score: 0.06694915254237287\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:在测试集上预测可以使用predict\n",
+ "# 提示:各种指标可以在sklearn.metrics中查到各种评估指标,分别是accuracy_score、recall_score、auc、confusion_matrix、f1_score\n",
+ "from sklearn.metrics import precision_score, recall_score, roc_auc_score, confusion_matrix, f1_score\n",
+ "\n",
+ "\n",
+ "y_pred = best_model.predict(X_test_std)\n",
+ "\n",
+ "# 精确度\n",
+ "precision = precision_score(y_test, y_pred)\n",
+ "\n",
+ "# 召回率\n",
+ "recall = recall_score(y_test, y_pred)\n",
+ "\n",
+ "# AUC\n",
+ "y_pred_prob = best_model.predict_proba(X_test_std)[:, 1]\n",
+ "auc = roc_auc_score(y_test, y_pred_prob)\n",
+ "\n",
+ "# 混淆矩阵\n",
+ "conf_matrix = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ "# F1 值\n",
+ "f1 = f1_score(y_test, y_pred)\n",
+ "\n",
+ "\n",
+ "print(\"Precision:\", precision)\n",
+ "print(\"Recall:\", recall)\n",
+ "print(\"AUC:\", auc)\n",
+ "print(\"Confusion Matrix:\\n\", conf_matrix)\n",
+ "print(\"F1 Score:\", f1)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "gW2BPfwYMAqX"
+ },
+ "source": [
+ "#### 8.更多优化\n",
+ "银行通常会有更严格的要求,因为欺诈带来的后果通常比较严重,一般我们会调整模型的标准。 \n",
+ "\n",
+ "比如在logistic regression当中,一般我们的概率判定边界为0.5,但是我们可以把阈值设定低一些,来提高模型的“敏感度” \n",
+ "试试看把阈值设定为0.3,再看看这个时候的混淆矩阵等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "GXrNzRoXMAqY",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "76943b8f-7bb3-4e21-a217-18ada2361859"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Threshold: 0.1\n",
+ "Precision: 0.20557645496791324\n",
+ "Recall: 0.4177158273381295\n",
+ "F1 Score: 0.2755450096396263\n",
+ "Confusion Matrix:\n",
+ "[[26781 3590]\n",
+ " [ 1295 929]]\n",
+ "\n",
+ "Threshold: 0.2\n",
+ "Precision: 0.4172972972972973\n",
+ "Recall: 0.1735611510791367\n",
+ "F1 Score: 0.24515719275960624\n",
+ "Confusion Matrix:\n",
+ "[[29832 539]\n",
+ " [ 1838 386]]\n",
+ "\n",
+ "Threshold: 0.3\n",
+ "Precision: 0.5319693094629157\n",
+ "Recall: 0.09352517985611511\n",
+ "F1 Score: 0.15908221797323135\n",
+ "Confusion Matrix:\n",
+ "[[30188 183]\n",
+ " [ 2016 208]]\n",
+ "\n",
+ "Threshold: 0.4\n",
+ "Precision: 0.5739910313901345\n",
+ "Recall: 0.05755395683453238\n",
+ "F1 Score: 0.10461789946873724\n",
+ "Confusion Matrix:\n",
+ "[[30276 95]\n",
+ " [ 2096 128]]\n",
+ "\n",
+ "Threshold: 0.5\n",
+ "Precision: 0.5808823529411765\n",
+ "Recall: 0.03552158273381295\n",
+ "F1 Score: 0.06694915254237287\n",
+ "Confusion Matrix:\n",
+ "[[30314 57]\n",
+ " [ 2145 79]]\n",
+ "\n",
+ "Threshold: 0.6\n",
+ "Precision: 0.5957446808510638\n",
+ "Recall: 0.025179856115107913\n",
+ "F1 Score: 0.04831751509922347\n",
+ "Confusion Matrix:\n",
+ "[[30333 38]\n",
+ " [ 2168 56]]\n",
+ "\n",
+ "Threshold: 0.7\n",
+ "Precision: 0.5172413793103449\n",
+ "Recall: 0.013489208633093525\n",
+ "F1 Score: 0.026292725679228742\n",
+ "Confusion Matrix:\n",
+ "[[30343 28]\n",
+ " [ 2194 30]]\n",
+ "\n",
+ "Threshold: 0.8\n",
+ "Precision: 0.5652173913043478\n",
+ "Recall: 0.005845323741007194\n",
+ "F1 Score: 0.011570983533600357\n",
+ "Confusion Matrix:\n",
+ "[[30361 10]\n",
+ " [ 2211 13]]\n",
+ "\n",
+ "Threshold: 0.9\n",
+ "Precision: 0.0\n",
+ "Recall: 0.0\n",
+ "F1 Score: 0.0\n",
+ "Confusion Matrix:\n",
+ "[[30366 5]\n",
+ " [ 2224 0]]\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 提示:thresholds = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n",
+ "# 根据predict_proba的结果和threshold的比较确定结果,再评估各种结果指标\n",
+ "from sklearn.metrics import precision_score, recall_score, f1_score, confusion_matrix\n",
+ "\n",
+ "thresholds = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]\n",
+ "\n",
+ "\n",
+ "y_pred_probs = best_model.predict_proba(X_test_std)[:, 1]\n",
+ "\n",
+ "for threshold in thresholds:\n",
+ "\n",
+ " y_pred = (y_pred_probs >= threshold).astype(int)\n",
+ "\n",
+ " \n",
+ " precision = precision_score(y_test, y_pred)\n",
+ " recall = recall_score(y_test, y_pred)\n",
+ " f1 = f1_score(y_test, y_pred)\n",
+ " conf_matrix = confusion_matrix(y_test, y_pred)\n",
+ "\n",
+ " \n",
+ " print(f\"Threshold: {threshold}\")\n",
+ " print(f\"Precision: {precision}\")\n",
+ " print(f\"Recall: {recall}\")\n",
+ " print(f\"F1 Score: {f1}\")\n",
+ " print(f\"Confusion Matrix:\\n{conf_matrix}\\n\")\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "aFV9vlyGMAqY"
+ },
+ "source": [
+ "#### 9.尝试对不同特征的重要度进行排序,通过特征选择的方式,对特征进行筛选。并重新建模,观察此时的模型准确率等评估指标。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "yEumBzTqMAqY",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "921af1aa-7567-4f2a-9f37-4012923a0805"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Feature: NumberOfTime60-89DaysPastDueNotWorse, Importance: 2.9174653938974706\n",
+ "Feature: NumberOfTime30-59DaysPastDueNotWorse, Importance: 1.6388460770487727\n",
+ "Feature: NumberOfTimes90DaysLate, Importance: 1.4403444959388176\n",
+ "Feature: DebtRatio, Importance: 0.2963457929465204\n",
+ "Feature: NumberRealEstateLoansOrLines, Importance: 0.15390142709018867\n",
+ "Feature: age_class_(27.0, 30.0], Importance: 0.1381495247113989\n",
+ "Feature: age_class_(78.0, 81.0], Importance: 0.1340374302506106\n",
+ "Feature: MonthlyIncome, Importance: 0.12802437048535784\n",
+ "Feature: age_class_(66.0, 69.0], Importance: 0.1228107647427749\n",
+ "Feature: NumberOfOpenCreditLinesAndLoans, Importance: 0.11780801501606504\n",
+ "Feature: age_class_(24.0, 27.0], Importance: 0.11737185444635168\n",
+ "Feature: age_class_(30.0, 33.0], Importance: 0.11627012277656434\n",
+ "Feature: age_class_(63.0, 66.0], Importance: 0.10610256001455878\n",
+ "Feature: age_class_(93.0, 96.0], Importance: 0.10529771171509311\n",
+ "Feature: age_class_(75.0, 78.0], Importance: 0.10472219206856115\n",
+ "Feature: age_class_(33.0, 36.0], Importance: 0.10266920409572494\n",
+ "Feature: age_class_(69.0, 72.0], Importance: 0.09173620740925557\n",
+ "Feature: age_class_(39.0, 42.0], Importance: 0.0886172285193445\n",
+ "Feature: NumberOfDependents, Importance: 0.08299353430525591\n",
+ "Feature: age_class_(45.0, 48.0], Importance: 0.08257977126074513\n",
+ "Feature: age_class_(72.0, 75.0], Importance: 0.0813493953813997\n",
+ "Feature: age_class_(36.0, 39.0], Importance: 0.07778977221362726\n",
+ "Feature: age_class_(-0.001, 3.0], Importance: 0.07636563563099678\n",
+ "Feature: age_class_(21.0, 24.0], Importance: 0.07062583494783624\n",
+ "Feature: age_class_(81.0, 84.0], Importance: 0.06897853067843891\n",
+ "Feature: age_class_(48.0, 51.0], Importance: 0.06812909366192271\n",
+ "Feature: age_class_(51.0, 54.0], Importance: 0.06376091352564103\n",
+ "Feature: age_class_(42.0, 45.0], Importance: 0.06229064909059505\n",
+ "Feature: age_class_(84.0, 87.0], Importance: 0.0482630874634455\n",
+ "Feature: age_class_(60.0, 63.0], Importance: 0.039924248168778015\n",
+ "Feature: RevolvingUtilizationOfUnsecuredLines, Importance: 0.02822625554947292\n",
+ "Feature: age_class_(99.0, 102.0], Importance: 0.02751711504765149\n",
+ "Feature: age_class_(90.0, 93.0], Importance: 0.02079225073730944\n",
+ "Feature: age_class_(18.0, 21.0], Importance: 0.020027256001566615\n",
+ "Feature: age_class_(57.0, 60.0], Importance: 0.016868344113720946\n",
+ "Feature: age_class_(96.0, 99.0], Importance: 0.015543600698082265\n",
+ "Feature: age_class_(87.0, 90.0], Importance: 0.00617061635496714\n",
+ "Feature: age_class_(54.0, 57.0], Importance: 0.0016995187975081712\n",
+ "Feature: age_class_(3.0, 6.0], Importance: 0.0\n",
+ "Feature: age_class_(6.0, 9.0], Importance: 0.0\n",
+ "Feature: age_class_(9.0, 12.0], Importance: 0.0\n",
+ "Feature: age_class_(12.0, 15.0], Importance: 0.0\n",
+ "Feature: age_class_(15.0, 18.0], Importance: 0.0\n",
+ "Precision: 0.5808823529411765\n",
+ "Recall: 0.03552158273381295\n",
+ "F1 Score: 0.06694915254237287\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 可以根据逻辑回归的系数绝对值大小进行排序,也可以基于树模型的特征重要度进行排序\n",
+ "# 特征选择可以使用RFE或者selectFromModel\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "\n",
+ "feature_names = X_train.columns\n",
+ "coefficients = best_model.coef_[0]\n",
+ "features_importance = zip(feature_names, np.abs(coefficients))\n",
+ "\n",
+ "\n",
+ "sorted_features = sorted(features_importance, key=lambda x: x[1], reverse=True)\n",
+ "for feature, importance in sorted_features:\n",
+ " print(f\"Feature: {feature}, Importance: {importance}\")\n",
+ "\n",
+ "top_features = [feature for feature, importance in sorted_features] \n",
+ "feature_names_list = feature_names.tolist()\n",
+ "\n",
+ "top_features_indices = [feature_names_list.index(feature) for feature in top_features]\n",
+ "\n",
+ "\n",
+ "X_train_selected = X_train_std[:, top_features_indices]\n",
+ "X_test_selected = X_test_std[:, top_features_indices]\n",
+ "\n",
+ "def new_model_func(model):\n",
+ "\n",
+ " model.fit(X_train_selected, y_train)\n",
+ "\n",
+ " y_pred = model.predict(X_test_selected)\n",
+ " print(\"Precision:\", precision_score(y_test, y_pred))\n",
+ " print(\"Recall:\", recall_score(y_test, y_pred))\n",
+ " print(\"F1 Score:\", f1_score(y_test, y_pred))\n",
+ "new_model = LogisticRegression()\n",
+ "new_model_func(new_model)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "d_Qm2FTHMAqZ"
+ },
+ "source": [
+ "#### 10.其他模型算法尝试\n",
+ "使用RandomForestClassifier/SVM/KNN等sklearn分类算法进行分类,尝试上述超参数调优算法过程。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "collapsed": true,
+ "id": "bXhgfqWxMAqZ",
+ "jupyter": {
+ "outputs_hidden": true
+ },
+ "outputId": "eda6882f-a900-4c58-e532-59f15d9ed978"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "随机森林\n",
+ "Precision: 0.5507745266781411\n",
+ "Recall: 0.14388489208633093\n",
+ "F1 Score: 0.22816399286987524\n",
+ "支持向量机\n",
+ "Precision: 0.6\n",
+ "Recall: 0.009442446043165468\n",
+ "F1 Score: 0.01859229747675963\n",
+ "K最近邻\n",
+ "Precision: 0.46301369863013697\n",
+ "Recall: 0.07598920863309352\n",
+ "F1 Score: 0.13055233680957898\n"
+ ]
+ }
+ ],
+ "source": [
+ "# 随机森林\n",
+ "from sklearn.ensemble import RandomForestClassifier\n",
+ "print(\"随机森林\")\n",
+ "new_model = RandomForestClassifier()\n",
+ "new_model_func(new_model)\n",
+ "# 支持向量机\n",
+ "from sklearn.svm import SVC\n",
+ "print(\"支持向量机\")\n",
+ "new_model = SVC()\n",
+ "new_model_func(new_model)\n",
+ "# K最近邻\n",
+ "from sklearn.neighbors import KNeighborsClassifier\n",
+ "print(\"K最近邻\")\n",
+ "new_model = KNeighborsClassifier()\n",
+ "new_model_func(new_model)\n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.13"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}