{ "metadata": { "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.8.0-final" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3.8.0 64-bit", "metadata": { "interpreter": { "hash": "38740d3277777e2cd7c6c2cc9d8addf5118fdf3f82b1b39231fd12aeac8aee8b" } } } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "## 2.7 用线性方法处理分类问题——逻辑回归" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "[]" ] }, "metadata": {}, "execution_count": 3 }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-03-22T16:26:26.162497\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.2, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "import numpy as np \n", "import matplotlib.pyplot as plt \n", "\n", "fig,ax = plt.subplots(figsize=(10,5))\n", "\n", "rng = np.linspace(-5,5)\n", "log_f = np.apply_along_axis(lambda x:1/(1+np.exp(-x)),0,rng)\n", "\n", "ax.set_title(\"logistic function\")\n", "ax.plot(rng,log_f)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "0.8977272727272727\n(88,)\n0.47058823529411764\n" ] } ], "source": [ "from sklearn.datasets import make_classification\n", "X,y = make_classification(n_samples = 1000,n_features=4,weights=[0.9])\n", "\n", "from sklearn.linear_model import LogisticRegression\n", "lr = LogisticRegression()\n", "\n", "training = np.random.choice([True,False],p=[0.9,0.1],size=y.shape)\n", "testing = ~training\n", "\n", "lr.fit(X[training],y[training])\n", "pred = lr.predict(X[testing])\n", "# 正确率\n", "print((pred == y[testing]).mean())\n", "\n", "# 偏斜的小类的正确率。\n", "y1 = y[testing]==1\n", "print(y1.shape)\n", "# 小类的正确率很低\n", "print((y1[y1]==pred[y1==1]).sum().astype(float)/y1[y1==1].shape[0])" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "(88,)\n0.8235294117647058\n" ] } ], "source": [ "# 使用重采样的方法,来增加小类的数量\n", "# class_weight表示各个标签数据集参与的比例。1标签参与0.9 \n", "lr = LogisticRegression(class_weight={0:.1,1:.9})\n", "lr.fit(X[training],y[training])\n", "pred = lr.predict(X[testing])\n", "\n", "\n", "y1 = y[testing]==1\n", "print(y1.shape)\n", "# 小类的正确率很低。重采样后。小类的正确率升高。\n", "print((y1[y1]==pred[y1==1]).sum().astype(float)/y1[y1==1].shape[0])" ] } ] }