{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 线性分类器" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "丁**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 导入" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "D:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\core\\magics\\pylab.py:161: UserWarning: pylab import has clobbered these variables: ['mat', 'clf', 'shape']\n", "`%matplotlib` prevents importing * from pylab and numpy\n", " \"\\n`%matplotlib` prevents importing * from pylab and numpy\"\n" ] } ], "source": [ "%pylab inline\n", "\n", "import numpy as np\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "import matplotlib.image as mpimg\n", "from sklearn.linear_model import SGDClassifier\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "from matplotlib.colors import ListedColormap\n", "from sklearn.metrics import accuracy_score\n", "from skimage import io,data\n", "from sklearn.metrics import confusion_matrix\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## 读取数据" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "path_to_tiff='E:\\Data\\Hyperspectral_Project/'\n", "\n", "raster = path_to_tiff + \"dc.tif\"\n", "samples = path_to_tiff + \"dc_samples2.tif\"\n", "classification = path_to_tiff + \"Classification\\\\\"\n", "\n", "#img=io.imread(raster,as_grey=False)\n", "# read data as TIF\n", "img = io.imread(raster)#(191, 1280, 307)\n", "img=np.transpose(img,(1,2,0))#(1280, 307,191)\n", "\n", "#img=img[0,:,:]\n", "# read training samples as TIF with same dimensions as the image\n", "roi = io.imread(samples)#(1280, 307,3)\n", "#roi=np.transpose(roi,(2,0,1))#(3, 1280, 307)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The training data include 7 classes: [ 1488. 2976. 4465. 5953. 7441. 7663. 9152.]\n", "(1280, 307, 191)\n", "(1280, 307, 3)\n" ] } ], "source": [ "\n", "def rgb2gray(rgb):\n", " return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])\n", "\n", "Y=np.floor(rgb2gray(roi))#(np.sum(roi,axis=2)\n", "\n", "labels = np.unique(Y[Y > 0])\n", "print('The training data include {n} classes: {classes}'.format(n=labels.size, classes=labels))\n", "print(img.shape)\n", "\n", "print(roi.shape)\n", "img =img.reshape(392960,191)\n", "\n", "#print(img)\n", "#print(roi)\n", "\n", "#print(roi > 0)\n", "#print(roi[roi > 0])" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0., 1488., 2976., 4465., 5953., 7441., 7663., 9152.])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "Y=Y.ravel()\n", "np.unique(Y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 拆分训练集50,验证集25,测试集25" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(8079,)\n", "(8079, 191)\n" ] } ], "source": [ "X = img[Y>0,:]\n", "Y = Y[Y>0]\n", "print(Y.shape)\n", "print(X.shape)\n", "\n", "train_size=0.75\n", "test_size=0.25\n", "shape=Y.size\n", "\n", "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, train_size=train_size, test_size=test_size, random_state=None)\n", "#X_train, X_valid, Y_train, Y_valid = train_test_split(X_train, Y_train, train_size=0.66, random_state=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 训练模型" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "SGDClassifier(alpha=0.01, average=False, class_weight=None, epsilon=0.1,\n", " eta0=0.0, fit_intercept=True, l1_ratio=0.15,\n", " learning_rate='optimal', loss='log', n_iter=200, n_jobs=1,\n", " penalty='l2', power_t=0.5, random_state=None, shuffle=True,\n", " verbose=0, warm_start=False)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#模型参数\n", "lossParams=[\"hinge\",\"modified_huber\",\"log\"]\n", "penaltyParams=[\"l2\",\"l1\",\"elasticnet\"]\n", "n_iterParams=200#迭代次数\n", "\n", "i=2\n", "j=0\n", "\n", "params=[lossParams[i],penaltyParams[j],n_iterParams]\n", "\n", "clf = SGDClassifier(loss=params[0], penalty=params[1],alpha=0.01, n_iter=params[2], fit_intercept=True)\n", "clf.fit(X_train, Y_train)\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": true }, "outputs": [], "source": [ "scores=[0,0]\n", "#训练集得分\n", "scores[0]=(\"%.6f\" % clf.score(X_train, Y_train))" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#测试集得分\n", "#用于调试分类器参数\n", "y_model=clf.predict(X_test)\n", "scores[1]= (\"%.6f\" % clf.score(X_test,Y_test))\n", "\n", "#混淆矩阵\n", "mat = confusion_matrix(Y_test, y_model)\n", "\n", "sns.heatmap(mat, square=True, annot=True,fmt='d', cbar=False)\n", "plt.xlabel('predicted value')\n", "plt.ylabel('true value')\n", "\n", "filename=classification+str(train_size)+\"_\"+str(shape)+\"_\"+str(params)+\"_\"+str(scores)\n", "plt.savefig(filename+\".png\",dpi=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 对图形分类" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": true, "scrolled": true }, "outputs": [], "source": [ "#对图像进行分类\n", "img_class=clf.predict(img)\n", "img_class=img_class.reshape(1280,307)\n", "#绘制 plt.imshow(img_class)\n", "#保存\n", "io.imsave(filename+\".tif\",img_class)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#plt.imshow(img.reshape(1280,307,191))\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['2', 2, 'kome']['0.996534', '0.997525'].jpg\n", "(2, 2, 3)\n" ] }, { "data": { "text/plain": [ "array([[ 6, 8],\n", " [10, 10]])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "params=['2',2,'kome']\n", "strs=str(params)+str(scores)+'.jpg'\n", "print(strs)\n", "\n", "p=np.array([[[1,2,3],[1,2,5]],[[1,4,5],[1,3,6]]])\n", "p=p.reshape(2,2,3)\n", "print(p.shape)\n", "np.sum(p,axis=2)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.0" } }, "nbformat": 4, "nbformat_minor": 2 }