{"id":1600,"date":"2019-09-04T14:19:16","date_gmt":"2019-09-04T06:19:16","guid":{"rendered":"http:\/\/www.sniper97.cn\/?p=1600"},"modified":"2019-09-04T14:19:16","modified_gmt":"2019-09-04T06:19:16","slug":"%e3%80%90%e6%9c%ba%e5%99%a8%e5%ad%a6%e4%b9%a0%e3%80%91%e6%94%af%e6%8c%81%e5%90%91%e9%87%8f%e6%9c%ba","status":"publish","type":"post","link":"http:\/\/www.sniper97.cn\/index.php\/note\/machine-learning-in-action\/1600\/","title":{"rendered":"\u3010\u5434\u6069\u8fbe\u673a\u5668\u5b66\u4e60\u3011\u652f\u6301\u5411\u91cf\u673a"},"content":{"rendered":"\n<p> \u5434\u6069\u8fbeMachine-Learning \u7b2c\u4e03\u5468\uff1a\u652f\u6301\u5411\u91cf\u673a\uff08support vector machine\uff09 <\/p>\n\n\n<h2 class=\"wp-block-heading\">1.\u7ebf\u6027\u652f\u6301\u5411\u91cf\u673a<\/h2>\n\n\n<p>\u5bf9\u4e8e\u7ebf\u6027\u652f\u6301\u5411\u91cf\u673a\uff0c\u548c\u903b\u8f91\u56de\u5f52\u5341\u5206\u7c7b\u4f3c\uff0c\u4e0d\u540c\u7684\u662f\uff0c\u4ee3\u4ef7\u51fd\u6570\u53d1\u751f\u53d8\u5316\u3002<\/p>\n\n\n<p>\u7531\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"654\" height=\"101\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-43.png\" alt=\"\" class=\"wp-image-1607\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-43.png 654w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-43-300x46.png 300w\" sizes=\"(max-width: 654px) 100vw, 654px\" \/><\/figure><\/div>\n\n\n<p>\u53d8\u6210\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"592\" height=\"82\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-42.png\" alt=\"\" class=\"wp-image-1606\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-42.png 592w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-42-300x42.png 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><\/figure><\/div>\n\n\n<p>\u8fd9\u91cc\u5c06\u4ee3\u4ef7\u51fd\u6570\u56fe\u5f62\u53d8\u4e3a\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"202\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-44.png\" alt=\"\" class=\"wp-image-1608\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-44.png 580w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-44-300x104.png 300w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/figure><\/div>\n\n\n<p>\u8fd9\u6837\u4ee3\u4ef7\u8ba1\u7b97\u5c31\u4ece\u4e4b\u524d\u7684&gt;0\u548c&lt;0\u7684\u5206\u754c\u53d8\u6210&lt;-1\u548c&gt;1\u3002\u90a3\u4e48\u51fa\u9519\u7684\u6982\u7387\u4e5f\u5c31\u66f4\u4f4e\u3002<\/p>\n\n\n<p>\u540c\u65f6\u5bf9\u4e8e\u524d\u9762\u7684\u5e38\u6570C\uff0c\u5982\u4e0b\u56fe\uff0c\u4e24\u4e2a\u5206\u754c\u7ebf\u5f88\u660e\u663e\u9ed1\u7ebf\u8981\u6bd4\u7d2b\u8272\u7684\u5206\u7c7b\u6548\u679c\u8981\u597d\uff0c\u800cC\u5c31\u662f\u51b3\u5b9a\u8fd9\u6761\u7ebf\u7684\u3002<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"322\" height=\"244\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-49.png\" alt=\"\" class=\"wp-image-1615\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-49.png 322w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-49-300x227.png 300w\" sizes=\"(max-width: 322px) 100vw, 322px\" \/><\/figure><\/div>\n\n\n<p>\u5982\u679c\u4f60\u5c06<strong> <\/strong>C \u8bbe\u7f6e\u7684\u4e0d\u8981\u592a\u5927\uff0c\u5219\u4f60\u6700\u7ec8\u4f1a\u5f97\u5230\u8fd9\u6761\u9ed1\u7ebf \uff0c\u5f53 C \u4e0d\u662f\u975e\u5e38\u975e\u5e38\u5927\u7684\u65f6\u5019\uff0c\u5b83\u53ef\u4ee5\u5ffd\u7565\u6389\u4e00\u4e9b\u5f02\u5e38\u70b9\u7684 \u5f71\u54cd\uff0c\u5f97\u5230\u66f4\u597d\u7684\u51b3\u7b56\u754c\u3002<\/p>\n\n\n<p>\u4e0b\u9762\u4f7f\u7528\u4ee3\u7801\u753b\u56fe\u9a8c\u8bc1\uff1a <\/p>\n\n\n<p>\u9996\u5148\u5bfc\u5305\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import numpy as np\nimport pandas as pd\nimport sklearn.svm\nimport seaborn as sns\nimport scipy.io as sio\nimport matplotlib.pyplot as plt<\/code><\/pre>\n\n\n<p>\u8bfb\u53d6\u6570\u636e\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>mat = sio.loadmat('.\/data\/ex6data1.mat')\nprint(mat.keys())\ndata = pd.DataFrame(mat.get('X'), columns=['X1', 'X2'])\ndata['y'] = mat.get('y')<\/code><\/pre>\n\n\n<p>\u67e5\u770b\u6570\u636e\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>fig, ax = plt.subplots(figsize=(8, 6))\nax.scatter(data['X1'], data['X2'], s=50, c=data['y'])\nax.set_title('Raw data')\nax.set_xlabel('X1')\nax.set_ylabel('X2')\nplt.show()<\/code><\/pre>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"444\" height=\"339\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-45.png\" alt=\"\" class=\"wp-image-1609\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-45.png 444w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-45-300x229.png 300w\" sizes=\"(max-width: 444px) 100vw, 444px\" \/><\/figure><\/div>\n\n\n<p>\u5f53C=1\u65f6\uff0c\u4f7f\u7528\u652f\u6301\u5411\u91cf\u673a\u8fdb\u884c\u8ba1\u7b97\u5e76\u753b\u56fe\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>svc1 = sklearn.svm.LinearSVC(C=1, loss='hinge')\nsvc1.fit(data[['X1', 'X2']], data['y'])\nsvc1.score(data[['X1', 'X2']], data['y'])\ndata['SVM1 Confidence'] = svc1.decision_function(data[['X1', 'X2']])\nfig, ax = plt.subplots(figsize=(8, 6))\nax.scatter(data['X1'], data['X2'], s=50, c=data['SVM1 Confidence'])\nax.set_title('SVM (C=1) Decision Confidence')\nplt.show()<\/code><\/pre>\n\n\n<p>\u5176\u4e2dsklearn.svm.LinearSVC\u4e2d\u7528\u5230\u7684\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\"\"\"\nC : float, optional (default=1.0)\n    Penalty parameter C of the error term.\nloss : string, \u2018hinge\u2019 or \u2018squared_hinge\u2019 (default=\u2019squared_hinge\u2019)\n    Specifies the loss function. \u2018hinge\u2019 is the standard SVM loss (used e.g. by the SVC class) while \u2018squared_hinge\u2019 is the square of the hinge loss.\n\"\"\"<\/code><\/pre>\n\n\n<p>\u56fe\u50cf\u5982\u4e0b\uff0c\u6ce8\u610f\u770b\u8fd9\u4e2a\u70b9\uff0c\u88ab\u5212\u5206\u4e3a\u5de6\u4e0b\u7c7b\u522b\u4e86\u3002\u540c\u65f6\u6211\u4eec\u5dee\u4e0d\u591a\u53ef\u4ee5\u753b\u51fa\u5b83\u5206\u7c7b\u7684\u8fd9\u6761\u7ebf\u4e86\u3002<\/p>\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"336\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-47.png\" alt=\"\" class=\"wp-image-1613\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-47.png 449w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-47-300x224.png 300w\" sizes=\"(max-width: 449px) 100vw, 449px\" \/><\/figure>\n\n\n<p>\u5f53C\u53d8\u6210100\u65f6\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>svc100 = sklearn.svm.LinearSVC(C=100, loss='hinge')\nsvc100.fit(data[['X1', 'X2']], data['y'])\nsvc100.score(data[['X1', 'X2']], data['y'])\ndata['SVM100 Confidence'] = svc100.decision_function(data[['X1', 'X2']])\nfig, ax = plt.subplots(figsize=(8, 6))\nax.scatter(data['X1'], data['X2'], s=50, c=data['SVM100 Confidence'])\nax.set_title('SVM (C=100) Decision Confidence')\nplt.show()<\/code><\/pre>\n\n\n<p>\u8fd9\u65f6\u53ef\u80fd\u7684\u5206\u754c\u7ebf\u5c31\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"451\" height=\"331\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-48.png\" alt=\"\" class=\"wp-image-1614\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-48.png 451w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-48-300x220.png 300w\" sizes=\"(max-width: 451px) 100vw, 451px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">2.\u4f7f\u7528\u9ad8\u65af\u6838\u51fd\u6570\u7684\u652f\u6301\u5411\u91cf\u673a<\/h2>\n\n\n<p>\u6838\u51fd\u6570\u5176\u5b9e\u5c31\u662f\u5c06\u4e8c\u7ef4\u7684\u6570\u636e\u63d0\u5347\u591a\u591a\u7ef4\uff0c\u8fd9\u6837\u53ef\u4ee5\u627e\u5230\u975e\u7ebf\u6027\u7684\u6570\u636e\u5206\u7c7b\u8fb9\u754c\uff0c\u7c7b\u4f3c\u4e8e\u8fd9\u6837\u3002<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"284\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-50.png\" alt=\"\" class=\"wp-image-1616\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-50.png 606w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-50-300x141.png 300w\" sizes=\"(max-width: 606px) 100vw, 606px\" \/><\/figure><\/div>\n\n\n<p>\u9ad8\u65af\u51fd\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"262\" height=\"76\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-51.png\" alt=\"\" class=\"wp-image-1617\"\/><\/figure><\/div>\n\n\n<p>\u5bf9\u4e8e\u4e0d\u540c\u7684\u53c2\u6570\uff0c\u56fe\u4e5f\u4f1a\u4ea7\u751f\u4e0d\u4e00\u6837\u7684\u6548\u679c\u3002<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"708\" height=\"319\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-52.png\" alt=\"\" class=\"wp-image-1618\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-52.png 708w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-52-300x135.png 300w\" sizes=\"(max-width: 708px) 100vw, 708px\" \/><\/figure><\/div>\n\n\n<p> \u4e0b\u9762\u662f\u652f\u6301\u5411\u91cf\u673a\u7684\u4e24\u4e2a\u53c2\u6570 C \u548c \u03c3 \u7684\u5f71\u54cd\uff1a<\/p>\n\n\n<ul><li> C=1\/\u03bb C \u8f83\u5927\u65f6\uff0c\u76f8\u5f53\u4e8e \u03bb \u8f83\u5c0f\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u8fc7\u62df\u5408\uff0c\u9ad8\u65b9\u5dee\uff1b<\/li><li> C \u8f83\u5c0f\u65f6\uff0c\u76f8\u5f53\u4e8e \u03bb \u8f83\u5927\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f4e\u62df\u5408\uff0c\u9ad8\u504f\u5dee\uff1b<\/li><li> \u03c3 \u8f83\u5927\u65f6\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f4e\u65b9\u5dee\uff0c\u9ad8\u504f\u5dee\uff1b<\/li><li> \u03c3 \u8f83\u5c0f\u65f6\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4\u4f4e\u504f\u5dee\uff0c\u9ad8\u65b9\u5dee\u3002 <\/li><\/ul>\n\n\n<p>\u4e0b\u9762\u6211\u4eec\u4f7f\u7528\u4e00\u4e0b\u4f7f\u7528\u9ad8\u65af\u51fd\u6570\u7684\u652f\u6301\u5411\u91cf\u673a\uff1a<\/p>\n\n\n<p>\u9996\u5148\u5bfc\u5305\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>import matplotlib.pyplot as plt\nfrom sklearn import svm\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport scipy.io as sio<\/code><\/pre>\n\n\n<p>\u8bfb\u53d6\u6570\u636e\u5e76\u753b\u51fa\u6570\u636e\u56fe\u50cf\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>mat = sio.loadmat('.\/data\/ex6data2.mat')\nprint(mat.keys())\ndata = pd.DataFrame(mat.get('X'), columns=['X1', 'X2'])\ndata['y'] = mat.get('y')\nsns.lmplot('X1', 'X2', hue='y', data=data,\n           height=5,\n           fit_reg=False,\n           scatter_kws={\"s\": 10})\nplt.show()<\/code><\/pre>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"398\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-54.png\" alt=\"\" class=\"wp-image-1621\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-54.png 443w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-54-300x270.png 300w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/figure><\/div>\n\n\n<p>\u968f\u540e\u662f\u4f7f\u7528\u652f\u6301\u5411\u91cf\u673a\u8fdb\u884c\u7684\u5206\u7c7b\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>svc = svm.SVC(C=100, kernel='rbf', gamma=10, probability=True)\nprint(svc)\nsvc.fit(data[['X1', 'X2']], data['y'])\nsvc.score(data[['X1', 'X2']], data['y'])\npredict_prob = svc.predict_proba(data[['X1', 'X2']])[:, 0]\nfig, ax = plt.subplots(figsize=(8,6))\nax.scatter(data['X1'], data['X2'], s=30, c=predict_prob)\nplt.show()<\/code><\/pre>\n\n\n<p>\u5176\u4e2dsvm\u4e2d\u90e8\u5206\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n\n\n<pre class=\"wp-block-code\"><code>\"\"\"\n\u7ebf\u6027\u6838\u51fd\u6570kernel='linear'\n\u591a\u9879\u5f0f\u6838\u51fd\u6570kernel='poly'\n\u5f84\u5411\u57fa\u6838\u51fd\u6570kernel='rbf'\nsigmod\u6838\u51fd\u6570kernel='sigmod'\n\"\"\"<\/code><\/pre>\n\n\n<p>\u6700\u7ec8\u753b\u51fa\u6765\u7684\u56fe\uff0c\u53ef\u4ee5\u770b\u5230\u548c\u7528\u7ed3\u679c\u753b\u7684\u6570\u636e\u56fe\u5dee\u4e0d\u592a\u591a\uff1a<\/p>\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"332\" src=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-53.png\" alt=\"\" class=\"wp-image-1620\" srcset=\"http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-53.png 447w, http:\/\/www.sniper97.cn\/wp-content\/uploads\/2019\/09\/\u56fe\u7247-53-300x223.png 300w\" sizes=\"(max-width: 447px) 100vw, 447px\" \/><\/figure><\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5434\u6069\u8fbeMachine-Learning \u7b2c\u4e03\u5468\uff1a\u652f\u6301\u5411\u91cf\u673a\uff08support vector machi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[6,10],"tags":[],"views":4453,"_links":{"self":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/1600"}],"collection":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1600"}],"version-history":[{"count":0,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/posts\/1600\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1600"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sniper97.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}