├── 1.通用学习模式.ipynb ├── 2.sklearn的datasets数据库.ipynb ├── 3.model常用属性和功能.ipynb ├── 4.normalization标准化数据.ipynb ├── 5.cross validation 交叉验证1.ipynb ├── 6.cross validation 交叉验证2.ipynb ├── 7.cross validation 交叉验证3.ipynb ├── 8.save.ipynb ├── README.md └── save ├── clf.pickle └── clf.pkl /1.通用学习模式.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy as np\n", 10 | "# import sklearn\n", 11 | "from sklearn import datasets\n", 12 | "from sklearn.model_selection import train_test_split # train是训练的意思\n", 13 | "from sklearn.neighbors import KNeighborsClassifier" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [ 22 | "iris = datasets.load_iris()\n", 23 | "iris_X = iris.data\n", 24 | "iris_y= iris.target" 25 | ] 26 | }, 27 | { 28 | "cell_type": "code", 29 | "execution_count": 3, 30 | "metadata": {}, 31 | "outputs": [ 32 | { 33 | "data": { 34 | "text/plain": [ 35 | "array([[5.1, 3.5, 1.4, 0.2],\n", 36 | " [4.9, 3. , 1.4, 0.2]])" 37 | ] 38 | }, 39 | "execution_count": 3, 40 | "metadata": {}, 41 | "output_type": "execute_result" 42 | } 43 | ], 44 | "source": [ 45 | "iris_X[:2,:] # 前两组数据" 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 4, 51 | "metadata": {}, 52 | "outputs": [], 53 | "source": [ 54 | "X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, \n", 55 | " test_size=0.3)\n", 56 | "# test的数据占train数据的30%\n", 57 | "# 同时还打乱了数据" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": 5, 63 | "metadata": {}, 64 | "outputs": [ 65 | { 66 | "name": "stdout", 67 | "output_type": "stream", 68 | "text": [ 69 | "[2 2 2 1 2 0 1 1 0 2 1 1 1 2 1 2 0 1 2 2 1 2 0 1 1 1 2 0 2 2 0 1 0 1 2 1 1\n", 70 | " 0 2 1 1 0 2 1 0]\n", 71 | "[2 2 2 1 2 0 1 1 0 2 1 1 1 2 1 2 0 2 1 2 1 2 0 1 1 1 1 0 2 2 0 1 0 1 2 1 1\n", 72 | " 0 2 1 1 0 2 2 0]\n" 73 | ] 74 | } 75 | ], 76 | "source": [ 77 | "knn = KNeighborsClassifier()\n", 78 | "knn.fit(X_train, y_train)\n", 79 | "print(knn.predict(X_test)) # 训练得出的分类\n", 80 | "print(y_test) # 原本正确的分类" 81 | ] 82 | }, 83 | { 84 | "cell_type": "markdown", 85 | "metadata": {}, 86 | "source": [ 87 | "#### 2020.02.20开始学习B站莫烦sklearn教程" 88 | ] 89 | } 90 | ], 91 | "metadata": { 92 | "kernelspec": { 93 | "display_name": "Python 3", 94 | "language": "python", 95 | "name": "python3" 96 | }, 97 | "language_info": { 98 | "codemirror_mode": { 99 | "name": "ipython", 100 | "version": 3 101 | }, 102 | "file_extension": ".py", 103 | "mimetype": "text/x-python", 104 | "name": "python", 105 | "nbconvert_exporter": "python", 106 | "pygments_lexer": "ipython3", 107 | "version": "3.7.4" 108 | } 109 | }, 110 | "nbformat": 4, 111 | "nbformat_minor": 2 112 | } 113 | -------------------------------------------------------------------------------- /2.sklearn的datasets数据库.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import matplotlib.pyplot as plt\n", 10 | "from sklearn import datasets\n", 11 | "from sklearn.linear_model import LinearRegression" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "metadata": {}, 18 | "outputs": [], 19 | "source": [ 20 | "loaded_data = datasets.load_boston()\n", 21 | "data_X = loaded_data.data\n", 22 | "data_y = loaded_data.target" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 3, 28 | "metadata": {}, 29 | "outputs": [ 30 | { 31 | "data": { 32 | "text/plain": [ 33 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)" 34 | ] 35 | }, 36 | "execution_count": 3, 37 | "metadata": {}, 38 | "output_type": "execute_result" 39 | } 40 | ], 41 | "source": [ 42 | "model = LinearRegression()\n", 43 | "model.fit(data_X, data_y)" 44 | ] 45 | }, 46 | { 47 | "cell_type": "code", 48 | "execution_count": 4, 49 | "metadata": {}, 50 | "outputs": [ 51 | { 52 | "name": "stdout", 53 | "output_type": "stream", 54 | "text": [ 55 | "[30.00384338 25.02556238 30.56759672 28.60703649]\n", 56 | "[24. 21.6 34.7 33.4]\n" 57 | ] 58 | } 59 | ], 60 | "source": [ 61 | "print(model.predict(data_X[:4,:]))\n", 62 | "print(data_y[:4])" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 5, 68 | "metadata": {}, 69 | "outputs": [ 70 | { 71 | "data": { 72 | "text/plain": [ 73 | "" 74 | ] 75 | }, 76 | "execution_count": 5, 77 | "metadata": {}, 78 | "output_type": "execute_result" 79 | }, 80 | { 81 | "data": { 82 | "image/png": "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\n", 83 | "text/plain": [ 84 | "
" 85 | ] 86 | }, 87 | "metadata": { 88 | "needs_background": "light" 89 | }, 90 | "output_type": "display_data" 91 | } 92 | ], 93 | "source": [ 94 | "X, y = datasets.make_regression(n_samples=100, n_features=1, n_targets=1, noise=1)\n", 95 | "plt.scatter(X, y)" 96 | ] 97 | } 98 | ], 99 | "metadata": { 100 | "kernelspec": { 101 | "display_name": "Python 3", 102 | "language": "python", 103 | "name": "python3" 104 | }, 105 | "language_info": { 106 | "codemirror_mode": { 107 | "name": "ipython", 108 | "version": 3 109 | }, 110 | "file_extension": ".py", 111 | "mimetype": "text/x-python", 112 | "name": "python", 113 | "nbconvert_exporter": "python", 114 | "pygments_lexer": "ipython3", 115 | "version": "3.7.4" 116 | } 117 | }, 118 | "nbformat": 4, 119 | "nbformat_minor": 2 120 | } 121 | -------------------------------------------------------------------------------- /3.model常用属性和功能.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn import datasets\n", 10 | "from sklearn.linear_model import LinearRegression" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 2, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "loaded_data = datasets.load_boston()\n", 20 | "data_X = loaded_data.data\n", 21 | "data_y = loaded_data.target" 22 | ] 23 | }, 24 | { 25 | "cell_type": "code", 26 | "execution_count": 3, 27 | "metadata": {}, 28 | "outputs": [ 29 | { 30 | "data": { 31 | "text/plain": [ 32 | "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)" 33 | ] 34 | }, 35 | "execution_count": 3, 36 | "metadata": {}, 37 | "output_type": "execute_result" 38 | } 39 | ], 40 | "source": [ 41 | "model = LinearRegression() # 线性回归\n", 42 | "model.fit(data_X, data_y)" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 4, 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "name": "stdout", 52 | "output_type": "stream", 53 | "text": [ 54 | "[-1.08011358e-01 4.64204584e-02 2.05586264e-02 2.68673382e+00\n", 55 | " -1.77666112e+01 3.80986521e+00 6.92224640e-04 -1.47556685e+00\n", 56 | " 3.06049479e-01 -1.23345939e-02 -9.52747232e-01 9.31168327e-03\n", 57 | " -5.24758378e-01]\n" 58 | ] 59 | } 60 | ], 61 | "source": [ 62 | "print(model.coef_) # y=0.1x+0.3 输出的是0.1" 63 | ] 64 | }, 65 | { 66 | "cell_type": "code", 67 | "execution_count": 5, 68 | "metadata": {}, 69 | "outputs": [ 70 | { 71 | "name": "stdout", 72 | "output_type": "stream", 73 | "text": [ 74 | "36.459488385090054\n" 75 | ] 76 | } 77 | ], 78 | "source": [ 79 | "print(model.intercept_) # y=0.1x+0.3 输出的是0.3" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 6, 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "name": "stdout", 89 | "output_type": "stream", 90 | "text": [ 91 | "\n" 92 | ] 93 | } 94 | ], 95 | "source": [ 96 | "print(model.get_params) # 之前model定义的参数" 97 | ] 98 | }, 99 | { 100 | "cell_type": "code", 101 | "execution_count": 7, 102 | "metadata": {}, 103 | "outputs": [ 104 | { 105 | "name": "stdout", 106 | "output_type": "stream", 107 | "text": [ 108 | "0.7406426641094095\n" 109 | ] 110 | } 111 | ], 112 | "source": [ 113 | "print(model.score(data_X, data_y)) # 打分" 114 | ] 115 | }, 116 | { 117 | "cell_type": "code", 118 | "execution_count": null, 119 | "metadata": {}, 120 | "outputs": [], 121 | "source": [] 122 | } 123 | ], 124 | "metadata": { 125 | "kernelspec": { 126 | "display_name": "Python 3", 127 | "language": "python", 128 | "name": "python3" 129 | }, 130 | "language_info": { 131 | "codemirror_mode": { 132 | "name": "ipython", 133 | "version": 3 134 | }, 135 | "file_extension": ".py", 136 | "mimetype": "text/x-python", 137 | "name": "python", 138 | "nbconvert_exporter": "python", 139 | "pygments_lexer": "ipython3", 140 | "version": "3.7.4" 141 | } 142 | }, 143 | "nbformat": 4, 144 | "nbformat_minor": 2 145 | } 146 | -------------------------------------------------------------------------------- /4.normalization标准化数据.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn import preprocessing\n", 10 | "import numpy as np\n", 11 | "from sklearn.model_selection import train_test_split # 分开训练数据和测试数据\n", 12 | "from sklearn.datasets.samples_generator import make_classification\n", 13 | "from sklearn.svm import SVC\n", 14 | "import matplotlib.pyplot as plt" 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 2, 20 | "metadata": {}, 21 | "outputs": [ 22 | { 23 | "name": "stdout", 24 | "output_type": "stream", 25 | "text": [ 26 | "[[ 0. -0.85170713 -0.55138018]\n", 27 | " [-1.22474487 -0.55187146 -0.852133 ]\n", 28 | " [ 1.22474487 1.40357859 1.40351318]]\n" 29 | ] 30 | } 31 | ], 32 | "source": [ 33 | "a = np.array([[10,2.7,3.6],\n", 34 | " [-100,5,-2],\n", 35 | " [120,20,40]],dtype='float64')\n", 36 | "print(preprocessing.scale(a)) # 归一化预处理" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 3, 42 | "metadata": {}, 43 | "outputs": [ 44 | { 45 | "data": { 46 | "text/plain": [ 47 | "" 48 | ] 49 | }, 50 | "execution_count": 3, 51 | "metadata": {}, 52 | "output_type": "execute_result" 53 | }, 54 | { 55 | "data": { 56 | "image/png": "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\n", 57 | "text/plain": [ 58 | "
" 59 | ] 60 | }, 61 | "metadata": { 62 | "needs_background": "light" 63 | }, 64 | "output_type": "display_data" 65 | } 66 | ], 67 | "source": [ 68 | "X, y = make_classification(n_samples=300, n_features=2,\n", 69 | " n_redundant=0, n_informative=2,\n", 70 | " random_state=22, n_clusters_per_class=1, scale=100)\n", 71 | "plt.scatter(X[:,0], X[:,1], c=y)" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": 4, 77 | "metadata": {}, 78 | "outputs": [ 79 | { 80 | "name": "stdout", 81 | "output_type": "stream", 82 | "text": [ 83 | "0.9444444444444444\n" 84 | ] 85 | } 86 | ], 87 | "source": [ 88 | "Nor_X = preprocessing.scale(X) # 归一化以后\n", 89 | "Nor_X_train, Nor_X_test, y_train, y_test = train_test_split(Nor_X, y, test_size=.3)\n", 90 | "clf = SVC(gamma='auto')\n", 91 | "clf.fit(Nor_X_train, y_train)\n", 92 | "print(clf.score(Nor_X_test, y_test))" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 5, 98 | "metadata": {}, 99 | "outputs": [ 100 | { 101 | "name": "stdout", 102 | "output_type": "stream", 103 | "text": [ 104 | "0.5\n" 105 | ] 106 | } 107 | ], 108 | "source": [ 109 | "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.3) # 没有归一化\n", 110 | "clf = SVC(gamma='auto')\n", 111 | "clf.fit(X_train, y_train)\n", 112 | "print(clf.score(X_test, y_test))" 113 | ] 114 | } 115 | ], 116 | "metadata": { 117 | "kernelspec": { 118 | "display_name": "Python 3", 119 | "language": "python", 120 | "name": "python3" 121 | }, 122 | "language_info": { 123 | "codemirror_mode": { 124 | "name": "ipython", 125 | "version": 3 126 | }, 127 | "file_extension": ".py", 128 | "mimetype": "text/x-python", 129 | "name": "python", 130 | "nbconvert_exporter": "python", 131 | "pygments_lexer": "ipython3", 132 | "version": "3.7.4" 133 | } 134 | }, 135 | "nbformat": 4, 136 | "nbformat_minor": 2 137 | } 138 | -------------------------------------------------------------------------------- /5.cross validation 交叉验证1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn.datasets import load_iris\n", 10 | "from sklearn.model_selection import train_test_split\n", 11 | "from sklearn.neighbors import KNeighborsClassifier" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "metadata": {}, 18 | "outputs": [], 19 | "source": [ 20 | "iris =load_iris()\n", 21 | "X = iris.data\n", 22 | "y= iris.target" 23 | ] 24 | }, 25 | { 26 | "cell_type": "code", 27 | "execution_count": 3, 28 | "metadata": {}, 29 | "outputs": [ 30 | { 31 | "name": "stdout", 32 | "output_type": "stream", 33 | "text": [ 34 | "0.9736842105263158\n" 35 | ] 36 | } 37 | ], 38 | "source": [ 39 | "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4)\n", 40 | "knn = KNeighborsClassifier(n_neighbors=5)\n", 41 | "knn.fit(X_train, y_train)\n", 42 | "print(knn.score(X_test, y_test))" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 4, 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "name": "stdout", 52 | "output_type": "stream", 53 | "text": [ 54 | "0.9733333333333334\n" 55 | ] 56 | } 57 | ], 58 | "source": [ 59 | "from sklearn.model_selection import cross_val_score # 引入交叉验证\n", 60 | "knn = KNeighborsClassifier(n_neighbors=5)\n", 61 | "scores = cross_val_score(knn, X, y, cv=5, scoring='accuracy') # cv=5, 分成五组\n", 62 | "print(scores.mean())" 63 | ] 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "metadata": {}, 68 | "source": [ 69 | "### n_neighbors=5?看下面学动态调参" 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": 5, 75 | "metadata": {}, 76 | "outputs": [ 77 | { 78 | "data": { 79 | "text/plain": [ 80 | "[]" 81 | ] 82 | }, 83 | "execution_count": 5, 84 | "metadata": {}, 85 | "output_type": "execute_result" 86 | } 87 | ], 88 | "source": [ 89 | "import matplotlib.pyplot as plt\n", 90 | "k_range = range(1, 31)\n", 91 | "k_scores = []\n", 92 | "for k in k_range:\n", 93 | " knn = KNeighborsClassifier(n_neighbors=k)\n", 94 | " # loss = -cross_val_score(knn, X, y, cv=10, scoring='neg_mean_squared_error')\n", 95 | " scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy')\n", 96 | " k_scores.append(scores.mean()) # 在列表尾加新对象\n", 97 | "plt.plot(k_range, k_scores)" 98 | ] 99 | }, 100 | { 101 | "cell_type": "code", 102 | "execution_count": 6, 103 | "metadata": { 104 | "scrolled": true 105 | }, 106 | "outputs": [ 107 | { 108 | "data": { 109 | "text/plain": [ 110 | "[]" 111 | ] 112 | }, 113 | "execution_count": 6, 114 | "metadata": {}, 115 | "output_type": "execute_result" 116 | }, 117 | { 118 | "data": { 119 | "image/png": "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\n", 120 | "text/plain": [ 121 | "
" 122 | ] 123 | }, 124 | "metadata": { 125 | "needs_background": "light" 126 | }, 127 | "output_type": "display_data" 128 | } 129 | ], 130 | "source": [ 131 | "k_loss = []\n", 132 | "for k in k_range:\n", 133 | " knn = KNeighborsClassifier(n_neighbors=k)\n", 134 | " loss = -cross_val_score(knn, X, y, cv=10, scoring='neg_mean_squared_error') # neg_mean_squared_error 均方差\n", 135 | " # scores = cross_val_score(knn, X, y, cv=10, scoring='accuracy')\n", 136 | " k_loss.append(loss.mean()) # 在列表尾加新对象\n", 137 | "plt.plot(k_range, k_loss)" 138 | ] 139 | }, 140 | { 141 | "cell_type": "code", 142 | "execution_count": null, 143 | "metadata": {}, 144 | "outputs": [], 145 | "source": [] 146 | } 147 | ], 148 | "metadata": { 149 | "kernelspec": { 150 | "display_name": "Python 3", 151 | "language": "python", 152 | "name": "python3" 153 | }, 154 | "language_info": { 155 | "codemirror_mode": { 156 | "name": "ipython", 157 | "version": 3 158 | }, 159 | "file_extension": ".py", 160 | "mimetype": "text/x-python", 161 | "name": "python", 162 | "nbconvert_exporter": "python", 163 | "pygments_lexer": "ipython3", 164 | "version": "3.7.4" 165 | } 166 | }, 167 | "nbformat": 4, 168 | "nbformat_minor": 2 169 | } 170 | -------------------------------------------------------------------------------- /6.cross validation 交叉验证2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn.model_selection import learning_curve\n", 10 | "from sklearn.datasets import load_digits\n", 11 | "from sklearn.svm import SVC\n", 12 | "import matplotlib.pyplot as plt\n", 13 | "import numpy as np" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [ 22 | "digits = load_digits()\n", 23 | "X = digits.data\n", 24 | "y = digits.target\n", 25 | "train_sizes,train_loss,test_loss = learning_curve(SVC(gamma=0.001), X, y, cv=10, \n", 26 | " scoring='neg_mean_squared_error',\n", 27 | " train_sizes=[0.1,0.25,0.5,0.75,1])" 28 | ] 29 | }, 30 | { 31 | "cell_type": "code", 32 | "execution_count": 3, 33 | "metadata": {}, 34 | "outputs": [], 35 | "source": [ 36 | "train_loss_mean = -train_loss.mean(axis=1)\n", 37 | "test_loss_mean = -test_loss.mean(axis=1)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 4, 43 | "metadata": {}, 44 | "outputs": [ 45 | { 46 | "data": { 47 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAEHCAYAAACk6V2yAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXwUdZ7/8dcnBwnhCFdAFElQRFGQK8mAjgeiCCq6rNcgOB4MQSWMuqu/kQc6j3V2mFXHdRk5xKjIuGZ0vNaTUdCBcRwPCIgcAsaDI6Bcwx0CIXx/f1QFc5OQ7lSn834+Hv3o6qrqrndX0p+q/lb1t8w5h4iIRJ+YoAOIiEh4qMCLiEQpFXgRkSilAi8iEqVU4EVEolRc0AHK6tChg0tLSws6hohIo7FkyZLtzrmUqqZFVIFPS0sjLy8v6BgiIo2Gma2vbpqaaEREopQKvIhIlFKBFxGJUhHVBi8iUlfFxcUUFBRQVFQUdJSwSkxMpEuXLsTHx9f6OSrwItKoFRQU0KpVK9LS0jCzoOOEhXOOHTt2UFBQQLdu3Wr9vEbfRJO7Ipe0qWnEPBhD2tQ0clfkBh1JRBpQUVER7du3j9riDmBmtG/fvs7fUhr1Hnzuilyy3sqisLgQgPW715P1VhYAo3uPDjKaiDSgaC7upY7nPTbqPfjJH0w+WtxLFRYXMvmDyQElEhGJHI26wG/YvaFO40VEQm3Xrl3MnDmzzs+77LLL2LVrVxgS/ahRF/iuyV3rNF5EhNxcSEuDmBjvPrd+x+2qK/AlJSU1Pm/u3Lm0adOmXss+lkZd4KcMmUJSfFK5cUnxSUwZMiWgRCIS0XJzISsL1q8H57z7rKx6Ffn77ruPb775hr59+5KRkcHgwYO54YYb6N27NwD/8i//woABAzjrrLPIyck5+ry0tDS2b9/OunXr6NmzJ+PGjeOss85i6NChHDhwoN5vFRr5QdbSA6mTP5jM+t3ribEYZlw2QwdYRZqqu+6CZcuqn/7pp3DwYPlxhYUwdiw89VTVz+nbF6ZOrfYlH3roIVauXMmyZctYuHAhl19+OStXrjx6OuPs2bNp164dBw4cICMjg6uvvpr27duXe438/HxeeOEFnnrqKa677jpeffVVxowZU6u3XJNGvQcPXpFfd9c65t84nyPuCLEWG3QkEYlUFYv7scYfh8zMzHLnqj/++OP06dOHgQMHsnHjRvLz8ys9p1u3bvTt2xeAAQMGsG7dupBkadR78GUN6TaE09ufzvTF07mxz41BxxGRINSwpw14be7rq+h8MTUVFi4MSYQWLVocHV64cCHvv/8+n3zyCUlJSVx44YVVnsuekJBwdDg2NjZkTTSNfg++lJmRnZnNok2LWLRpUdBxRCQSTZkCSeWP25GU5I0/Tq1atWLv3r1VTtu9ezdt27YlKSmJNWvW8Omnnx73co5H1BR4gJv63ESrZq2Yvmh60FFEJBKNHg05Od4eu5l3n5PjjT9O7du359xzz6VXr17ce++95aYNGzaMw4cPc/bZZ/PAAw8wcODA+r6DOjHnXIMusCbp6emuvhf8mDh3IjlLc9h490Y6tugYomQiEqlWr15Nz549g47RIKp6r2a2xDmXXtX8UbUHDzAhcwKHSg7x9NKng44iIhKoqCvwZ3Q4g4tPuZgn8p7g8JHDQccREQlM1BV4gOyMbAr2FPDGmjeCjiIiEpioLPBX9LiC1ORUpi/WwVYRabqissDHxsRyR8YdLFy3kJVbVwYdR0QkEFFZ4AHG9htLYlwiMxbNCDqKiEggorbAt09qz6heo3hu+XPsKgpvl5wi0nQdb3fBAFOnTqWwsPDYMx6nqC3wANmZ2RQWFzJn2Zygo4hIhAj1ZT4jucBHTV80VenfuT/nnHwOMxbP4Jc/+SUxFtXbMxE5hnBc5rNsd8GXXHIJHTt25KWXXuLgwYOMHDmSBx98kP3793PddddRUFBASUkJDzzwAFu2bGHz5s0MHjyYDh06sGDBgpC9z1JRXeDBO2XyhtduYN438xjWfVjQcUQkjO569y6W/VB9d8GfFnzKwZLyPUcWFhcy9o2xPLWk6u6C+57Ql6nDatdd8Lx583jllVdYtGgRzjmuvPJKPvzwQ7Zt28aJJ57IO++8A3h91CQnJ/PYY4+xYMECOnTocBzv9tiifpf26jOvplOLTuqfRkQqFfdjja+refPmMW/ePPr160f//v1Zs2YN+fn59O7dm/fff59f/epX/P3vfyc5OTkkyzuWsO/Bm1kskAdscs5dEe7lVdQsthnjB4znPz/8T7755zec2u7Uho4gIg2kpj1tgLSpaazfXbm74NTkVBbevLDey3fOMWnSJMaPH19p2pIlS5g7dy6TJk1i6NCh/PrXv6738o6lIfbg7wRWN8ByqjU+fTyxMbHMXHx8B0JEJDqE4zKfZbsLvvTSS5k9ezb79u0DYNOmTWzdupXNmzeTlJTEmDFjuOeee1i6dGml54ZDWAu8mXUBLgcC7fnrxFYncnXPq5m9bDb7D+0PMoqIBGh079HkjMghNTkVw0hNTiVnRE69LvNZtrvg+fPnc8MNNzBo0CB69+7NNddcw969e1mxYgWZmZn07duXKVOmcP/99wOQlZXF8OHDGTx4cKjeYjlh7S7YzF4B/gtoBdxTVRONmWUBWQBdu3YdsL6qq62EwEcbPuK8Z88j54ocxg0YF5ZliEjDU3fBAXQXbGZXAFudc0tqms85l+OcS3fOpaekpIQrDueefC59OvVh+uLpRFIf+CIi4RLOJppzgSvNbB3wInCRmT0fxuXVqPSSfsu3LOejDR8FFUNEpMGErcA75yY557o459KAnwF/dc6NCdfyauOG3jfQNrEt0xZNCzKGiIRYU/hWfjzvMerPgy8rKT6Jsf3G8trq19i0Z1PQcUQkBBITE9mxY0dUF3nnHDt27CAxMbFOz4u6a7Iey7c7v6X74925//z7+c3g34R1WSISfsXFxRQUFFBUVBR0lLBKTEykS5cuxMfHlxtf00HWqO+qoKJT2p7C5T0u58klTzL5vMkkxCUEHUlE6iE+Pp5u3boFHSMiNakmmlLZGdls3b+VV1e/GnQUEZGwaZIF/pJTL+G0dqfpYKuIRLUmWeBjLIbszGw+LfiUvM3hbfMXEQlKkyzwADf1uYkW8S2YsViX9BOR6NRkC3xyYjI/7/NzXljxAtsLtwcdR0Qk5JpsgQeYkDGBgyUHeWbpM0FHEREJuSZd4M/qeBaD0wYzM28mh48cDjqOiEhINekCDzAxcyIbdm/g7a/eDjqKiEhINfkCP+L0EZzc+mRd0k9Eok6TL/BxMXHcnn47H3z3Aau3BXrhKRGRkGryBR7gF/1/QbPYZjplUkSiigo8kNIihZ/1+hl//OKP7Dm4J+g4IiIhoQLvm5g5kX2H9vHHZX8MOoqISEiowPvST0znJyf9hOmLp3PEHQk6johIvanAl5Gdmc1XO77ig28/CDqKiEi9qcCXce2Z15KSlML0xTplUkQaPxX4MhLiEsgakMVba9/iu53fBR1HRKReVOAruC39NmIshifyngg6iohIvajAV9CldRdG9hzJ00ufprC4MOg4IiLHTQW+CtkZ2ews2smLK18MOoqIyHFTga/C+ann06tjL6YtmoZzLug4IiLHRQW+CmZGdkY2y35YxscbPw46jojIcVGBr8aYs8eQnJCsUyZFpNFSga9Gi2YtuLXfrbzy5St8v/f7oOOIiNSZCnwN7si4g8NHDpOzJCfoKCIidaYCX4Pu7bozvPtwZi2ZxaGSQ0HHERGpExX4Y8jOzOaHfT/w2urXgo4iIlInKvDHMKz7ME5te6ou6ScijY4K/DHEWAwTMibwj43/4PPvPw86johIranA18LNfW8mKT5Jl/QTkUZFBb4W2jZvy5jeY8hdkcuOwh1BxxERqRUV+FrKzsym6HARsz+fHXQUEZFaUYGvpd6denNB6gXMzJtJyZGSoOOIiByTCnwdZGdms27XOubmzw06iojIMYWtwJtZopktMrMvzGyVmT0YrmU1lKtOv4qTWp2k/mlEpFEI5x78QeAi51wfoC8wzMwGhnF5YRcfG89t6bcx75t5rN2+Nug4IiI1CluBd559/sN4/9boO1cf138czWKb6ZRJEYl4YW2DN7NYM1sGbAXmO+c+q2KeLDPLM7O8bdu2hTNOSHRq2YnrzrqOOcvmsPfg3qDjiIhUK6wF3jlX4pzrC3QBMs2sVxXz5Djn0p1z6SkpKeGMEzLZGdnsPbSX/13+v0FHERGpVoOcReOc2wUsBIY1xPLCLfOkTNJPTGf6oum6pJ+IRKxwnkWTYmZt/OHmwMXAmnAtryGVXtJv9fbV/PW7vwYdR0SkSuHcg+8MLDCz5cBivDb4t8O4vAZ1fa/r6ZDUQadMikjEigvXCzvnlgP9wvX6QUuMS2Rc/3E8/I+HWb9rPaltUoOOJCJSjn7JWg+3pd8GwKy8WQEnERGpTAW+Hromd+Wq06/iqaVPUXS4KOg4IiLlqMDXU3ZmNjsO7ODFlS8GHUVEpBwV+HoanDaYM1POZNqiaTplUkQiigp8PZWeMrn0+6V8tqnSD3VFRAKjAh8CN/a5kdYJrXVhbhGJKCrwIdCyWUtu7nMzL616iS37tgQdR0QEUIEPmTsy7qD4SDE5S3KCjiIiAqjAh8zpHU5n6KlDmbVkFsUlxUHHERFRgQ+liZkT2bx3M6+veT3oKCIiKvChNLz7cLq16ab+aUQkIqjAh1BsTCx3ZNzBh+s/ZPmW5UHHEZEmTgU+xG7tdyuJcYk6ZVJEAqcCH2LtmrdjdO/RPL/8eXYe2Bl0HBFpwlTgwyA7M5sDhw/w7LJng44iIk2YCnwY9D2hLz/t+lNmLJ7BEXck6Dgi0kSpwIdJdkY23+78lne/fjfoKCLSRKnAh8nIniPp3LIz0xZNCzqKiDRRKvBh0iy2GeMHjOfdr98lf0d+0HFEpAlSgQ+jrAFZxMXEMXPxzKCjiEgTVKsCb2Z3mllr8zxjZkvNbGi4wzV2nVt15tozr+XZZc+y79C+oOOISBNT2z34W51ze4ChQApwC/BQ2FJFkezMbHYf3E3u8tygo4hIE1PbAm/+/WXAs865L8qMkxoM6jKIfif00yX9RKTB1bbALzGzeXgF/j0zawXoBO9aMDOyM7NZtW0Vf1v/t6DjiEgTUtsCPxa4D8hwzhUC8XjNNFILo3qNol3zduqfRkQaVG0L/CBgrXNul5mNAe4HdocvVnRpHt+cX/T7Ba+veZ2NuzcGHUdEmojaFvgngEIz6wP8P2A98FzYUkWh2zNu54g7wpNLngw6iog0EbUt8Iedd4TwKuAPzrk/AK3CFyv6pLVJY8TpI8hZkkPR4aKg44hIE1DbAr/XzCYBNwLvmFksXju81EF2RjbbCrfx8qqXg44iIk1AbQv89cBBvPPhfwBOAn4ftlRRasgpQzi9/em6pJ+INIhaFXi/qOcCyWZ2BVDknFMbfB3FWAzZmdks2rSIRZsWBR1HRKJcbbsquA5YBFwLXAd8ZmbXhDNYtPp5n5/TsllLZiyeEXQUEYlytW2imYx3DvxNzrmfA5nAA+GLFb1aJ7Tmpj438eLKF9m6f2vQcUQkitW2wMc458pWox11eK5UMCFjAodKDvH00qeDjiIiUay2RfpdM3vPzG42s5uBd4C5NT3BzE42swVmttrMVpnZnfUNGy16pvRkSLchPJH3BIePHA46johEqdoeZL0XyAHOBvoAOc65Xx3jaYeBf3fO9QQGAhPM7Mz6hI0mEzMnUrCngDfXvhl0FBGJUnG1ndE59yrwah3m/x743h/ea2ar8U6v/LKuIaPRFT2uoGtyV6Yvms6/9vzXoOOISBSqcQ/ezPaa2Z4qbnvNbE9tF2JmaUA/4LP6xY0esTGx3JF+BwvWLWDl1pVBxxGRKFRjgXfOtXLOta7i1so517o2CzCzlnh7/nf5Fw2pOD3LzPLMLG/btm3H9y4aqbH9x5IQm8CMRTplUkRCL6xnwphZPF5xz3XOvVbVPM65HOdcunMuPSUlJZxxIk6HpA6M6j2K55Y/x66iXUHHEZEoE7YCb2YGPAOsds49Fq7lNHYTMydSWFzIH5f9MegoIhJlwrkHfy5e52QXmdky/3ZZGJfXKPXv3J9BXQYxY/EMjjhdJEtEQidsBd4595FzzpxzZzvn+vq3Gs+db6qyM7PJ/2c+876ZF3QUEYki+jVqBLjmzGvo1KKTLuknIiGlAh8BmsU2I2tAFu/kv8NJj51EzIMxpE1NI3dFbtDRRKQRq/UPnSS8OrboCMDmvZsBWL97PVlvZQEwuvfowHKJSOOlPfgI8ejHj1YaV1hcyOQPJgeQRkSigQp8hNiwe0OdxouIHIsKfITomty1yvEntDyhgZOISLRQgY8QU4ZMISk+qdL47/d9z7g3x/HDvh8CSCUijZkKfIQY3Xs0OSNySE1OxTBSk1N58oonuXvg3cz5Yg6nTTuNhz56iKLDRUFHFZFGwpxzQWc4Kj093eXl5QUdI+J8teMr7p1/L2+ufZO0Nmn8/pLfc3XPq/F6gxCRpszMljjn0quapj34RqBH+x688bM3mH/jfFo2a8m1L1/LBXMuYMnmJUFHE5EIpgLfiFx8ysV8Pv5zZl0+izXb15DxVAa3vHHL0XPnRUTKUoFvZOJi4hifPp78ifncc8495C7Ppce0Hvz2w99yoPhA0PFEJIKowDdSyYnJPHLJI6yesJpLu1/KAwse4IwZZ/DiyheJpOMqIhIcFfhG7tR2p/Lqda+y4KYFtGvejlGvjuLc2efyWYGujijS1KnAR4kL0y4kb1weT494mm93fsvAZwZy4//dSMGegqCjiUhAVOCjSGxMLGP7jyV/Yj6TfjqJl1e9TI9pPfiPhf/B/kP7g44nIg1MBT4KtUpoxe+G/I7VE1ZzRY8rePBvD3L69NN5fvnzumqUSBOiAh/FurXtxkvXvsSHN3/ICS1P4Mb/u5FBzwzik42fBB1NRBqACnwTcF7qeSwat4g5V81h4+6NnDP7HEa9Oor1u9YHHU1EwkgFvomIsRhu6nsTX038igfOf4DX17zOGTPO4P6/3s++Q/uCjiciYaAC38S0bNaS3wz+DWuz1zLyjJFM+fsUekzrwZxlc9Q+LxJlVOCbqK7JXfnT1X/i41s/pmtyV2554xYynsrg7+v/HnQ0EQkRFfgmbtDJg/h47Mc8P/J5tu7fyvlzzufal6/lu53fBR1NROpJBV6IsRhGnz2atdlrefDCB5mbP5czZpzBfe/fx56De4KOJyLHSQVejkqKT+LXF/yatdlruf6s63n4Hw9z2rTTeHrp05QcKQk6nojUkQq8VNKldReeG/kcn/3iM7q36864t8YxIGcAC75bEHQ0EakDFXipVuZJmXx0y0e8ePWL7CzayUXPXcTIP4/k639+HXQ0EakFFXipkZlxfa/rWTNhDb8d/FvmfzOfM2ecyb3z7mV30e6g44lIDVTgpVaaxzdn8vmTyZ+Yz5izx/Dfn/w33ad1Z1beLA4fORx0PBGpggq81EnnVp2ZfdVs8rLyODPlTG5/53b6PdmP+d/MDzqaiFSgAi/HpX/n/iy8aSGvXPsK+w/tZ+jzQxnxwgjWbl8bdDQR8anAy3EzM64+82q+nPAlDw15iL+t+xu9nujF3e/ezc4DO4OOJ9LkqcBLvSXGJfKrn/6K/In53NL3Fv7w2R/oPq070xdNp7ikOOh4Ik2WCryETKeWncgZkcPn4z+nT6c+TPzLRPrM6sO7X78bdDSRJkkFXkKuzwl9+ODnH/D69a9zqOQQw3OHMzx3OF9u+zLoaCJNStgKvJnNNrOtZrYyXMuQyGVmXHXGVay6YxWPXvIon2z8hLOfOJuJcyeyo3BH0PFEmoRw7sHPAYaF8fWlEUiIS+Dfz/l38ifmkzUgi5l5M+k+rTtTP53KoZJDQccTiWphK/DOuQ+Bf4br9aVxSWmRwszLZ/LFbV+QcWIGd793N72f6M3bX72Ncy7oeCJRSW3w0qB6dezFe2Pe4+1RbwMw4oURDH1+KCu2rAg4mUj0CbzAm1mWmeWZWd62bduCjiMNwMy4vMflrLx9JVMvncqSzUvo+2Rfbn/7drbt1/+ASKgEXuCdcznOuXTnXHpKSkrQcaQBxcfGc+fAO8mfmM+EjAk8tfQpuk/rzqMfP8rBwweDjifS6AVe4EXaJ7Xn8eGPs+L2FZx78rncO/9ezpp5Fq+veV3t8yL1EM7TJF8APgFON7MCMxsbrmVJdOiZ0pO5o+fyl9F/oVlsM0b+eSQXPXcRy35YFnQ0kUYpnGfRjHLOdXbOxTvnujjnngnXsiS6DOs+jOW3L2f68Oms2LKC/k/2Z9yb49iyb0vQ0UQaFTXRSESKi4ljQuYE8ifmc9fAu5jzxRxOm3YaD330EEWHi4KOJ9IoqMBLRGvbvC2PXfoYq+5YxYVpFzLpg0n0nNGTV758Re3zIsegAi+NQo/2PXhz1JvMv3E+LZu15NqXr+WCORewZPOSoKOJRCwVeGlULj7lYj4f/zmzLp/Fmu1ryHgqg1veuIXNezcHHU0k4qjAS6MTFxPH+PTx5E/M555z7iF3eS49pvXgtx/+lgPFB4KOJxIxVOCl0UpOTOaRSx7hywlfMvTUoTyw4AHOmHEGL658Ue3zIqjASxTo3q47r13/GgtuWkC75u0Y9eoozp19Lr/5229Im5pGzIMxpE1NI3dFbtBRRRqURdKeTnp6usvLyws6hjRiJUdKmLNsDv/23r+x59CectOS4pPIGZHD6N6jA0onEnpmtsQ5l17lNBV4iUZd/6crG/dsrDQ+1mLpe0JfOrXsRMcWHenUopN3a1n+vn1Se2JMX3Al8tVU4OMaOoxIQyjYU1Dl+BJXQscWHflh3w988cMXbN2/leIjlS8MHmuxpLRI+XEjULoBqLAx6NiiIylJKcTHxof7LYnUmQq8RKWuyV1Zv3t9pfGpyanMHT336GPnHDuLdrJl3xa27N/Cln1b2Lp/69HhLfu921c7vmLL/i3V/oq2ffP2lb4FdGrhf0uoMD4hLiFs71ukLBV4iUpThkwh660sCosLj45Lik9iypAp5eYzM9o1b0e75u3omdKzxtd0zrH30F5vA1Bmg1BxY5C3OY8t+7aw99DeKl8nOSH5aLGv9A2hwn2LZi3qvzKkyVKBl6hUeiB18geT2bB7A12TuzJlyJR6HWA1M1ontKZ1Qmu6t+t+zPkLiwur3BiU/Yawatsq/vrdX9lZtLPK10iKT6qxiajst4TkhGTM7Ljfn0QfHWQViQCHSg4d3RhU1URUdiOxvXA7jsqf24TYhPJNQmWOE1TcMLRr3u64DiLnrsgN6UZT6k8HWUUiXLPYZnRp3YUurbscc96SIyVsL9xebRPR1v1b2bx3M5//8Dlb92/l8JHDlV4j1mKPbgxqOpuoU8tOdEjqQFxMHLkrcss1e63fvZ6st7IAVOQjlAq8SCMTGxPrFeCWnaBTzfMecUfYeWBn5SaiCt8O1mxfw5Z9WzhYUvlSiYbRPqk9u4t2VzrjqLC4kDv/cidJcUm0bd6Wtoltj963bNZSTUYBUxONiADeQeQ9B/dUbiLy759c8mSdXi8uJo42iW1ok9imXOEvO9wmsU2lDUPb5m1pndBav0OoJTXRiMgxmRnJickkJyZzWvvTKk1/9+t3qzz19KRWJ/HWqLfYWbSTnQd2Hr3fVbTLGy4z/rud3x19XOJKqs+C/bhxqLgB8IcrbTjKbDRiY2JDum4aKxV4EamV6k49ffiSh+nXuV+dXss5x/7i/eU2CJU2DKXj/OFNezd50w7srLIpqaxWzVpVu2Go6ZtD28S2UfWjNRV4EamVUJ56ama0bNaSls1acnLyyXV+/oHiA5U2DDuLdh7dAFT85vDVjq+ObjjKbqCqkhSfVGXhP9aGoU1iG5rHN6/T+wj3WUlqgxeRJuXg4YOVviWU2zBU2ECUnbe6H6+VSohNqHEDUPZx3uY8Hv3k0XK/jj6eDvHU2ZiISAgcPnK43Magyg1D2WllHu8u2l3l7xcqSk1OZd1d62qdSQdZRURCIC4mjg5JHeiQ1KHOzz3ijrC7aPfRop/xVEaVBX/D7g2hiAqowIuINIgYi/GaZ5q3hbbVd4jXNblr6JYZslcSEZFamzJkCknxSeXGVdUhXn2owIuIBGB079HkjMghNTkVw0hNTg35Fcd0kFVEpBGr6SCr9uBFRKKUCryISJRSgRcRiVIq8CIiUUoFXkQkSjX+Ap+bC2lpEBPj3efmBp1IRCQiNO5fsubmQlYWFPq9w61f7z0GGK1LiIlI09a4z4NPS/OKekVm0KEDtGz5461Fi/KPq7rVNE9Cgve64ZSbC5Mnw4YN0LUrTJmiDZVINAvBZz6wzsbMbBjwByAWeNo591BIF7Chmk55nINrroF9+3687d8PW7eWH1dYc7/Q5cTG1n8jUXF6ixYQ5/8J9G0k9LTBDD2t09BpgM982PbgzSwW+Aq4BCgAFgOjnHNfVveckO3Bp6bCunXHfn5JibdyK24Iyj6u7lbdfHv3eq9bW4mJXrHfubPq5yUkwHnneccYYmPL31c3HMT0SMv05z/DbbeV34gnJUFOjgrS8apYkCD4deocHDlS/1sQr3PnnbBjR+X3VNv65QukP3gzGwT8h3PuUv/xJADn3H9V95w6F/hI/Yc7dKjuG4uZM6t/zXPO8Yr/kSM/3pcdrmpcXac3JXFxXnNb6Q3KP65qXEM/joQMFR9/+ikcrOJSeQkJ0K9fwxbS0teKRmbe+6v17ME00ZwEbCzzuAD4SUiXUFrEI+kro5n3D5+QAO3b1/5577xT/beRf/wjdPmqU/rBC9cGpK7T6/uakydX/17vvdd7v6UFonS4unEN/TgSMlSVqariDt741q1//AZV3c3s2PPU9haq1woy04UXwubNlddn19B1FxzOAl/VEclKm1wzywKyALoezxsbPTo6vnJPmVL1t5Epoes6tEZmXtNGbJRcjT4np/oN5u9+1/B5okFNTaLvvdfgcRq9Rx4J+2c+nOfBFwBlr6bbBai0uXLO5Tjn0p1z6SkpKWGME6NfcroAAAiSSURBVOFGj/aKUmqqV2xTU9VeXB9TpngflrIacoMZjbROQ6sBPvPhbIOPwzvIOgTYhHeQ9Qbn3KrqnqPugiWkdMZH6GmdRpzALrptZpcBU/FOk5ztnKtxU68CLyJSN4GdB++cmwvMDecyRESkauFsgxcRkQCpwIuIRCkVeBGRKKUCLyISpSKqN0kz2wZU8UuKkOgAbA/Ta4eScoaWcoaWcoZWKHKmOueq/BFRRBX4cDKzvOpOJYokyhlayhlayhla4c6pJhoRkSilAi8iEqWaUoHPCTpALSlnaClnaClnaIU1Z5NpgxcRaWqa0h68iEiTogIvIhKloqLAm9nJZrbAzFab2Sozu9Mf387M5ptZvn/f1h9vZva4mX1tZsvNrH8D5401s8/N7G3/cTcz+8zP+Wcza+aPT/Aff+1PT2vAjG3M7BUzW+Ov10GRuD7N7G7/b77SzF4ws8RIWJ9mNtvMtprZyjLj6rz+zOwmf/58M7upgXL+3v+7Lzez/zOzNmWmTfJzrjWzS8uMH+aP+9rM7muInGWm3WNmzsw6+I8jan364yf662eVmT1SZnx416dzrtHfgM5Af3+4FV4/9GcCjwD3+ePvAx72hy8D/oJ31amBwGcNnPffgD8Bb/uPXwJ+5g/PAm73h+8AZvnDPwP+3IAZ/wj8wh9uBrSJtPWJd1nI74DmZdbjzZGwPoHzgf7AyjLj6rT+gHbAt/59W3+4bQPkHArE+cMPl8l5JvAFkAB0A77B6wo81h8+xf9f+QI4M9w5/fEnA+/h/UCyQ4Suz8HA+0CC/7hjQ63PsH8Ig7gBbwCXAGuBzv64zsBaf/hJYFSZ+Y/O1wDZugAfABcBb/v/hNvLfKAGAe/5w+8Bg/zhOH8+a4CMrfEKp1UYH1Hrkx+v+9vOXz9vA5dGyvoE0ip80Ou0/oBRwJNlxpebL1w5K0wbCeT6w5OASWWmveev36PruKr5wpkTeAXoA6zjxwIfUesTb4fj4irmC/v6jIommrL8r939gM+ATs657wH8+47+bFVdEPykBoo4Ffh/QOll09sDu5xzh6vIcjSnP323P3+4nQJsA571m5KeNrMWRNj6dM5tAh4FNgDf462fJUTe+ixV1/UX5P9pqVvx9oapIU8gOc3sSmCTc+6LCpMiKifQAzjPbxb8m5llNFTOqCrwZtYSeBW4yzm3p6ZZqxgX9vNFzewKYKtzbkktswSSE2/vtj/whHOuH7Afr0mhOkGtz7bAVXhfb08EWgDDa8gS1Po8lupyBZrXzCYDh4Hc0lHV5GnwnGaWBEwGfl3V5GryBPl5aovXXHQv8JKZWQ15QpYzagq8mcXjFfdc59xr/ugtZtbZn94Z2OqPr9UFwcPgXOBKM1sHvIjXTDMVaGPeNWwrZjma05+eDPyzAXIWAAXOuc/8x6/gFfxIW58XA98557Y554qB14BziLz1Waqu6y+o9Yp/APIKYLTz2wkiLOepeBv2L/zPUxdgqZmdEGE58Zf7mvMswvv23qEhckZFgfe3hs8Aq51zj5WZ9CZQeqT8Jry2+dLxP/ePtg8Edpd+dQ4n59wk51wX51wa3kG+vzrnRgMLgGuqyVma/xp//rDvcTjnfgA2mtnp/qghwJdE2PrEa5oZaGZJ/v9Aac6IWp9l1HX9vQcMNbO2/reVof64sDKzYcCvgCudc4UV8v/MvLORugGnAYuAxcBp5p291Azvf/vNcGZ0zq1wznV0zqX5n6cCvBMtfiDC1ifwOt7OHGbWA+/A6XYaYn2G+gBDEDfgp3hfYZYDy/zbZXjtqx8A+f59O39+A2bgHaleAaQHkPlCfjyL5hT/D/s18DI/Hm1P9B9/7U8/pQHz9QXy/HX6Ot5XzIhbn8CDwBpgJfC/eGckBL4+gRfwjgsU4xWfscez/vDawL/2b7c0UM6v8dqASz9Ls8rMP9nPuRYYXmb8ZXhnr30DTG6InBWmr+PHg6yRtj6bAc/7/6NLgYsaan2qqwIRkSgVFU00IiJSmQq8iEiUUoEXEYlSKvAiIlFKBV5EJEqpwIuIRCkVeGnUzOvW+I7jeN7cst3g1jPDleHoIlekvnQevDRqfudybzvnelUYH+ucKwkklEiE0B68NHYPAaea2TIzW2zehV/+hPcLRszsdTNb4l9oIav0SWa2zsw6mFmaeRc0ecqfZ56ZNa9uYWb2SzP70r+QxIv+uJvNbLo/vKzM7YCZXWBmLfwLQSz2e+e8yp/3LDNb5M+73MxOC+eKkqZHe/DSqJXdgzezC4F3gF7Oue/86e2cc//0i/Zi4ALn3A6/g6p0oCXez9bTnXPLzOwl4E3n3PPVLG8z0M05d9DM2jjndpnZzf7zs8vMNwKvW+iL8LpT+NI597zfLLQIr0vrh4BPnXO5fp8jsc65A6FdQ9KUxR17FpFGZVFpcff90sxG+sMn43XotKPCc75zzi3zh5fgXbChOsuBXDN7Ha+Pnkr8PfHf4/U5UmxmQ/F6Eb3HnyUR6Ap8Akw2sy54vQ3m1+oditSSmmgk2uwvHfD36C/Gu4pTH+BzvOJa0cEywyXUvONzOV5HVgOAJWW6JS5dZgu8K/iMc86VdvFqwNXOub7+ratzbrVz7k/AlcAB4D0zu6gO71PkmFTgpbHbi3cd3qokAzudc4VmdgbeBReOm5nFACc75xbgNb+0wWviKetZ4Fnn3N/LjHsPmOh3aYyZ9fPvTwG+dc49jtcd7Nn1ySdSkZpopFHz29P/Yd5V7A8AW8pMfhe4zcyW43XH+mk9FxcLPG9myXh75f/jt8EDYGapeP3M9zCzW/3n/AL4T7wLuyz3i/w6vItpXA+MMbNi4AfgN/XMJ1KODrKKiEQpNdGIiEQpNdGIVMHMZuBdQ7esPzjnng0ij8jxUBONiEiUUhONiEiUUoEXEYlSKvAiIlFKBV5EJEr9fxIHABnJLUahAAAAAElFTkSuQmCC\n", 48 | "text/plain": [ 49 | "
" 50 | ] 51 | }, 52 | "metadata": { 53 | "needs_background": "light" 54 | }, 55 | "output_type": "display_data" 56 | } 57 | ], 58 | "source": [ 59 | "plt.plot(train_sizes,train_loss_mean,'o-',color=\"r\",label=\"train\")\n", 60 | "plt.plot(train_sizes,test_loss_mean,'o-',color=\"g\",label=\"test\")\n", 61 | "plt.xlabel(\"train_sizes\")\n", 62 | "plt.ylabel(\"loss\")\n", 63 | "plt.legend(loc=\"best\") # 没有这个不会显示折线的label\n", 64 | "plt.show()" 65 | ] 66 | }, 67 | { 68 | "cell_type": "markdown", 69 | "metadata": {}, 70 | "source": [ 71 | "## 如果SVC(gamma=0.1) 就会出现overfitting 不信你试试" 72 | ] 73 | }, 74 | { 75 | "cell_type": "code", 76 | "execution_count": null, 77 | "metadata": {}, 78 | "outputs": [], 79 | "source": [] 80 | } 81 | ], 82 | "metadata": { 83 | "kernelspec": { 84 | "display_name": "Python 3", 85 | "language": "python", 86 | "name": "python3" 87 | }, 88 | "language_info": { 89 | "codemirror_mode": { 90 | "name": "ipython", 91 | "version": 3 92 | }, 93 | "file_extension": ".py", 94 | "mimetype": "text/x-python", 95 | "name": "python", 96 | "nbconvert_exporter": "python", 97 | "pygments_lexer": "ipython3", 98 | "version": "3.7.4" 99 | } 100 | }, 101 | "nbformat": 4, 102 | "nbformat_minor": 2 103 | } 104 | -------------------------------------------------------------------------------- /7.cross validation 交叉验证3.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn.model_selection import validation_curve\n", 10 | "from sklearn.datasets import load_digits\n", 11 | "from sklearn.svm import SVC\n", 12 | "import matplotlib.pyplot as plt\n", 13 | "import numpy as np" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [ 22 | "digits = load_digits()\n", 23 | "X = digits.data\n", 24 | "y = digits.target\n", 25 | "param_range = np.logspace(-6, -2.3, 5)\n", 26 | "train_loss,test_loss = validation_curve(SVC(), X, y, param_name='gamma',\n", 27 | " param_range=param_range, cv=10, \n", 28 | " scoring='neg_mean_squared_error')" 29 | ] 30 | }, 31 | { 32 | "cell_type": "code", 33 | "execution_count": 3, 34 | "metadata": {}, 35 | "outputs": [ 36 | { 37 | "data": { 38 | "text/plain": [ 39 | "array([ 1., 2., 4., 8., 16., 32., 64., 128., 256., 512.])" 40 | ] 41 | }, 42 | "execution_count": 3, 43 | "metadata": {}, 44 | "output_type": "execute_result" 45 | } 46 | ], 47 | "source": [ 48 | "# np.logspace用法 base默认10\n", 49 | "np.logspace(0,9,10,base=2)" 50 | ] 51 | }, 52 | { 53 | "cell_type": "code", 54 | "execution_count": 4, 55 | "metadata": {}, 56 | "outputs": [], 57 | "source": [ 58 | "train_loss_mean = -train_loss.mean(axis=1)\n", 59 | "test_loss_mean = -test_loss.mean(axis=1)" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": 5, 65 | "metadata": {}, 66 | "outputs": [ 67 | { 68 | "data": { 69 | "image/png": "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\n", 70 | "text/plain": [ 71 | "
" 72 | ] 73 | }, 74 | "metadata": { 75 | "needs_background": "light" 76 | }, 77 | "output_type": "display_data" 78 | } 79 | ], 80 | "source": [ 81 | "plt.plot(param_range,train_loss_mean,'o-',color=\"r\",label=\"train\")\n", 82 | "plt.plot(param_range,test_loss_mean,'o-',color=\"g\",label=\"test\")\n", 83 | "plt.xlabel(\"param_range\")\n", 84 | "plt.ylabel(\"loss\")\n", 85 | "plt.legend(loc=\"best\") # 没有这个不会显示折线的label\n", 86 | "plt.show()" 87 | ] 88 | }, 89 | { 90 | "cell_type": "markdown", 91 | "metadata": {}, 92 | "source": [ 93 | "### 以上说明gamma=0.0006更适合" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": 6, 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "data": { 103 | "image/png": "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\n", 104 | "text/plain": [ 105 | "
" 106 | ] 107 | }, 108 | "metadata": { 109 | "needs_background": "light" 110 | }, 111 | "output_type": "display_data" 112 | } 113 | ], 114 | "source": [ 115 | "param_range = np.logspace(-3.5, -2.3, 5)\n", 116 | "train_loss,test_loss = validation_curve(SVC(), X, y, param_name='gamma',\n", 117 | " param_range=param_range, cv=10, \n", 118 | " scoring='neg_mean_squared_error')\n", 119 | "train_loss_mean = -train_loss.mean(axis=1)\n", 120 | "test_loss_mean = -test_loss.mean(axis=1)\n", 121 | "plt.plot(param_range,train_loss_mean,'o-',color=\"r\",label=\"train\")\n", 122 | "plt.plot(param_range,test_loss_mean,'o-',color=\"g\",label=\"test\")\n", 123 | "plt.xlabel(\"param_range\")\n", 124 | "plt.ylabel(\"loss\")\n", 125 | "plt.legend(loc=\"best\") # 没有这个不会显示折线的label\n", 126 | "plt.show()" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 7, 132 | "metadata": {}, 133 | "outputs": [ 134 | { 135 | "data": { 136 | "text/plain": [ 137 | "array([0.00031623, 0.00063096, 0.00125893, 0.00251189, 0.00501187])" 138 | ] 139 | }, 140 | "execution_count": 7, 141 | "metadata": {}, 142 | "output_type": "execute_result" 143 | } 144 | ], 145 | "source": [ 146 | "np.logspace(-3.5, -2.3, 5)" 147 | ] 148 | }, 149 | { 150 | "cell_type": "markdown", 151 | "metadata": {}, 152 | "source": [ 153 | "### 以上说明gamma=0.001更合适" 154 | ] 155 | } 156 | ], 157 | "metadata": { 158 | "kernelspec": { 159 | "display_name": "Python 3", 160 | "language": "python", 161 | "name": "python3" 162 | }, 163 | "language_info": { 164 | "codemirror_mode": { 165 | "name": "ipython", 166 | "version": 3 167 | }, 168 | "file_extension": ".py", 169 | "mimetype": "text/x-python", 170 | "name": "python", 171 | "nbconvert_exporter": "python", 172 | "pygments_lexer": "ipython3", 173 | "version": "3.7.4" 174 | } 175 | }, 176 | "nbformat": 4, 177 | "nbformat_minor": 2 178 | } 179 | -------------------------------------------------------------------------------- /8.save.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "from sklearn import svm\n", 10 | "from sklearn.datasets import load_iris\n", 11 | "import pandas as pd" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "metadata": {}, 18 | "outputs": [ 19 | { 20 | "data": { 21 | "text/plain": [ 22 | "SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n", 23 | " decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',\n", 24 | " max_iter=-1, probability=False, random_state=None, shrinking=True,\n", 25 | " tol=0.001, verbose=False)" 26 | ] 27 | }, 28 | "execution_count": 2, 29 | "metadata": {}, 30 | "output_type": "execute_result" 31 | } 32 | ], 33 | "source": [ 34 | "clf = svm.SVC(gamma='auto') # 分类器\n", 35 | "iris = load_iris()\n", 36 | "X, y = iris.data, iris.target\n", 37 | "clf.fit(X, y)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "metadata": {}, 43 | "source": [ 44 | "### 用pickle存的方法" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 3, 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "import pickle\n", 54 | "with open('save/clf.pickle','wb')as f: # save\n", 55 | " pickle.dump(clf,f)" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 4, 61 | "metadata": {}, 62 | "outputs": [ 63 | { 64 | "name": "stdout", 65 | "output_type": "stream", 66 | "text": [ 67 | "[0]\n" 68 | ] 69 | } 70 | ], 71 | "source": [ 72 | "with open('save/clf.pickle','rb')as f: # restore\n", 73 | " clf2 = pickle.load(f)\n", 74 | " print(clf2.predict(X[0:1]))" 75 | ] 76 | }, 77 | { 78 | "cell_type": "markdown", 79 | "metadata": {}, 80 | "source": [ 81 | "### joblib存的方法" 82 | ] 83 | }, 84 | { 85 | "cell_type": "code", 86 | "execution_count": 5, 87 | "metadata": {}, 88 | "outputs": [ 89 | { 90 | "name": "stdout", 91 | "output_type": "stream", 92 | "text": [ 93 | "[0]\n" 94 | ] 95 | } 96 | ], 97 | "source": [ 98 | "import joblib\n", 99 | "joblib.dump(clf,'save/clf.pkl') # save\n", 100 | "clf3 = joblib.load('save/clf.pkl') # restore\n", 101 | "print(clf3.predict(X[0:1]))" 102 | ] 103 | } 104 | ], 105 | "metadata": { 106 | "kernelspec": { 107 | "display_name": "Python 3", 108 | "language": "python", 109 | "name": "python3" 110 | }, 111 | "language_info": { 112 | "codemirror_mode": { 113 | "name": "ipython", 114 | "version": 3 115 | }, 116 | "file_extension": ".py", 117 | "mimetype": "text/x-python", 118 | "name": "python", 119 | "nbconvert_exporter": "python", 120 | "pygments_lexer": "ipython3", 121 | "version": "3.7.4" 122 | } 123 | }, 124 | "nbformat": 4, 125 | "nbformat_minor": 2 126 | } 127 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sklearn 2 | sklearn入门程序 3 | 2020年2月20日学习的sklearn基础用法 4 | B站链接https://www.bilibili.com/video/av17003173?from=search&seid=10566376083819814234 5 | 另外这是第一次通过git上传到github 6 | 2020年2月24日 上午2点25分 7 | -------------------------------------------------------------------------------- /save/clf.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hao0527/sklearn/7f48d1e73dc0ea2a48bfe4a87e399b59db567854/save/clf.pickle -------------------------------------------------------------------------------- /save/clf.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hao0527/sklearn/7f48d1e73dc0ea2a48bfe4a87e399b59db567854/save/clf.pkl --------------------------------------------------------------------------------