Skip to content

Commit 7a576a2

Browse files
committed
Pushing the docs to dev/ for branch: master, commit ba4720a01da0337ada688314ac207b7f69a2ea50
1 parent 5b50309 commit 7a576a2

File tree

1,070 files changed

+3415
-3421
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,070 files changed

+3415
-3421
lines changed
-56 Bytes
Binary file not shown.
-54 Bytes
Binary file not shown.

dev/_downloads/plot_lda_qda.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
},
2727
"outputs": [],
2828
"source": [
29-
"print(__doc__)\n\nfrom scipy import linalg\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib as mpl\nfrom matplotlib import colors\n\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n\n# #############################################################################\n# Colormap\ncmap = colors.LinearSegmentedColormap(\n 'red_blue_classes',\n {'red': [(0, 1, 1), (1, 0.7, 0.7)],\n 'green': [(0, 0.7, 0.7), (1, 0.7, 0.7)],\n 'blue': [(0, 0.7, 0.7), (1, 1, 1)]})\nplt.cm.register_cmap(cmap=cmap)\n\n\n# #############################################################################\n# Generate datasets\ndef dataset_fixed_cov():\n '''Generate 2 Gaussians samples with the same covariance matrix'''\n n, dim = 300, 2\n np.random.seed(0)\n C = np.array([[0., -0.23], [0.83, .23]])\n X = np.r_[np.dot(np.random.randn(n, dim), C),\n np.dot(np.random.randn(n, dim), C) + np.array([1, 1])]\n y = np.hstack((np.zeros(n), np.ones(n)))\n return X, y\n\n\ndef dataset_cov():\n '''Generate 2 Gaussians samples with different covariance matrices'''\n n, dim = 300, 2\n np.random.seed(0)\n C = np.array([[0., -1.], [2.5, .7]]) * 2.\n X = np.r_[np.dot(np.random.randn(n, dim), C),\n np.dot(np.random.randn(n, dim), C.T) + np.array([1, 4])]\n y = np.hstack((np.zeros(n), np.ones(n)))\n return X, y\n\n\n# #############################################################################\n# Plot functions\ndef plot_data(lda, X, y, y_pred, fig_index):\n splot = plt.subplot(2, 2, fig_index)\n if fig_index == 1:\n plt.title('Linear Discriminant Analysis')\n plt.ylabel('Data with\\n fixed covariance')\n elif fig_index == 2:\n plt.title('Quadratic Discriminant Analysis')\n elif fig_index == 3:\n plt.ylabel('Data with\\n varying covariances')\n\n tp = (y == y_pred) # True Positive\n tp0, tp1 = tp[y == 0], tp[y == 1]\n X0, X1 = X[y == 0], X[y == 1]\n X0_tp, X0_fp = X0[tp0], X0[~tp0]\n X1_tp, X1_fp = X1[tp1], X1[~tp1]\n\n alpha = 0.5\n\n # class 0: dots\n plt.plot(X0_tp[:, 0], X0_tp[:, 1], 'o', alpha=alpha,\n color='red', markeredgecolor='k')\n plt.plot(X0_fp[:, 0], X0_fp[:, 1], '*', alpha=alpha,\n color='#990000', markeredgecolor='k') # dark red\n\n # class 1: dots\n plt.plot(X1_tp[:, 0], X1_tp[:, 1], 'o', alpha=alpha,\n color='blue', markeredgecolor='k')\n plt.plot(X1_fp[:, 0], X1_fp[:, 1], '*', alpha=alpha,\n color='#000099', markeredgecolor='k') # dark blue\n\n # class 0 and 1 : areas\n nx, ny = 200, 100\n x_min, x_max = plt.xlim()\n y_min, y_max = plt.ylim()\n xx, yy = np.meshgrid(np.linspace(x_min, x_max, nx),\n np.linspace(y_min, y_max, ny))\n Z = lda.predict_proba(np.c_[xx.ravel(), yy.ravel()])\n Z = Z[:, 1].reshape(xx.shape)\n plt.pcolormesh(xx, yy, Z, cmap='red_blue_classes',\n norm=colors.Normalize(0., 1.))\n plt.contour(xx, yy, Z, [0.5], linewidths=2., colors='k')\n\n # means\n plt.plot(lda.means_[0][0], lda.means_[0][1],\n 'o', color='black', markersize=10, markeredgecolor='k')\n plt.plot(lda.means_[1][0], lda.means_[1][1],\n 'o', color='black', markersize=10, markeredgecolor='k')\n\n return splot\n\n\ndef plot_ellipse(splot, mean, cov, color):\n v, w = linalg.eigh(cov)\n u = w[0] / linalg.norm(w[0])\n angle = np.arctan(u[1] / u[0])\n angle = 180 * angle / np.pi # convert to degrees\n # filled Gaussian at 2 standard deviation\n ell = mpl.patches.Ellipse(mean, 2 * v[0] ** 0.5, 2 * v[1] ** 0.5,\n 180 + angle, facecolor=color,\n edgecolor='yellow',\n linewidth=2, zorder=2)\n ell.set_clip_box(splot.bbox)\n ell.set_alpha(0.5)\n splot.add_artist(ell)\n splot.set_xticks(())\n splot.set_yticks(())\n\n\ndef plot_lda_cov(lda, splot):\n plot_ellipse(splot, lda.means_[0], lda.covariance_, 'red')\n plot_ellipse(splot, lda.means_[1], lda.covariance_, 'blue')\n\n\ndef plot_qda_cov(qda, splot):\n plot_ellipse(splot, qda.means_[0], qda.covariance_[0], 'red')\n plot_ellipse(splot, qda.means_[1], qda.covariance_[1], 'blue')\n\nfor i, (X, y) in enumerate([dataset_fixed_cov(), dataset_cov()]):\n # Linear Discriminant Analysis\n lda = LinearDiscriminantAnalysis(solver=\"svd\", store_covariance=True)\n y_pred = lda.fit(X, y).predict(X)\n splot = plot_data(lda, X, y, y_pred, fig_index=2 * i + 1)\n plot_lda_cov(lda, splot)\n plt.axis('tight')\n\n # Quadratic Discriminant Analysis\n qda = QuadraticDiscriminantAnalysis(store_covariance=True)\n y_pred = qda.fit(X, y).predict(X)\n splot = plot_data(qda, X, y, y_pred, fig_index=2 * i + 2)\n plot_qda_cov(qda, splot)\n plt.axis('tight')\nplt.suptitle('Linear Discriminant Analysis vs Quadratic Discriminant'\n 'Analysis')\nplt.show()"
29+
"print(__doc__)\n\nfrom scipy import linalg\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib as mpl\nfrom matplotlib import colors\n\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis\n\n# #############################################################################\n# Colormap\ncmap = colors.LinearSegmentedColormap(\n 'red_blue_classes',\n {'red': [(0, 1, 1), (1, 0.7, 0.7)],\n 'green': [(0, 0.7, 0.7), (1, 0.7, 0.7)],\n 'blue': [(0, 0.7, 0.7), (1, 1, 1)]})\nplt.cm.register_cmap(cmap=cmap)\n\n\n# #############################################################################\n# Generate datasets\ndef dataset_fixed_cov():\n '''Generate 2 Gaussians samples with the same covariance matrix'''\n n, dim = 300, 2\n np.random.seed(0)\n C = np.array([[0., -0.23], [0.83, .23]])\n X = np.r_[np.dot(np.random.randn(n, dim), C),\n np.dot(np.random.randn(n, dim), C) + np.array([1, 1])]\n y = np.hstack((np.zeros(n), np.ones(n)))\n return X, y\n\n\ndef dataset_cov():\n '''Generate 2 Gaussians samples with different covariance matrices'''\n n, dim = 300, 2\n np.random.seed(0)\n C = np.array([[0., -1.], [2.5, .7]]) * 2.\n X = np.r_[np.dot(np.random.randn(n, dim), C),\n np.dot(np.random.randn(n, dim), C.T) + np.array([1, 4])]\n y = np.hstack((np.zeros(n), np.ones(n)))\n return X, y\n\n\n# #############################################################################\n# Plot functions\ndef plot_data(lda, X, y, y_pred, fig_index):\n splot = plt.subplot(2, 2, fig_index)\n if fig_index == 1:\n plt.title('Linear Discriminant Analysis')\n plt.ylabel('Data with\\n fixed covariance')\n elif fig_index == 2:\n plt.title('Quadratic Discriminant Analysis')\n elif fig_index == 3:\n plt.ylabel('Data with\\n varying covariances')\n\n tp = (y == y_pred) # True Positive\n tp0, tp1 = tp[y == 0], tp[y == 1]\n X0, X1 = X[y == 0], X[y == 1]\n X0_tp, X0_fp = X0[tp0], X0[~tp0]\n X1_tp, X1_fp = X1[tp1], X1[~tp1]\n\n # class 0: dots\n plt.scatter(X0_tp[:, 0], X0_tp[:, 1], marker='.', color='red')\n plt.scatter(X0_fp[:, 0], X0_fp[:, 1], marker='x',\n s=20, color='#990000') # dark red\n\n # class 1: dots\n plt.scatter(X1_tp[:, 0], X1_tp[:, 1], marker='.', color='blue')\n plt.scatter(X1_fp[:, 0], X1_fp[:, 1], marker='x',\n s=20, color='#000099') # dark blue\n\n # class 0 and 1 : areas\n nx, ny = 200, 100\n x_min, x_max = plt.xlim()\n y_min, y_max = plt.ylim()\n xx, yy = np.meshgrid(np.linspace(x_min, x_max, nx),\n np.linspace(y_min, y_max, ny))\n Z = lda.predict_proba(np.c_[xx.ravel(), yy.ravel()])\n Z = Z[:, 1].reshape(xx.shape)\n plt.pcolormesh(xx, yy, Z, cmap='red_blue_classes',\n norm=colors.Normalize(0., 1.), zorder=0)\n plt.contour(xx, yy, Z, [0.5], linewidths=2., colors='white')\n\n # means\n plt.plot(lda.means_[0][0], lda.means_[0][1],\n '*', color='yellow', markersize=15, markeredgecolor='grey')\n plt.plot(lda.means_[1][0], lda.means_[1][1],\n '*', color='yellow', markersize=15, markeredgecolor='grey')\n\n return splot\n\n\ndef plot_ellipse(splot, mean, cov, color):\n v, w = linalg.eigh(cov)\n u = w[0] / linalg.norm(w[0])\n angle = np.arctan(u[1] / u[0])\n angle = 180 * angle / np.pi # convert to degrees\n # filled Gaussian at 2 standard deviation\n ell = mpl.patches.Ellipse(mean, 2 * v[0] ** 0.5, 2 * v[1] ** 0.5,\n 180 + angle, facecolor=color,\n edgecolor='black', linewidth=2)\n ell.set_clip_box(splot.bbox)\n ell.set_alpha(0.2)\n splot.add_artist(ell)\n splot.set_xticks(())\n splot.set_yticks(())\n\n\ndef plot_lda_cov(lda, splot):\n plot_ellipse(splot, lda.means_[0], lda.covariance_, 'red')\n plot_ellipse(splot, lda.means_[1], lda.covariance_, 'blue')\n\n\ndef plot_qda_cov(qda, splot):\n plot_ellipse(splot, qda.means_[0], qda.covariance_[0], 'red')\n plot_ellipse(splot, qda.means_[1], qda.covariance_[1], 'blue')\n\n\nplt.figure(figsize=(10, 8), facecolor='white')\nfor i, (X, y) in enumerate([dataset_fixed_cov(), dataset_cov()]):\n # Linear Discriminant Analysis\n lda = LinearDiscriminantAnalysis(solver=\"svd\", store_covariance=True)\n y_pred = lda.fit(X, y).predict(X)\n splot = plot_data(lda, X, y, y_pred, fig_index=2 * i + 1)\n plot_lda_cov(lda, splot)\n plt.axis('tight')\n\n # Quadratic Discriminant Analysis\n qda = QuadraticDiscriminantAnalysis(store_covariance=True)\n y_pred = qda.fit(X, y).predict(X)\n splot = plot_data(qda, X, y, y_pred, fig_index=2 * i + 2)\n plot_qda_cov(qda, splot)\n plt.axis('tight')\nplt.suptitle('Linear Discriminant Analysis vs Quadratic Discriminant Analysis',\n y=1.02, fontsize=15)\nplt.tight_layout()\nplt.show()"
3030
]
3131
}
3232
],

