In [65]:
import numpy as np
import pandas as pd
from matplotlib import pylab as plt
%matplotlib inline
In [182]:
D = 4
N = 180
X = np.mat(np.random.randn(D/2,N))
X = np.vstack([X, X + 4])
In [102]:
U,Sig,V = np.linalg.svd(X, full_matrices=True)
# print(X)
# print(U)
# print(np.diag(Sig))
# print(V)
In [181]:
# a = U[:,0]
# print U[:,0]
# print "s", Sig[0]
# print 'V',V[0,:]
# w = Sig[0] * V[0,:]
# print 'w', w
# Xhat = U[:,:2] * Sig[0:2] * V[0:2,:]
# print Xhat
# plt.plot(X[0,:], X[1,:],'x')
# plt.plot(Xhat[0,:], Xhat[1,:],'o')
# ax = plt.gca()
# ax.set_aspect(1)
# plt.show()
In [185]:
df = pd.read_csv("data/iris.txt", delimiter=" ")
X = np.mat(df.iloc[:, [0, 1 ,2, 3]])
print X.shape
(150, 4)
In [186]:
U, S, V = np.linalg.svd(X, full_matrices=True)
S = np.diag(S)
print "U: ", U.shape
print "S: ", S.shape
print "V: ", V.shape
U: (150, 150)
S: (4, 4)
V: (4, 4)
In [192]:
K = 2 # number of reduced dimentions
X_hat = U[:,:k] * S[:K,:K] * V[:K,]
print "X_hat: ", X_hat.shape
print X_hat
X_hat: (150, 4)
[[ 5.09945346 3.50050812 1.40094556 0.19840569]
[ 4.74974728 3.19172985 1.46006954 0.25494146]
[ 4.69047924 3.2108907 1.30863935 0.1915549 ]
[ 4.61834831 3.08439659 1.46266616 0.26731753]
[ 5.07896131 3.5005194 1.36352353 0.18323972]
[ 5.5300156 3.7270409 1.67511126 0.28560814]
[ 4.73513024 3.22346842 1.36171979 0.21173807]
[ 5.0090388 3.3931523 1.47838624 0.24111369]
[ 4.38266777 2.92709982 1.38778914 0.25356965]
[ 4.80937785 3.22911564 1.48446275 0.26088223]
[ 5.39972928 3.70190802 1.49410632 0.21490986]
[ 4.89813198 3.28580776 1.5184049 0.26865573]
[ 4.68239571 3.1600364 1.40873117 0.23748098]
[ 4.3045681 2.99693565 1.08755409 0.12453562]
[ 5.73556855 4.0680786 1.28006801 0.08954214]
[ 5.90774958 4.11819888 1.48109876 0.16571941]
[ 5.45688065 3.80359406 1.36876673 0.15338963]
[ 5.10220976 3.48809845 1.43400019 0.21310987]
[ 5.67694201 3.82764554 1.71604614 0.29158251]
[ 5.25280287 3.60130338 1.45317145 0.20893548]
[ 5.30398738 3.53128822 1.70469346 0.31824813]
[ 5.21145604 3.5447793 1.50536436 0.23604934]
[ 4.74744524 3.40066007 0.98404405 0.03999603]
[ 5.07436731 3.31763542 1.76814442 0.36650147]
[ 4.95298319 3.22839289 1.74816329 0.36781961]
[ 4.85091003 3.19755639 1.63152554 0.32380701]
[ 5.03283513 3.34919467 1.62108163 0.30357669]
[ 5.18233248 3.52547296 1.49581543 0.23421661]
[ 5.11994561 3.50049684 1.43836759 0.21357166]
[ 4.74533045 3.15347583 1.53839774 0.29071878]
[ 4.7658226 3.15346455 1.57581977 0.30588474]
[ 5.2729325 3.54474546 1.61763045 0.28154725]
[ 5.44419493 3.80256906 1.34793106 0.14505439]
[ 5.66655645 3.98572146 1.34011248 0.12256316]
[ 4.80937785 3.22911564 1.48446275 0.26088223]
[ 4.86598133 3.36233837 1.28690443 0.16676916]
[ 5.33955083 3.69605891 1.39749438 0.17637624]
[ 4.80937785 3.22911564 1.48446275 0.26088223]
[ 4.40848715 2.99035252 1.29206472 0.20810535]
[ 5.07363407 3.43725543 1.49666998 0.24386999]
[ 5.01933074 3.46313362 1.33913032 0.17729895]
[ 4.16711685 2.71324513 1.47737112 0.31243354]
[ 4.4966934 3.07858133 1.25378813 0.18328601]
[ 5.08245084 3.36848973 1.66805259 0.32057539]
[ 5.32869412 3.51234054 1.7925706 0.35585818]
[ 4.6879083 3.13521705 1.47484043 0.26688935]
[ 5.26833031 3.59457476 1.49670295 0.22728592]
[ 4.6441677 3.14764929 1.36694174 0.22185323]
[ 5.335134 3.65780489 1.47582259 0.21215356]
[ 4.94665193 3.36817619 1.4209384 0.22046874]
[ 6.83089327 3.42564462 4.72974932 1.55525724]
[ 6.40951042 3.18689278 4.49992925 1.4873144 ]
[ 6.76151864 3.28674083 4.91683076 1.64572406]
[ 5.33429352 2.51344581 4.05858032 1.37951329]
[ 6.31597694 3.03539999 4.67135229 1.57276401]
[ 5.77541839 2.72653263 4.382387 1.48825065]
[ 6.42834204 3.1362178 4.64873411 1.55296187]
[ 4.85456992 2.46413852 3.2944728 1.07507089]
[ 6.41916275 3.14843687 4.60438848 1.53370227]
[ 5.30139274 2.56432267 3.88364443 1.30325527]
[ 4.77932018 2.29350744 3.54248196 1.19357513]
[ 5.94347657 2.93556321 4.21702875 1.39918839]
[ 5.60489789 2.72707604 4.06997342 1.36159188]
[ 6.11722639 2.89637328 4.62261055 1.5676796 ]
[ 5.59037259 2.89878852 3.65568978 1.17559304]
[ 6.5381531 3.30663571 4.464278 1.46023415]
[ 5.80454195 2.74583897 4.39193593 1.49008338]
[ 5.7145067 2.84030353 4.01430062 1.32708555]
[ 5.83928862 2.65754248 4.65474469 1.60589854]
[ 5.46329871 2.68973538 3.89589209 1.29498724]
[ 6.14965413 2.87173326 4.73743284 1.61680936]
[ 5.94238081 2.99863658 4.07259129 1.3340027 ]
[ 6.10932822 2.75743565 4.92195808 1.70364432]
[ 6.06761068 2.87707822 4.57563958 1.5506809 ]
[ 6.23512098 3.11764549 4.33806261 1.42902579]
[ 6.42945469 3.21841818 4.46513255 1.46988752]
[ 6.54357395 3.14184246 4.84632114 1.63243797]
[ 6.61202129 3.11046254 5.04209696 1.71508414]
[ 6.01881994 2.87813706 4.48420917 1.51351824]
[ 5.49610587 2.86691574 3.55563838 1.13841117]
[ 5.33631657 2.62065614 3.82016051 1.27158599]
[ 5.31527654 2.6522041 3.71051975 1.22382718]
[ 5.68345182 2.85376076 3.92723761 1.29038467]
[ 6.04307241 2.66266883 5.01505717 1.75136953]
[ 5.67535139 2.65763272 4.35536845 1.48457079]
[ 6.24209186 3.08629941 4.42157235 1.46617406]
[ 6.59576061 3.23681116 4.72709102 1.57410221]
[ 5.92419069 2.78971764 4.51119475 1.53378216]
[ 5.72589441 2.84721148 4.01948215 1.3284565 ]
[ 5.42249977 2.60167462 4.02030373 1.35469394]
[ 5.53698155 2.58164553 4.27445534 1.45979859]
[ 6.14304578 2.95962597 4.52688613 1.5222153 ]
[ 5.65763243 2.79050807 4.02296203 1.33584897]
[ 4.87506207 2.46412724 3.33189482 1.09023686]
[ 5.61186877 2.69572997 4.15348315 1.39874015]
[ 5.80601713 2.88458598 4.08129739 1.34956324]
[ 5.7646703 2.8280619 4.13349031 1.3766771 ]
[ 6.10593042 3.02943924 4.30149513 1.4235132 ]
[ 4.97576868 2.64146437 3.11519821 0.98371412]
[ 5.70228343 2.80308579 4.07604247 1.35603214]
[ 6.6908373 2.77573297 5.94184547 2.1150097 ]
[ 5.92215074 2.53723357 5.07765358 1.7899695 ]
[ 7.04598122 3.06499173 5.9367256 2.08241771]
[ 6.42199578 2.76269622 5.48067171 1.92950058]
[ 6.64288211 2.8071016 5.78349167 2.04752949]
[ 7.49694378 3.15153932 6.56424721 2.32758158]
[ 5.13737197 2.19172572 4.42575047 1.56224605]
[ 7.19593472 3.06975943 6.19961202 2.18844592]
[ 6.54053186 2.72437452 5.78353209 2.0562737 ]
[ 7.42278791 3.28586602 6.12557037 2.13564197]
[ 6.59758961 3.05411779 5.14300292 1.76191939]
[ 6.34628988 2.76357573 5.34052827 1.87261652]
[ 6.77906044 3.00923552 5.57552986 1.94193031]
[ 5.75382177 2.41163025 5.05411491 1.7936821 ]
[ 5.98003535 2.51929961 5.22378842 1.85108075]
[ 6.57783069 2.93450907 5.37705532 1.8693849 ]
[ 6.57700572 2.91415517 5.42151477 1.88954887]
[ 7.93540409 3.51700972 6.53906539 2.2788193 ]
[ 7.44549036 2.93695061 6.95495176 2.50854881]
[ 5.80151675 2.47364477 5.00110787 1.76565908]
[ 6.97394203 3.07847153 5.77481854 2.01538489]
[ 5.80325213 2.51900863 4.90183017 1.72064216]
[ 7.48886025 3.10068502 6.66433904 2.37350766]
[ 6.20580336 2.80843545 4.98284538 1.72293753]
[ 6.88334201 3.05919903 5.65300352 1.96805425]
[ 7.2087976 3.2154144 5.89415501 2.04929673]
[ 6.16702747 2.82758502 4.86883722 1.67471694]
[ 6.20892218 2.85257241 4.88886303 1.68019592]
[ 6.45075682 2.72545592 5.61725762 1.9887791 ]
[ 7.07851128 3.19028151 5.71315008 1.97859845]
[ 7.18261569 3.09561506 6.11691641 2.15220682]
[ 8.00423084 3.68745019 6.27976521 2.15575964]
[ 6.45351311 2.71304625 5.65031225 2.00348329]
[ 6.27820507 2.85150229 5.01771547 1.73252456]
[ 6.14947066 2.59178545 5.3693006 1.90240026]
[ 7.47563296 3.26651456 6.26570955 2.19447311]
[ 6.65904917 2.90881021 5.58330802 1.95567733]
[ 6.55651356 2.91416645 5.38409274 1.8743829 ]
[ 6.12604316 2.82760758 4.79399316 1.644385 ]
[ 6.8694751 3.11659134 5.49808918 1.89922231]
[ 6.78512091 2.95287949 5.71385785 2.00393153]
[ 6.82013648 3.14918687 5.33444004 1.8294668 ]
[ 5.92215074 2.53723357 5.07765358 1.7899695 ]
[ 6.94591423 2.99609182 5.90970706 2.07873785]
[ 6.89436719 3.00956034 5.78522202 2.026871 ]
[ 6.66512654 2.99772792 5.39359699 1.86941851]
[ 6.13863714 2.68865867 5.13076272 1.79551569]
[ 6.52766709 2.94675069 5.25786563 1.81979336]
[ 6.55513012 2.91539334 5.3787974 1.87210759]
[ 6.1162991 2.72608958 5.00546781 1.74079259]]
In [193]:
plt.plot(X[0,:], X[1,:], "x")
plt.plot(X_hat[0,:], X_hat[1,:], "ko")
Out[193]:
[<matplotlib.lines.Line2D at 0x10dc47a50>,
<matplotlib.lines.Line2D at 0x10dd60110>,
<matplotlib.lines.Line2D at 0x10dd60310>,
<matplotlib.lines.Line2D at 0x10dd60410>]
In [191]:
k = 2 # choose K dimention, k <= N
U[:,:k] * (S[0:k,:k] * V[0:k,:])
Out[191]:
matrix([[ 5.09945346, 3.50050812, 1.40094556, 0.19840569],
[ 4.74974728, 3.19172985, 1.46006954, 0.25494146],
[ 4.69047924, 3.2108907 , 1.30863935, 0.1915549 ],
[ 4.61834831, 3.08439659, 1.46266616, 0.26731753],
[ 5.07896131, 3.5005194 , 1.36352353, 0.18323972],
[ 5.5300156 , 3.7270409 , 1.67511126, 0.28560814],
[ 4.73513024, 3.22346842, 1.36171979, 0.21173807],
[ 5.0090388 , 3.3931523 , 1.47838624, 0.24111369],
[ 4.38266777, 2.92709982, 1.38778914, 0.25356965],
[ 4.80937785, 3.22911564, 1.48446275, 0.26088223],
[ 5.39972928, 3.70190802, 1.49410632, 0.21490986],
[ 4.89813198, 3.28580776, 1.5184049 , 0.26865573],
[ 4.68239571, 3.1600364 , 1.40873117, 0.23748098],
[ 4.3045681 , 2.99693565, 1.08755409, 0.12453562],
[ 5.73556855, 4.0680786 , 1.28006801, 0.08954214],
[ 5.90774958, 4.11819888, 1.48109876, 0.16571941],
[ 5.45688065, 3.80359406, 1.36876673, 0.15338963],
[ 5.10220976, 3.48809845, 1.43400019, 0.21310987],
[ 5.67694201, 3.82764554, 1.71604614, 0.29158251],
[ 5.25280287, 3.60130338, 1.45317145, 0.20893548],
[ 5.30398738, 3.53128822, 1.70469346, 0.31824813],
[ 5.21145604, 3.5447793 , 1.50536436, 0.23604934],
[ 4.74744524, 3.40066007, 0.98404405, 0.03999603],
[ 5.07436731, 3.31763542, 1.76814442, 0.36650147],
[ 4.95298319, 3.22839289, 1.74816329, 0.36781961],
[ 4.85091003, 3.19755639, 1.63152554, 0.32380701],
[ 5.03283513, 3.34919467, 1.62108163, 0.30357669],
[ 5.18233248, 3.52547296, 1.49581543, 0.23421661],
[ 5.11994561, 3.50049684, 1.43836759, 0.21357166],
[ 4.74533045, 3.15347583, 1.53839774, 0.29071878],
[ 4.7658226 , 3.15346455, 1.57581977, 0.30588474],
[ 5.2729325 , 3.54474546, 1.61763045, 0.28154725],
[ 5.44419493, 3.80256906, 1.34793106, 0.14505439],
[ 5.66655645, 3.98572146, 1.34011248, 0.12256316],
[ 4.80937785, 3.22911564, 1.48446275, 0.26088223],
[ 4.86598133, 3.36233837, 1.28690443, 0.16676916],
[ 5.33955083, 3.69605891, 1.39749438, 0.17637624],
[ 4.80937785, 3.22911564, 1.48446275, 0.26088223],
[ 4.40848715, 2.99035252, 1.29206472, 0.20810535],
[ 5.07363407, 3.43725543, 1.49666998, 0.24386999],
[ 5.01933074, 3.46313362, 1.33913032, 0.17729895],
[ 4.16711685, 2.71324513, 1.47737112, 0.31243354],
[ 4.4966934 , 3.07858133, 1.25378813, 0.18328601],
[ 5.08245084, 3.36848973, 1.66805259, 0.32057539],
[ 5.32869412, 3.51234054, 1.7925706 , 0.35585818],
[ 4.6879083 , 3.13521705, 1.47484043, 0.26688935],
[ 5.26833031, 3.59457476, 1.49670295, 0.22728592],
[ 4.6441677 , 3.14764929, 1.36694174, 0.22185323],
[ 5.335134 , 3.65780489, 1.47582259, 0.21215356],
[ 4.94665193, 3.36817619, 1.4209384 , 0.22046874],
[ 6.83089327, 3.42564462, 4.72974932, 1.55525724],
[ 6.40951042, 3.18689278, 4.49992925, 1.4873144 ],
[ 6.76151864, 3.28674083, 4.91683076, 1.64572406],
[ 5.33429352, 2.51344581, 4.05858032, 1.37951329],
[ 6.31597694, 3.03539999, 4.67135229, 1.57276401],
[ 5.77541839, 2.72653263, 4.382387 , 1.48825065],
[ 6.42834204, 3.1362178 , 4.64873411, 1.55296187],
[ 4.85456992, 2.46413852, 3.2944728 , 1.07507089],
[ 6.41916275, 3.14843687, 4.60438848, 1.53370227],
[ 5.30139274, 2.56432267, 3.88364443, 1.30325527],
[ 4.77932018, 2.29350744, 3.54248196, 1.19357513],
[ 5.94347657, 2.93556321, 4.21702875, 1.39918839],
[ 5.60489789, 2.72707604, 4.06997342, 1.36159188],
[ 6.11722639, 2.89637328, 4.62261055, 1.5676796 ],
[ 5.59037259, 2.89878852, 3.65568978, 1.17559304],
[ 6.5381531 , 3.30663571, 4.464278 , 1.46023415],
[ 5.80454195, 2.74583897, 4.39193593, 1.49008338],
[ 5.7145067 , 2.84030353, 4.01430062, 1.32708555],
[ 5.83928862, 2.65754248, 4.65474469, 1.60589854],
[ 5.46329871, 2.68973538, 3.89589209, 1.29498724],
[ 6.14965413, 2.87173326, 4.73743284, 1.61680936],
[ 5.94238081, 2.99863658, 4.07259129, 1.3340027 ],
[ 6.10932822, 2.75743565, 4.92195808, 1.70364432],
[ 6.06761068, 2.87707822, 4.57563958, 1.5506809 ],
[ 6.23512098, 3.11764549, 4.33806261, 1.42902579],
[ 6.42945469, 3.21841818, 4.46513255, 1.46988752],
[ 6.54357395, 3.14184246, 4.84632114, 1.63243797],
[ 6.61202129, 3.11046254, 5.04209696, 1.71508414],
[ 6.01881994, 2.87813706, 4.48420917, 1.51351824],
[ 5.49610587, 2.86691574, 3.55563838, 1.13841117],
[ 5.33631657, 2.62065614, 3.82016051, 1.27158599],
[ 5.31527654, 2.6522041 , 3.71051975, 1.22382718],
[ 5.68345182, 2.85376076, 3.92723761, 1.29038467],
[ 6.04307241, 2.66266883, 5.01505717, 1.75136953],
[ 5.67535139, 2.65763272, 4.35536845, 1.48457079],
[ 6.24209186, 3.08629941, 4.42157235, 1.46617406],
[ 6.59576061, 3.23681116, 4.72709102, 1.57410221],
[ 5.92419069, 2.78971764, 4.51119475, 1.53378216],
[ 5.72589441, 2.84721148, 4.01948215, 1.3284565 ],
[ 5.42249977, 2.60167462, 4.02030373, 1.35469394],
[ 5.53698155, 2.58164553, 4.27445534, 1.45979859],
[ 6.14304578, 2.95962597, 4.52688613, 1.5222153 ],
[ 5.65763243, 2.79050807, 4.02296203, 1.33584897],
[ 4.87506207, 2.46412724, 3.33189482, 1.09023686],
[ 5.61186877, 2.69572997, 4.15348315, 1.39874015],
[ 5.80601713, 2.88458598, 4.08129739, 1.34956324],
[ 5.7646703 , 2.8280619 , 4.13349031, 1.3766771 ],
[ 6.10593042, 3.02943924, 4.30149513, 1.4235132 ],
[ 4.97576868, 2.64146437, 3.11519821, 0.98371412],
[ 5.70228343, 2.80308579, 4.07604247, 1.35603214],
[ 6.6908373 , 2.77573297, 5.94184547, 2.1150097 ],
[ 5.92215074, 2.53723357, 5.07765358, 1.7899695 ],
[ 7.04598122, 3.06499173, 5.9367256 , 2.08241771],
[ 6.42199578, 2.76269622, 5.48067171, 1.92950058],
[ 6.64288211, 2.8071016 , 5.78349167, 2.04752949],
[ 7.49694378, 3.15153932, 6.56424721, 2.32758158],
[ 5.13737197, 2.19172572, 4.42575047, 1.56224605],
[ 7.19593472, 3.06975943, 6.19961202, 2.18844592],
[ 6.54053186, 2.72437452, 5.78353209, 2.0562737 ],
[ 7.42278791, 3.28586602, 6.12557037, 2.13564197],
[ 6.59758961, 3.05411779, 5.14300292, 1.76191939],
[ 6.34628988, 2.76357573, 5.34052827, 1.87261652],
[ 6.77906044, 3.00923552, 5.57552986, 1.94193031],
[ 5.75382177, 2.41163025, 5.05411491, 1.7936821 ],
[ 5.98003535, 2.51929961, 5.22378842, 1.85108075],
[ 6.57783069, 2.93450907, 5.37705532, 1.8693849 ],
[ 6.57700572, 2.91415517, 5.42151477, 1.88954887],
[ 7.93540409, 3.51700972, 6.53906539, 2.2788193 ],
[ 7.44549036, 2.93695061, 6.95495176, 2.50854881],
[ 5.80151675, 2.47364477, 5.00110787, 1.76565908],
[ 6.97394203, 3.07847153, 5.77481854, 2.01538489],
[ 5.80325213, 2.51900863, 4.90183017, 1.72064216],
[ 7.48886025, 3.10068502, 6.66433904, 2.37350766],
[ 6.20580336, 2.80843545, 4.98284538, 1.72293753],
[ 6.88334201, 3.05919903, 5.65300352, 1.96805425],
[ 7.2087976 , 3.2154144 , 5.89415501, 2.04929673],
[ 6.16702747, 2.82758502, 4.86883722, 1.67471694],
[ 6.20892218, 2.85257241, 4.88886303, 1.68019592],
[ 6.45075682, 2.72545592, 5.61725762, 1.9887791 ],
[ 7.07851128, 3.19028151, 5.71315008, 1.97859845],
[ 7.18261569, 3.09561506, 6.11691641, 2.15220682],
[ 8.00423084, 3.68745019, 6.27976521, 2.15575964],
[ 6.45351311, 2.71304625, 5.65031225, 2.00348329],
[ 6.27820507, 2.85150229, 5.01771547, 1.73252456],
[ 6.14947066, 2.59178545, 5.3693006 , 1.90240026],
[ 7.47563296, 3.26651456, 6.26570955, 2.19447311],
[ 6.65904917, 2.90881021, 5.58330802, 1.95567733],
[ 6.55651356, 2.91416645, 5.38409274, 1.8743829 ],
[ 6.12604316, 2.82760758, 4.79399316, 1.644385 ],
[ 6.8694751 , 3.11659134, 5.49808918, 1.89922231],
[ 6.78512091, 2.95287949, 5.71385785, 2.00393153],
[ 6.82013648, 3.14918687, 5.33444004, 1.8294668 ],
[ 5.92215074, 2.53723357, 5.07765358, 1.7899695 ],
[ 6.94591423, 2.99609182, 5.90970706, 2.07873785],
[ 6.89436719, 3.00956034, 5.78522202, 2.026871 ],
[ 6.66512654, 2.99772792, 5.39359699, 1.86941851],
[ 6.13863714, 2.68865867, 5.13076272, 1.79551569],
[ 6.52766709, 2.94675069, 5.25786563, 1.81979336],
[ 6.55513012, 2.91539334, 5.3787974 , 1.87210759],
[ 6.1162991 , 2.72608958, 5.00546781, 1.74079259]])
In [ ]:
Content source: muatik/dm
Similar notebooks: