{"cells": [{"metadata": {"_uuid": "66e430e2db6fd17b69905b66057543c7db0a50ef", "_cell_guid": "4a1ad7b6-f4fc-4740-ab92-79059cbd60d7"}, "outputs": [], "cell_type": "markdown", "source": "# \u5bfc\u5165\u9700\u8981\u7684Python\u5e93", "execution_count": null}, {"metadata": {"_uuid": "239a2bd09b89e5db3dbacd5a787e4aab667a88ff", "collapsed": true, "_cell_guid": "4e1b0991-58df-4c63-b69c-5c9481a9eb6d", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "import numpy as np\nimport pandas as pd\n\nimport matplotlib.pyplot as plt  # \u7ed8\u56fe\nimport seaborn as sns\n\n%matplotlib inline", "execution_count": 22}, {"metadata": {"_uuid": "4cdfaeee865744b4eb15684798d55d79eb17bbf7", "_cell_guid": "ac12e71c-ae61-485e-a5fb-5595d570353a"}, "outputs": [], "cell_type": "markdown", "source": "# \u8bfb\u53d6\u6587\u4ef6\u6570\u636e", "execution_count": null}, {"metadata": {"_uuid": "ee2b071616d7549ea3981d0cfae2ccd4b4234d7b", "collapsed": true, "_cell_guid": "5a0b4dc1-6b7d-4a95-ab3a-35517b7f80dc", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "df_train = pd.read_csv('../input/train.csv')\ndf_test = pd.read_csv('../input/test.csv') # \u8bfb\u53d6\u65f6\u95f4\u6709\u70b9\u957f", "execution_count": 23}, {"metadata": {"_uuid": "9ad8b2c17262376e5e2e8ae631dada8f439a5357", "trusted": false, "_cell_guid": "31cdb126-ca44-4548-97f9-53c6a7760eae", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "df_train.info()", "execution_count": 24}, {"metadata": {"_uuid": "6357f3c2d930d1c25ea3289ce355346d0721c837", "trusted": false, "_cell_guid": "36150933-a4d8-4c78-8998-4a633233c60e", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "df_test.info()", "execution_count": 25}, {"metadata": {"_uuid": "a4df4d4e786c4a6fe30eb55fe38a14407dd1e152", "collapsed": true, "_cell_guid": "d6371b2a-d9b0-4bca-a093-b92a312ab75c", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "# \u7531\u4e8e\u6570\u636e\u91cf\u592a\u5927\uff0c\u9009\u53d6\u524d4000\u884c\u4f5c\u4e3a\u8bad\u7ec3\u6837\u672c\ndf_train = df_train[:3000]\n# \u5c06\u6837\u672c\u7a7a\u95f4\u5212\u5206\u6210\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\nY = df_train['label']\nX = df_train.drop('label',axis=1)\nfrom sklearn.model_selection import train_test_split\nX_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.25,random_state=0)", "execution_count": 26}, {"metadata": {"_uuid": "71346a36b74d4f7ccfad228c0696170c197234e5", "trusted": false, "_cell_guid": "24e13865-1799-491e-a3a7-1af62e8b65d2", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "# \u89c2\u5bdf\u8bad\u7ec3\u96c6\u548c\u6d4b\u8bd5\u96c6\u4fe1\u606f\nX_train.info()", "execution_count": 27}, {"metadata": {"_uuid": "9758e421863dbdd8b39f89e6f22538d595660a73", "trusted": false, "_cell_guid": "c224103e-4bc6-44bb-998b-df77d7a8b600", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "X_test.info()", "execution_count": 28}, {"metadata": {"_uuid": "410da6663b9dfc1728834e8ad550f6c62cd0e143", "trusted": false, "_cell_guid": "5218b94c-3be6-4d81-be98-5cde8923296c", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "# \u5c06\u90e8\u5206\u6570\u636e\u53ef\u89c6\u5316\nsns.set()\nfig, ax = plt.subplots(3,5,figsize=(10,7),subplot_kw={'xticks':(),'yticks':()})\nax = ax.ravel()\nfor i in range(15):\n    pixels = X_train.iloc[i].values.reshape(-1,28)\n    ax[i].imshow(pixels,cmap='viridis')\n    ax[i].set_title('Digit-'+str(Y_train.iloc[i]))", "execution_count": 29}, {"metadata": {"_uuid": "b6be60e6da0fe27897909d523ba54f4452cf9e94", "trusted": false, "_cell_guid": "686fdbfd-d515-4ef9-894e-034f5286b135", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "# \u67e5\u770b\u6570\u636e\u5206\u5e03\u662f\u5426\u5747\u5300\nsns.countplot(Y_train)", "execution_count": 30}, {"metadata": {"_uuid": "b3b915f094aeaf670c942868c46ac1ce10ea2ca2", "_cell_guid": "230c59a4-262f-43cb-8fbc-5ac76039d20e"}, "outputs": [], "cell_type": "markdown", "source": "# \u6570\u636e\u6807\u51c6\u5316", "execution_count": null}, {"metadata": {"_uuid": "4fb8739537fcc6d54cbbb06f26224b585555b1cb", "trusted": false, "_cell_guid": "d2bc2c31-d59c-4f0b-afa8-c48f8e0cce39", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "# from sklearn.preprocessing import StandardScaler\n# ss = StandardScaler()\n# ss.fit(X_train)\n# X_train = ss.transform(X_train)\n# X_test = ss.transform(X_test)\n# \u901a\u8fc7\u8ba1\u7b97\u53d1\u73b0\uff0c\u6807\u51c6\u5316\u4e4b\u540e\uff0c\u6a21\u578b\u9884\u6d4b\u7684\u7ed3\u679c\u4f1a\u53d8\u574f\u3002\u56e0\u6b64\u4e0d\u8fdb\u884c\u6807\u51c6\u5316\u3002", "execution_count": 31}, {"metadata": {"_uuid": "a59b62cf7521189a4db24d6264155352fbe617c1", "_cell_guid": "0c4ed1e0-66c1-44f0-a304-2b3ea1b73d33"}, "outputs": [], "cell_type": "markdown", "source": "# PCA\u964d\u7ef4", "execution_count": null}, {"metadata": {"_uuid": "e361141d6a310d78fd6d4110275f586685f7156c", "trusted": false, "_cell_guid": "8a0f48d1-5d13-421e-9d5d-e24f172577d7", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "from sklearn.decomposition import PCA\n# \u5bfb\u627e\u6700\u4f73\u7684\u4e3b\u6210\u5206\u7ef4\u5ea6n_components\npca = PCA(random_state=0,whiten=True)\npca.fit(X_train)\n# \u6c42\u6bcf\u4e2acomponents\u5bf9\u5e94\u7684\u65b9\u5dee\u767e\u5206\u6570\nexp_var_cum = np.cumsum(pca.explained_variance_ratio_)\nplt.step(range(exp_var_cum.size),exp_var_cum)", "execution_count": 32}, {"metadata": {"_uuid": "a5d6ec5f0d8d4d57379b1ba45dceb943b6deaa5f", "trusted": false, "_cell_guid": "1bb09655-9979-47f1-8a0a-93cba4befb67", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "sns.set()\nplt.step(range(exp_var_cum[15:101].size),exp_var_cum[15:101])", "execution_count": 33}, {"metadata": {"_uuid": "98e44f01ca45c97f6c922652a31e27d4f06a51fb", "collapsed": true, "_cell_guid": "433b131b-d938-4143-be37-72d9ccaf0755", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "# \u9009\u62e9n_components=25\u3002\npca =PCA(n_components=40,random_state=0,whiten=True)\npca.fit(X_train)\nX_train_pca = pca.transform(X_train)\nX_test_pca = pca.transform(X_test)", "execution_count": 34}, {"metadata": {"_uuid": "a536806da16525c82ab1a73bae5d441d7ce63f91", "collapsed": true, "_cell_guid": "24b9b77d-c1ae-4738-a643-7d01b01f88c2", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "# \u4e0a\u9762\u7684\u7ed3\u679c\u8fd8\u80fd\u4e0d\u80fd\u4f18\u5316\uff1f\u5c1d\u8bd5\u6539\u53d8n_neighbors\nfrom sklearn.neighbors import KNeighborsClassifier\ntemp = []\nfor i in range(1,10):\n    knn_pca = KNeighborsClassifier(n_neighbors=i,n_jobs=8)\n    knn_pca.fit(X_train_pca,Y_train)\n    train_score_pca = knn_pca.score(X_train_pca,Y_train)\n    test_score_pca = knn_pca.score(X_test_pca,Y_test)\n#     print(i,':','train_score_pca=',train_score_pca)\n#     print(i,':','test_score_pca',test_score_pca)\n    li = [i,train_score_pca,test_score_pca]\n    temp.append(li)\ntemp", "execution_count": 35}, {"metadata": {"_uuid": "6b1ae00b28b00e351802459671638fb07d5f6ab7", "_cell_guid": "02548175-6e54-40d9-b40e-308bba22c9db"}, "outputs": [], "cell_type": "markdown", "source": "\u9009\u62e9n_neighbors=1,\u5f97\u5230\u6b63\u786e\u7387\u4e3a0.915\u3002", "execution_count": null}, {"metadata": {"_uuid": "28d707eb9b14c4fd58dce9e3793153ac946f82b8", "_cell_guid": "3a8b7ebf-0d1b-4772-a998-1a5750a83da2"}, "outputs": [], "cell_type": "markdown", "source": "# LDA\u964d\u7ef4-\u5206\u7c7b", "execution_count": null}, {"metadata": {"_uuid": "6cdfad7c733c67f31c43f888417f0d2229795bd9", "collapsed": true, "_cell_guid": "4d9b6d26-fb2f-4039-9f51-df9158489e18", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "from sklearn.lda import LDA\ntemp = []\nfor i in range(1,40):\n    lda = LDA(n_components=i)\n    clf = lda.fit(X_train,Y_train)\n    X_test_lda = clf.transform(X_test)\n#     print(i,'=',clf.score(X_train,Y_train))\n#     print(i,'=',clf.score(X_test,Y_test))\n    li = [i,clf.score(X_train,Y_train),clf.score(X_test,Y_test)]\n    temp.append(li)\ntemp", "execution_count": 36}, {"metadata": {"_uuid": "ee2683d2e57a1f08f3eaa4679432e1584a622088", "_cell_guid": "f83b2b37-82ff-4459-a70d-20e55dff9ae9"}, "outputs": [], "cell_type": "markdown", "source": "\u53ef\u89c1\uff0cn_components\u5bf9\u4e8e\u7ed3\u679c\u7684\u5f71\u54cd\u4e0d\u5927\u3002\u9009\u62e9n_components=2,\u5f97\u5230\u6cdb\u5316\u7ed3\u679c\u4e3a0.78\uff0c\u4e0d\u53caPCA\u7684\u7ed3\u679c\u3002", "execution_count": null}, {"metadata": {"_uuid": "f176d6f6fbbb87f5016e95319832f22ac67e64d3", "_cell_guid": "21c7c604-d95b-49ce-a595-4b46a03ba3c8"}, "outputs": [], "cell_type": "markdown", "source": "# NMF\u964d\u7ef4", "execution_count": null}, {"metadata": {"_uuid": "7fce7d0ee63e22d9564392a8af4aa6fc4953e439", "trusted": false, "_cell_guid": "2d07642d-4c9f-489e-8936-362693b634f1", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "from sklearn.decomposition import NMF\nnmf = NMF(n_components=30,random_state=0)\nnmf.fit(X_train)\nX_train_nmf = nmf.transform(X_train)\nX_test_nmf = nmf.transform(X_test)\n\nknn_nmf = KNeighborsClassifier(n_neighbors=4,n_jobs=8)\nknn_nmf.fit(X_train_nmf,Y_train)\nprint('Train score:',knn_nmf.score(X_train_nmf,Y_train))\nprint('test score:',knn_nmf.score(X_test_nmf,Y_test))", "execution_count": 37}, {"metadata": {"_uuid": "6861cf17341b720b7870c6704795fb6e216302b3", "_cell_guid": "9eee6789-1d5e-4798-8d24-7156f9c5009a"}, "outputs": [], "cell_type": "markdown", "source": "# t-SNE\u5b66\u4e60", "execution_count": null}, {"metadata": {"_uuid": "817cbb8b6a3c2f1e3e279ec2d479cbd85a7793b6", "trusted": false, "_cell_guid": "0abf3cf5-f341-48d1-87c4-17eb621377d4", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "from sklearn.manifold import TSNE\ntsne = TSNE(n_components=2,random_state=0)\nX_train_tsne = tsne.fit_transform(X_train,Y_train)\n\nplt.scatter(X_train_tsne[:,0],X_train_tsne[:,1],c=Y_train.values,cmap='prism')", "execution_count": 38}, {"metadata": {"_uuid": "f6a2875d946811650fa6e00d78d8babec6170693", "trusted": false, "_cell_guid": "4d07bcad-667d-43c2-9462-f3e93cf146ec", "_execution_state": "idle"}, "outputs": [], "cell_type": "code", "source": "X_test_tsne = tsne.fit_transform(X_test,Y_test)\nplt.scatter(X_test_tsne[:,0],X_test_tsne[:,1],c=Y_test.values,cmap='prism')", "execution_count": 39}, {"metadata": {"_uuid": "87c73ce3b83e6c0a5ba6228759643267d7a14f12", "collapsed": true, "_cell_guid": "af041580-9889-4976-8a56-1c6a6977e1ba", "_execution_state": "idle", "trusted": false}, "outputs": [], "cell_type": "code", "source": "", "execution_count": 39}], "nbformat_minor": 2, "metadata": {"language_info": {"mimetype": "text/x-python", "nbconvert_exporter": "python", "codemirror_mode": {"version": 3, "name": "ipython"}, "file_extension": ".py", "name": "python", "pygments_lexer": "ipython3", "version": "3.6.1"}, "kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}}, "nbformat": 4}