dev/_downloads/plot_lda_qda.py

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,15 @@ def plot_data(lda, X, y, y_pred, fig_index):
7272
X0_tp, X0_fp = X0[tp0], X0[~tp0]
7373
X1_tp, X1_fp = X1[tp1], X1[~tp1]
7474

75-
alpha = 0.5
76-
7775
# class 0: dots
78-
plt.plot(X0_tp[:, 0], X0_tp[:, 1], 'o', alpha=alpha,
79-
color='red', markeredgecolor='k')
80-
plt.plot(X0_fp[:, 0], X0_fp[:, 1], '*', alpha=alpha,
81-
color='#990000', markeredgecolor='k') # dark red
76+
plt.scatter(X0_tp[:, 0], X0_tp[:, 1], marker='.', color='red')
77+
plt.scatter(X0_fp[:, 0], X0_fp[:, 1], marker='x',
78+
s=20, color='#990000') # dark red
8279

8380
# class 1: dots
84-
plt.plot(X1_tp[:, 0], X1_tp[:, 1], 'o', alpha=alpha,
85-
color='blue', markeredgecolor='k')
86-
plt.plot(X1_fp[:, 0], X1_fp[:, 1], '*', alpha=alpha,
87-
color='#000099', markeredgecolor='k') # dark blue
81+
plt.scatter(X1_tp[:, 0], X1_tp[:, 1], marker='.', color='blue')
82+
plt.scatter(X1_fp[:, 0], X1_fp[:, 1], marker='x',
83+
s=20, color='#000099') # dark blue
8884

8985
# class 0 and 1 : areas
9086
nx, ny = 200, 100
@@ -95,14 +91,14 @@ def plot_data(lda, X, y, y_pred, fig_index):
9591
Z = lda.predict_proba(np.c_[xx.ravel(), yy.ravel()])
9692
Z = Z[:, 1].reshape(xx.shape)
9793
plt.pcolormesh(xx, yy, Z, cmap='red_blue_classes',
98-
norm=colors.Normalize(0., 1.))
99-
plt.contour(xx, yy, Z, [0.5], linewidths=2., colors='k')
94+
norm=colors.Normalize(0., 1.), zorder=0)
95+
plt.contour(xx, yy, Z, [0.5], linewidths=2., colors='white')
10096

10197
# means
10298
plt.plot(lda.means_[0][0], lda.means_[0][1],
103-
'o', color='black', markersize=10, markeredgecolor='k')
99+
'*', color='yellow', markersize=15, markeredgecolor='grey')
104100
plt.plot(lda.means_[1][0], lda.means_[1][1],
105-
'o', color='black', markersize=10, markeredgecolor='k')
101+
'*', color='yellow', markersize=15, markeredgecolor='grey')
106102

107103
return splot
108104

@@ -115,10 +111,9 @@ def plot_ellipse(splot, mean, cov, color):
115111
# filled Gaussian at 2 standard deviation
116112
ell = mpl.patches.Ellipse(mean, 2 * v[0] ** 0.5, 2 * v[1] ** 0.5,
117113
180 + angle, facecolor=color,
118-
edgecolor='yellow',
119-
linewidth=2, zorder=2)
114+
edgecolor='black', linewidth=2)
120115
ell.set_clip_box(splot.bbox)
121-
ell.set_alpha(0.5)
116+
ell.set_alpha(0.2)
122117
splot.add_artist(ell)
123118
splot.set_xticks(())
124119
splot.set_yticks(())
@@ -133,6 +128,8 @@ def plot_qda_cov(qda, splot):
133128
plot_ellipse(splot, qda.means_[0], qda.covariance_[0], 'red')
134129
plot_ellipse(splot, qda.means_[1], qda.covariance_[1], 'blue')
135130

131+
132+
plt.figure(figsize=(10, 8), facecolor='white')
136133
for i, (X, y) in enumerate([dataset_fixed_cov(), dataset_cov()]):
137134
# Linear Discriminant Analysis
138135
lda = LinearDiscriminantAnalysis(solver="svd", store_covariance=True)
@@ -147,6 +144,7 @@ def plot_qda_cov(qda, splot):
147144
splot = plot_data(qda, X, y, y_pred, fig_index=2 * i + 2)
148145
plot_qda_cov(qda, splot)
149146
plt.axis('tight')
150-
plt.suptitle('Linear Discriminant Analysis vs Quadratic Discriminant'
151-
'Analysis')
147+
plt.suptitle('Linear Discriminant Analysis vs Quadratic Discriminant Analysis',
148+
y=1.02, fontsize=15)
149+
plt.tight_layout()
152150
plt.show()

dev/_downloads/scikit-learn-docs.pdf

-324 KB
Binary file not shown.

dev/_images/iris.png

0 Bytes

0 commit comments

Comments
 (0)