diff --git a/doc/MathFoundationML/CMSE820Syllabus_F20.pdf b/doc/MathFoundationML/CMSE820Syllabus_F20.pdf new file mode 100644 index 000000000..81dfe1cdc Binary files /dev/null and b/doc/MathFoundationML/CMSE820Syllabus_F20.pdf differ diff --git a/doc/MathFoundationML/Lecture10_0925.pdf b/doc/MathFoundationML/Lecture10_0925.pdf new file mode 100644 index 000000000..6a7c0ab54 Binary files /dev/null and b/doc/MathFoundationML/Lecture10_0925.pdf differ diff --git a/doc/MathFoundationML/Lecture11_0928.pdf b/doc/MathFoundationML/Lecture11_0928.pdf new file mode 100644 index 000000000..3098aa560 Binary files /dev/null and b/doc/MathFoundationML/Lecture11_0928.pdf differ diff --git a/doc/MathFoundationML/Lecture12_0930.pdf b/doc/MathFoundationML/Lecture12_0930.pdf new file mode 100644 index 000000000..af47ba552 Binary files /dev/null and b/doc/MathFoundationML/Lecture12_0930.pdf differ diff --git a/doc/MathFoundationML/Lecture13_1002.pdf b/doc/MathFoundationML/Lecture13_1002.pdf new file mode 100644 index 000000000..fb8e0973b Binary files /dev/null and b/doc/MathFoundationML/Lecture13_1002.pdf differ diff --git a/doc/MathFoundationML/Lecture14_1005.pdf b/doc/MathFoundationML/Lecture14_1005.pdf new file mode 100644 index 000000000..6a43e9fc2 Binary files /dev/null and b/doc/MathFoundationML/Lecture14_1005.pdf differ diff --git a/doc/MathFoundationML/Lecture15_1007.pdf b/doc/MathFoundationML/Lecture15_1007.pdf new file mode 100644 index 000000000..00cca028b Binary files /dev/null and b/doc/MathFoundationML/Lecture15_1007.pdf differ diff --git a/doc/MathFoundationML/Lecture16_1009.pdf b/doc/MathFoundationML/Lecture16_1009.pdf new file mode 100644 index 000000000..ba60d1893 Binary files /dev/null and b/doc/MathFoundationML/Lecture16_1009.pdf differ diff --git a/doc/MathFoundationML/Lecture17_1012(MidtermReview).pdf b/doc/MathFoundationML/Lecture17_1012(MidtermReview).pdf new file mode 100644 index 000000000..8b1bd6d55 Binary files /dev/null and b/doc/MathFoundationML/Lecture17_1012(MidtermReview).pdf differ diff --git a/doc/MathFoundationML/Lecture18_1014(MidtermReview).pdf b/doc/MathFoundationML/Lecture18_1014(MidtermReview).pdf new file mode 100644 index 000000000..02a97291e Binary files /dev/null and b/doc/MathFoundationML/Lecture18_1014(MidtermReview).pdf differ diff --git a/doc/MathFoundationML/Lecture19_1019.pdf b/doc/MathFoundationML/Lecture19_1019.pdf new file mode 100644 index 000000000..8e0c5e249 Binary files /dev/null and b/doc/MathFoundationML/Lecture19_1019.pdf differ diff --git a/doc/MathFoundationML/Lecture1_0902.pdf b/doc/MathFoundationML/Lecture1_0902.pdf new file mode 100644 index 000000000..24a828c8e Binary files /dev/null and b/doc/MathFoundationML/Lecture1_0902.pdf differ diff --git a/doc/MathFoundationML/Lecture20_1021.pdf b/doc/MathFoundationML/Lecture20_1021.pdf new file mode 100644 index 000000000..52b07b046 Binary files /dev/null and b/doc/MathFoundationML/Lecture20_1021.pdf differ diff --git a/doc/MathFoundationML/Lecture21_1023(KernelPCA).pdf b/doc/MathFoundationML/Lecture21_1023(KernelPCA).pdf new file mode 100644 index 000000000..161151e8f Binary files /dev/null and b/doc/MathFoundationML/Lecture21_1023(KernelPCA).pdf differ diff --git a/doc/MathFoundationML/Lecture22_1026.pdf b/doc/MathFoundationML/Lecture22_1026.pdf new file mode 100644 index 000000000..21c4968eb Binary files /dev/null and b/doc/MathFoundationML/Lecture22_1026.pdf differ diff --git a/doc/MathFoundationML/Lecture23_1028.pdf b/doc/MathFoundationML/Lecture23_1028.pdf new file mode 100644 index 000000000..6b172c7f2 Binary files /dev/null and b/doc/MathFoundationML/Lecture23_1028.pdf differ diff --git a/doc/MathFoundationML/Lecture24_1030.pdf b/doc/MathFoundationML/Lecture24_1030.pdf new file mode 100644 index 000000000..0a0a24170 Binary files /dev/null and b/doc/MathFoundationML/Lecture24_1030.pdf differ diff --git a/doc/MathFoundationML/Lecture25_1102.pdf b/doc/MathFoundationML/Lecture25_1102.pdf new file mode 100644 index 000000000..463529790 Binary files /dev/null and b/doc/MathFoundationML/Lecture25_1102.pdf differ diff --git a/doc/MathFoundationML/Lecture26_1104.pdf b/doc/MathFoundationML/Lecture26_1104.pdf new file mode 100644 index 000000000..00af8a8aa Binary files /dev/null and b/doc/MathFoundationML/Lecture26_1104.pdf differ diff --git a/doc/MathFoundationML/Lecture27_1106.pdf b/doc/MathFoundationML/Lecture27_1106.pdf new file mode 100644 index 000000000..b22493e46 Binary files /dev/null and b/doc/MathFoundationML/Lecture27_1106.pdf differ diff --git a/doc/MathFoundationML/Lecture28_1109.pdf b/doc/MathFoundationML/Lecture28_1109.pdf new file mode 100644 index 000000000..6207c36e3 Binary files /dev/null and b/doc/MathFoundationML/Lecture28_1109.pdf differ diff --git a/doc/MathFoundationML/Lecture29_1111.pdf b/doc/MathFoundationML/Lecture29_1111.pdf new file mode 100644 index 000000000..ee6d5f135 Binary files /dev/null and b/doc/MathFoundationML/Lecture29_1111.pdf differ diff --git a/doc/MathFoundationML/Lecture2_0904.pdf b/doc/MathFoundationML/Lecture2_0904.pdf new file mode 100644 index 000000000..3432d7093 Binary files /dev/null and b/doc/MathFoundationML/Lecture2_0904.pdf differ diff --git a/doc/MathFoundationML/Lecture30_1113.pdf b/doc/MathFoundationML/Lecture30_1113.pdf new file mode 100644 index 000000000..7b67a7857 Binary files /dev/null and b/doc/MathFoundationML/Lecture30_1113.pdf differ diff --git a/doc/MathFoundationML/Lecture31_1116.pdf b/doc/MathFoundationML/Lecture31_1116.pdf new file mode 100644 index 000000000..748a0051e Binary files /dev/null and b/doc/MathFoundationML/Lecture31_1116.pdf differ diff --git a/doc/MathFoundationML/Lecture32_1118.pdf b/doc/MathFoundationML/Lecture32_1118.pdf new file mode 100644 index 000000000..5e283af90 Binary files /dev/null and b/doc/MathFoundationML/Lecture32_1118.pdf differ diff --git a/doc/MathFoundationML/Lecture33_1120.pdf b/doc/MathFoundationML/Lecture33_1120.pdf new file mode 100644 index 000000000..9a7be693e Binary files /dev/null and b/doc/MathFoundationML/Lecture33_1120.pdf differ diff --git a/doc/MathFoundationML/Lecture35_1130.mp4 b/doc/MathFoundationML/Lecture35_1130.mp4 new file mode 100644 index 000000000..9d605a72e Binary files /dev/null and b/doc/MathFoundationML/Lecture35_1130.mp4 differ diff --git a/doc/MathFoundationML/Lecture36_1202.mp4 b/doc/MathFoundationML/Lecture36_1202.mp4 new file mode 100644 index 000000000..6d424d14e Binary files /dev/null and b/doc/MathFoundationML/Lecture36_1202.mp4 differ diff --git a/doc/MathFoundationML/Lecture37_1204.pdf b/doc/MathFoundationML/Lecture37_1204.pdf new file mode 100644 index 000000000..df01cc90b Binary files /dev/null and b/doc/MathFoundationML/Lecture37_1204.pdf differ diff --git a/doc/MathFoundationML/Lecture38_1207.pdf b/doc/MathFoundationML/Lecture38_1207.pdf new file mode 100644 index 000000000..13c4220a8 Binary files /dev/null and b/doc/MathFoundationML/Lecture38_1207.pdf differ diff --git a/doc/MathFoundationML/Lecture39_1209(FinalReview).pdf b/doc/MathFoundationML/Lecture39_1209(FinalReview).pdf new file mode 100644 index 000000000..b6081229b Binary files /dev/null and b/doc/MathFoundationML/Lecture39_1209(FinalReview).pdf differ diff --git a/doc/MathFoundationML/Lecture3_0909.pdf b/doc/MathFoundationML/Lecture3_0909.pdf new file mode 100644 index 000000000..e14c3d308 Binary files /dev/null and b/doc/MathFoundationML/Lecture3_0909.pdf differ diff --git a/doc/MathFoundationML/Lecture4_0911.pdf b/doc/MathFoundationML/Lecture4_0911.pdf new file mode 100644 index 000000000..662dcfeda Binary files /dev/null and b/doc/MathFoundationML/Lecture4_0911.pdf differ diff --git a/doc/MathFoundationML/Lecture5_0914.pdf b/doc/MathFoundationML/Lecture5_0914.pdf new file mode 100644 index 000000000..d46aeb11f Binary files /dev/null and b/doc/MathFoundationML/Lecture5_0914.pdf differ diff --git a/doc/MathFoundationML/Lecture6_0916.pdf b/doc/MathFoundationML/Lecture6_0916.pdf new file mode 100644 index 000000000..439bb9292 Binary files /dev/null and b/doc/MathFoundationML/Lecture6_0916.pdf differ diff --git a/doc/MathFoundationML/Lecture7_0918.pdf b/doc/MathFoundationML/Lecture7_0918.pdf new file mode 100644 index 000000000..81ee3c006 Binary files /dev/null and b/doc/MathFoundationML/Lecture7_0918.pdf differ diff --git a/doc/MathFoundationML/Lecture8_0921.pdf b/doc/MathFoundationML/Lecture8_0921.pdf new file mode 100644 index 000000000..16e4873b7 Binary files /dev/null and b/doc/MathFoundationML/Lecture8_0921.pdf differ diff --git a/doc/MathFoundationML/Lecture9_0923.pdf b/doc/MathFoundationML/Lecture9_0923.pdf new file mode 100644 index 000000000..a1628f770 Binary files /dev/null and b/doc/MathFoundationML/Lecture9_0923.pdf differ diff --git a/doc/MathFoundationML/PythonCode_KernelPCA.ipynb b/doc/MathFoundationML/PythonCode_KernelPCA.ipynb new file mode 100644 index 000000000..0e160db7d --- /dev/null +++ b/doc/MathFoundationML/PythonCode_KernelPCA.ipynb @@ -0,0 +1,256 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Nonlinear/Kernel PCA Example#" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Half-Moon Data##" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from sklearn.datasets import make_moons\n", + "X, y = make_moons(n_samples=100, random_state=123)\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "\n", + "plt.scatter(X[y==0, 0], X[y==0, 1], color='red', alpha=0.5)\n", + "plt.scatter(X[y==1, 0], X[y==1, 1], color='blue', alpha=0.5)\n", + "\n", + "plt.title('A nonlinear 2Ddataset')\n", + "plt.ylabel('y coordinate')\n", + "plt.xlabel('x coordinate')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Linear PCA with Two Principal Components##" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.decomposition import PCA\n", + "\n", + "scikit_pca = PCA(n_components=2)\n", + "X_spca = scikit_pca.fit_transform(X)\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "plt.scatter(X_spca[y==0, 0], X_spca[y==0, 1], color='red', alpha=0.5)\n", + "plt.scatter(X_spca[y==1, 0], X_spca[y==1, 1], color='blue', alpha=0.5)\n", + "\n", + "plt.title('First 2 principal components after Linear PCA')\n", + "plt.xlabel('PC1')\n", + "plt.ylabel('PC2')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Linear PCA with One Principal Component##" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "scikit_pca = PCA(n_components=1)\n", + "X_spca = scikit_pca.fit_transform(X)\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "plt.scatter(X_spca[y==0, 0], np.zeros((50,1)), color='red', alpha=0.5)\n", + "plt.scatter(X_spca[y==1, 0], np.zeros((50,1)), color='blue', alpha=0.5)\n", + "\n", + "plt.title('First principal component after Linear PCA')\n", + "plt.xlabel('PC1')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Kernel PCA with Radial Basis Function (RBF) Kernel and Two Principal Components##\n", + "\n", + "The radial basis function kernel is \n", + "$$\n", + "k(x,y) = \\exp(-\\gamma \\|x-y\\|^2).\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.decomposition import KernelPCA\n", + "\n", + "scikit_kpca = KernelPCA(n_components=2, kernel='rbf', gamma=15)\n", + "X_skernpca = scikit_kpca.fit_transform(X)\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "plt.scatter(X_skernpca[y==0, 0], X_skernpca[y==0, 1], color='red', alpha=0.5)\n", + "plt.scatter(X_skernpca[y==1, 0], X_skernpca[y==1, 1], color='blue', alpha=0.5)\n", + "\n", + "plt.text(-0.48, 0.35, 'gamma = 15', fontsize=12)\n", + "plt.title('First 2 principal components after RBF Kernel PCA via scikit-learn')\n", + "plt.xlabel('PC1')\n", + "plt.ylabel('PC2')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 5. Kernel PCA with Radial Basis Function (RBF) Kernel and One Principal Components##" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "scikit_kpca = KernelPCA(n_components=1, kernel='rbf', gamma=15)\n", + "X_skernpca = scikit_kpca.fit_transform(X)\n", + "\n", + "plt.figure(figsize=(8,6))\n", + "plt.scatter(X_skernpca[y==0, 0], np.zeros((50,1)), color='red', alpha=0.5)\n", + "plt.scatter(X_skernpca[y==1, 0], np.zeros((50,1)), color='blue', alpha=0.5)\n", + "plt.text(-0.48, 0.007, 'gamma = 15', fontsize=12)\n", + "plt.title('First principal component after RBF Kernel PCA')\n", + "plt.xlabel('PC1')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/MathFoundationML/PythonCode_MDS.ipynb b/doc/MathFoundationML/PythonCode_MDS.ipynb new file mode 100644 index 000000000..2e8801244 --- /dev/null +++ b/doc/MathFoundationML/PythonCode_MDS.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Multi-Dimensional Scaling #" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following experiment extracts pairwise distances from a collection of sample points, then uses MDS to reconstruct them. \n", + "\n", + "This example is taken from\n", + "https://jakevdp.github.io/PythonDataScienceHandbook/05.10-manifold-learning.html" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns; sns.set()\n", + "import numpy as np\n", + "\n", + "\n", + "\n", + "def make_hello(N=1000, rseed=42):\n", + " # Make a plot with \"HELLO\" text; save as PNG\n", + " fig, ax = plt.subplots(figsize=(4, 1))\n", + " fig.subplots_adjust(left=0, right=1, bottom=0, top=1)\n", + " ax.axis('off')\n", + " ax.text(0.5, 0.4, 'HELLO', va='center', ha='center', weight='bold', size=85)\n", + " fig.savefig('hello.png')\n", + " plt.close(fig)\n", + " \n", + " # Open this PNG and draw random points from it\n", + " from matplotlib.image import imread\n", + " data = imread('hello.png')[::-1, :, 0].T\n", + " rng = np.random.RandomState(rseed)\n", + " X = rng.rand(4 * N, 2)\n", + " i, j = (X * data.shape).astype(int).T\n", + " mask = (data[i, j] < 1)\n", + " X = X[mask]\n", + " X[:, 0] *= (data.shape[0] / data.shape[1])\n", + " X = X[:N]\n", + " return X[np.argsort(X[:, 0])]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "X = make_hello(1000)\n", + "colorize = dict(c=X[:, 0], cmap=plt.cm.get_cmap('rainbow', 5))\n", + "#plt.scatter(X[:, 0], X[:, 1], **colorize)\n", + "#plt.axis('equal');\n", + "\n", + "\n", + "# Rotate the words by 20 degrees\n", + "def rotate(X, angle):\n", + " theta = np.deg2rad(angle)\n", + " R = [[np.cos(theta), np.sin(theta)],\n", + " [-np.sin(theta), np.cos(theta)]]\n", + " return np.dot(X, R)\n", + " \n", + "X2 = rotate(X, 20)\n", + "plt.scatter(X2[:, 0], X2[:, 1], **colorize)\n", + "plt.axis('equal');" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We extract the pairwise distances between the sample points." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ONXnRHwpeTTT4bQuoxXyTCH3dfGcc7D+9/1RBaNYURKAhUGJuaRHx4WIVsuThuU6mJ+fn9jZPu1uf/DgQXz4wx/GmjVrAHCLwAMHDuCRRx4BALz55psYDAb44Ac/CADYunUrvv/97+PBBx886xymTsE995PdF3sKrbQydZKWGQ/13JatCtJY3lk5g61zjppjMBjgE5/4BE6ePFn7/pFHHsHOnTvD53//+99Yv359+HzllVfi0KFDSy5fv349jh49uuz2p07BtdJKK5eOjEYj/PKXvxz7PkVvwHiAL6VFncvypaRVcK200sq7Jk1TdCm5+uqr8ec//zl8PnbsGK688sra8mPHjoXPb731Vm35UjJ9QYZWWmnl/53cdttteOmll3D8+HH0+308++yzuPPOO8Py6667Dp1OBy+//DIAYN++fbXlS4mic2G4ttJKK628y7J//3786Ec/QlmW2LZtG3bs2IEdO3Zg165d2LBhA1555RV8/etfx5kzZ/CBD3wA3/nOd1AUxVnHbBVcK620cslKa6K20korl6y0Cq6VVlq5ZKVVcK200solK62Ca6WVVi5ZmRoFt1yi7cWQH/7wh9i8eTM2b96M7373uwA4pWTLli245557sGfPnrDu+SQCvxvyxBNP4NFHH536uT733HPYunUr7rvvPnzrW9+a6vnu27cvXAdPPPHEVM+1lYbQFMiRI0fo7rvvpnfeeYcWFhZoy5Yt9Oqrr17UOf3xj3+kT37ykzQcDmk0GtH27dtp//79dNddd9Hrr79OZVnSQw89RM8//zwREW3evJn+8pe/EBHRV77yFdq7d+9/fc4HDx6kW2+9lb785S9Tv9+f2rm+/vrrdMcdd9D8/DyNRiN64IEH6Pnnn5/K+S4uLtItt9xCb7/9NpVlSdu2baPf//73UznXVsZlKhBcmmg7MzMTEm0vpqxfvx6PPvooiqJAnud43/veh8OHD+M973kPbrjhBmRZhi1btuDAgQMTE4H/2/M/ceIE9uzZg4cffhgAcOjQoamd6+9+9zvcf//9uPrqq5HnOfbs2YNerzeV87XWwjmHfr+PqqpQVRXm5uamcq6tjMtUpGotl2h7MeTGG28M7w8fPozf/OY3+PSnPz02z6NHj553IvBKymOPPYbdu3djfn4ewORjOi1zfe2115DnOR5++GHMz8/jIx/5CG688capnO/c3By+8IUv4L777kOv18Mtt9wy1ce2lbpMBYI730Ta/4a8+uqreOihh/ClL30JN9xww8R5Xuz5//znP8c111yDjRs3hu+WmtPFnivAqOill17Ct7/9bTz99NM4dOgQ3njjjamc7yuvvIJf/OIX+MMf/oAXXngBWmscPnx4KufayrhMBYJbLtH2YsnLL7+MXbt24atf/So2b96MP/3pT7WEX5nn+SYCr5T8+te/xrFjx0JZmsXFRbz55pswJpbLmZa5AsAVV1yBjRs3Yu3atQCAj33sYzhw4MBUzvfFF1/Exo0bsW7dOgBsdj711FNTOddWxmUqENxyibYXQ+bn5/H5z38eTz75JDZv3gwAuPnmm/GPf/wDr732Gqy1eOaZZ3DnnXeedyLwSslPfvITPPPMM9i3bx927dqFj370o/jxj388lXMFgLvvvhsvvvgiTp06BWstXnjhBdx7771TOd/3v//9OHjwIBYXF0FEeO6556b2OmhlXKYCwV111VXYvXs3tm/fHhJtb7rppos6p6eeegrD4RCPP/54+O5Tn/oUHn/8cezcuRPD4RB33XUX7r33XgDAk08+WUsE3r59+8WaOgCg0+lM7VxvvvlmfPazn8WDDz6Isixx++2344EHHsB73/veqZvvHXfcgb/+9a/YunUr8jzHhg0bsHPnTtx+++1TN9dWxqVNtm+llVYuWZkKE7WVVlpp5d2QVsG10korl6y0Cq6VVlq5ZKVVcK200solK62Ca6WVVi5ZaRVcK620cslKq+BaaaWVS1ZaBddKK61csvK/buCMQI8lf8IAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import pairwise_distances\n", + "D = pairwise_distances(X)\n", + "#D.shape\n", + "\n", + "plt.imshow(D, zorder=2, cmap='Blues', interpolation='nearest')\n", + "plt.colorbar();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We apply the MDS algorithm to find features that preserve the pairwise distances." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.manifold import MDS\n", + "\n", + "\n", + "model = MDS(n_components=2, dissimilarity='precomputed', random_state=1)\n", + "out = model.fit_transform(D)\n", + "plt.scatter(out[:, 0], out[:, 1], **colorize)\n", + "plt.axis('equal');" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/doc/MathFoundationML/PythonCode_Perceptron.ipynb b/doc/MathFoundationML/PythonCode_Perceptron.ipynb new file mode 100644 index 000000000..efa49fa90 --- /dev/null +++ b/doc/MathFoundationML/PythonCode_Perceptron.ipynb @@ -0,0 +1,363 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Perceptron #" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'data': array([[5.1, 3.5, 1.4, 0.2],\n", + " [4.9, 3. , 1.4, 0.2],\n", + " [4.7, 3.2, 1.3, 0.2],\n", + " [4.6, 3.1, 1.5, 0.2],\n", + " [5. , 3.6, 1.4, 0.2],\n", + " [5.4, 3.9, 1.7, 0.4],\n", + " [4.6, 3.4, 1.4, 0.3],\n", + " [5. , 3.4, 1.5, 0.2],\n", + " [4.4, 2.9, 1.4, 0.2],\n", + " [4.9, 3.1, 1.5, 0.1],\n", + " [5.4, 3.7, 1.5, 0.2],\n", + " [4.8, 3.4, 1.6, 0.2],\n", + " [4.8, 3. , 1.4, 0.1],\n", + " [4.3, 3. , 1.1, 0.1],\n", + " [5.8, 4. , 1.2, 0.2],\n", + " [5.7, 4.4, 1.5, 0.4],\n", + " [5.4, 3.9, 1.3, 0.4],\n", + " [5.1, 3.5, 1.4, 0.3],\n", + " [5.7, 3.8, 1.7, 0.3],\n", + " [5.1, 3.8, 1.5, 0.3],\n", + " [5.4, 3.4, 1.7, 0.2],\n", + " [5.1, 3.7, 1.5, 0.4],\n", + " [4.6, 3.6, 1. , 0.2],\n", + " [5.1, 3.3, 1.7, 0.5],\n", + " [4.8, 3.4, 1.9, 0.2],\n", + " [5. , 3. , 1.6, 0.2],\n", + " [5. , 3.4, 1.6, 0.4],\n", + " [5.2, 3.5, 1.5, 0.2],\n", + " [5.2, 3.4, 1.4, 0.2],\n", + " [4.7, 3.2, 1.6, 0.2],\n", + " [4.8, 3.1, 1.6, 0.2],\n", + " [5.4, 3.4, 1.5, 0.4],\n", + " [5.2, 4.1, 1.5, 0.1],\n", + " [5.5, 4.2, 1.4, 0.2],\n", + " [4.9, 3.1, 1.5, 0.2],\n", + " [5. , 3.2, 1.2, 0.2],\n", + " [5.5, 3.5, 1.3, 0.2],\n", + " [4.9, 3.6, 1.4, 0.1],\n", + " [4.4, 3. , 1.3, 0.2],\n", + " [5.1, 3.4, 1.5, 0.2],\n", + " [5. , 3.5, 1.3, 0.3],\n", + " [4.5, 2.3, 1.3, 0.3],\n", + " [4.4, 3.2, 1.3, 0.2],\n", + " [5. , 3.5, 1.6, 0.6],\n", + " [5.1, 3.8, 1.9, 0.4],\n", + " [4.8, 3. , 1.4, 0.3],\n", + " [5.1, 3.8, 1.6, 0.2],\n", + " [4.6, 3.2, 1.4, 0.2],\n", + " [5.3, 3.7, 1.5, 0.2],\n", + " [5. , 3.3, 1.4, 0.2],\n", + " [7. , 3.2, 4.7, 1.4],\n", + " [6.4, 3.2, 4.5, 1.5],\n", + " [6.9, 3.1, 4.9, 1.5],\n", + " [5.5, 2.3, 4. , 1.3],\n", + " [6.5, 2.8, 4.6, 1.5],\n", + " [5.7, 2.8, 4.5, 1.3],\n", + " [6.3, 3.3, 4.7, 1.6],\n", + " [4.9, 2.4, 3.3, 1. ],\n", + " [6.6, 2.9, 4.6, 1.3],\n", + " [5.2, 2.7, 3.9, 1.4],\n", + " [5. , 2. , 3.5, 1. ],\n", + " [5.9, 3. , 4.2, 1.5],\n", + " [6. , 2.2, 4. , 1. ],\n", + " [6.1, 2.9, 4.7, 1.4],\n", + " [5.6, 2.9, 3.6, 1.3],\n", + " [6.7, 3.1, 4.4, 1.4],\n", + " [5.6, 3. , 4.5, 1.5],\n", + " [5.8, 2.7, 4.1, 1. ],\n", + " [6.2, 2.2, 4.5, 1.5],\n", + " [5.6, 2.5, 3.9, 1.1],\n", + " [5.9, 3.2, 4.8, 1.8],\n", + " [6.1, 2.8, 4. , 1.3],\n", + " [6.3, 2.5, 4.9, 1.5],\n", + " [6.1, 2.8, 4.7, 1.2],\n", + " [6.4, 2.9, 4.3, 1.3],\n", + " [6.6, 3. , 4.4, 1.4],\n", + " [6.8, 2.8, 4.8, 1.4],\n", + " [6.7, 3. , 5. , 1.7],\n", + " [6. , 2.9, 4.5, 1.5],\n", + " [5.7, 2.6, 3.5, 1. ],\n", + " [5.5, 2.4, 3.8, 1.1],\n", + " [5.5, 2.4, 3.7, 1. ],\n", + " [5.8, 2.7, 3.9, 1.2],\n", + " [6. , 2.7, 5.1, 1.6],\n", + " [5.4, 3. , 4.5, 1.5],\n", + " [6. , 3.4, 4.5, 1.6],\n", + " [6.7, 3.1, 4.7, 1.5],\n", + " [6.3, 2.3, 4.4, 1.3],\n", + " [5.6, 3. , 4.1, 1.3],\n", + " [5.5, 2.5, 4. , 1.3],\n", + " [5.5, 2.6, 4.4, 1.2],\n", + " [6.1, 3. , 4.6, 1.4],\n", + " [5.8, 2.6, 4. , 1.2],\n", + " [5. , 2.3, 3.3, 1. ],\n", + " [5.6, 2.7, 4.2, 1.3],\n", + " [5.7, 3. , 4.2, 1.2],\n", + " [5.7, 2.9, 4.2, 1.3],\n", + " [6.2, 2.9, 4.3, 1.3],\n", + " [5.1, 2.5, 3. , 1.1],\n", + " [5.7, 2.8, 4.1, 1.3],\n", + " [6.3, 3.3, 6. , 2.5],\n", + " [5.8, 2.7, 5.1, 1.9],\n", + " [7.1, 3. , 5.9, 2.1],\n", + " [6.3, 2.9, 5.6, 1.8],\n", + " [6.5, 3. , 5.8, 2.2],\n", + " [7.6, 3. , 6.6, 2.1],\n", + " [4.9, 2.5, 4.5, 1.7],\n", + " [7.3, 2.9, 6.3, 1.8],\n", + " [6.7, 2.5, 5.8, 1.8],\n", + " [7.2, 3.6, 6.1, 2.5],\n", + " [6.5, 3.2, 5.1, 2. ],\n", + " [6.4, 2.7, 5.3, 1.9],\n", + " [6.8, 3. , 5.5, 2.1],\n", + " [5.7, 2.5, 5. , 2. ],\n", + " [5.8, 2.8, 5.1, 2.4],\n", + " [6.4, 3.2, 5.3, 2.3],\n", + " [6.5, 3. , 5.5, 1.8],\n", + " [7.7, 3.8, 6.7, 2.2],\n", + " [7.7, 2.6, 6.9, 2.3],\n", + " [6. , 2.2, 5. , 1.5],\n", + " [6.9, 3.2, 5.7, 2.3],\n", + " [5.6, 2.8, 4.9, 2. ],\n", + " [7.7, 2.8, 6.7, 2. ],\n", + " [6.3, 2.7, 4.9, 1.8],\n", + " [6.7, 3.3, 5.7, 2.1],\n", + " [7.2, 3.2, 6. , 1.8],\n", + " [6.2, 2.8, 4.8, 1.8],\n", + " [6.1, 3. , 4.9, 1.8],\n", + " [6.4, 2.8, 5.6, 2.1],\n", + " [7.2, 3. , 5.8, 1.6],\n", + " [7.4, 2.8, 6.1, 1.9],\n", + " [7.9, 3.8, 6.4, 2. ],\n", + " [6.4, 2.8, 5.6, 2.2],\n", + " [6.3, 2.8, 5.1, 1.5],\n", + " [6.1, 2.6, 5.6, 1.4],\n", + " [7.7, 3. , 6.1, 2.3],\n", + " [6.3, 3.4, 5.6, 2.4],\n", + " [6.4, 3.1, 5.5, 1.8],\n", + " [6. , 3. , 4.8, 1.8],\n", + " [6.9, 3.1, 5.4, 2.1],\n", + " [6.7, 3.1, 5.6, 2.4],\n", + " [6.9, 3.1, 5.1, 2.3],\n", + " [5.8, 2.7, 5.1, 1.9],\n", + " [6.8, 3.2, 5.9, 2.3],\n", + " [6.7, 3.3, 5.7, 2.5],\n", + " [6.7, 3. , 5.2, 2.3],\n", + " [6.3, 2.5, 5. , 1.9],\n", + " [6.5, 3. , 5.2, 2. ],\n", + " [6.2, 3.4, 5.4, 2.3],\n", + " [5.9, 3. , 5.1, 1.8]]), 'target': array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", + " 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n", + " 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", + " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]), 'frame': None, 'target_names': array(['setosa', 'versicolor', 'virginica'], dtype='