Connected Subspace Clustering: Hardness, a Scalable Heuristic, and an Application to Sea Level Geodesy
Organizations: Heinrich Heine University Düsseldorf, Universitätsstraße 1, 40225 Düsseldorf, Germany · University of Cologne, Albertus-Magnus-Platz, 50923 Köln, Germany · University of Bonn, Regina-Pacis-Weg 3, 53115 Bonn, Germany · University at Buffalo, 12 Capen Hall, Buffalo, New York 14260-1660, USA
Abstract
Constrained optimization extends classical optimization by integrating side information, making it widely applicable across scientific and engineering domains. Consider a setting where we measure variables at different physical locations. When grouping these measurements, we often want clusters that are both internally similar and physically coherent. Thus, we have a constrained clustering problem where the constraint models coherence. Motivated by an application in geodesy, where contiguous regions of the sea surface must be identified for principal component analysis, we introduce the Connected Subspace Clustering problem: given high-dimensional points and a connectivity graph, partition them into connected clusters, minimizing their total squared distance to the clusters' best-fit -dimensional affine subspaces. We prove that, even for and a grid graph with holes, the problem is NP-hard to approximate within for every , where is the number of measurements. We then introduce an efficient Lloyd-style heuristic that alternates subspace fitting with an iterative merging procedure to enforce connectivity. Our method returns exactly connected regions by construction, whereas unconstrained methods leave up to disconnected fragments at higher cost. In a study of 160 configurations on global sea level time series, our merging-based repair is the strongest of four strategies in of cases, and consistently outperforms competitors such as (connected) Ward's method across all tested cluster counts. The resulting regions isolate signals aligning with climate indices such as the El Nino-Southern Oscillation and Indian Ocean Dipole. Although developed for geodesy, the approach applies to other spatially embedded multivariate time series, such as climate fields, remote sensing, neuroimaging, and sensor networks.
Figures & tables
| Method | During iteration | Final repair |
| IterMerge | Component merging | No |
| PostMerge | None | Yes |
| SmoothMerge | Label smoothing | Yes |
| IntegratedConn | Local reassignment | Yes |
| Initial objective | Final objective | |
| Agglo-ST | 6058.8 | 5681.5 |
| Conn-Agglo-Euc | 5892.1 | 5656.5 |
| Conn-Agglo-ST | 5925.4 | 5716.8 |
| Conn-KMeans++ | 6019.4 | 5742.0 |
| Conn-Ward | 6250.7 | 5728.4 |
| method | clusters wanted | filtered | unfiltered |
| SSC-OMP | 8 | 225 | 52 |
| EnSC | 8 | 128 | 31 |
| SSC-OMP | 15 | 796 | 90 |
| EnSC | 15 | 169 | 54 |
| SSC-OMP | 20 | 1374 | 114 |
| EnSC | 20 | 222 | 102 |
| Category | Parameter | Value |
| Patch | PATCH_SIZE | 15 |
| Clustering parameters | N_CLASSES_LIST | |
| Clustering parameters | NB_COMPS_LIST | |
| PCA | n_components | nb_comps from NB_COMPS_LIST |
| EGCSC | regu_coef | |
| EGCSC | n_neighbors | 15 |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 7692.49489 6711.79823 6058.78586 4739.49195 | 7449.85439 6416.84714 5681.50449 4275.62553 | 7465.55920 6577.24879 5885.93997 4597.55834 | 7478.41837 6567.92509 5916.59557 4602.77377 | 7606.71637 6496.16303 5678.59392 4300.00575 |
| Conn-Agglo-Euc | 5 10 15 30 | 7577.79424 6552.16401 5892.12265 4529.30297 | 7407.11306 6434.20938 5656.52604 4310.62839 | 7516.26784 6533.40635 5880.22969 4524.68553 | 7521.30797 6457.07786 5867.63781 4506.63351 | 7472.77518 6471.56399 5793.80565 4337.03429 |
| Conn-Agglo-ST | 5 10 15 30 | 7665.13937 6626.54510 5925.35443 4543.34794 | 7471.02903 6401.78462 5716.76295 4328.07089 | 7480.37794 6614.75710 5891.04896 4502.91717 | 7563.32227 6517.96774 5712.20077 4589.32804 | 7553.95301 6522.68229 5841.31301 4335.89561 |
| Conn-KMeans++ | 5 10 15 30 | 7672.81813 6684.77629 6019.41239 4657.46825 | 7456.54788 6404.43239 5741.98456 4367.77138 | 7618.64891 6586.35707 5930.38415 4572.23265 | 7536.54157 6517.60083 5903.71485 4574.05150 | 7412.93632 6530.95691 5725.26091 4360.19843 |
| Conn-Ward | 5 10 15 30 | 7818.73543 6884.08856 6250.65279 4952.76399 | 7559.41281 6390.55542 5728.35510 4561.76944 | 7547.78283 6625.74611 5948.23946 4773.37472 | 7519.00091 6605.33257 5941.08003 4717.35659 | 7662.99054 6721.36554 6059.41774 4770.03843 |
| GraphConvSC EKGCSC | 5 10 15 30 | 13124.82028 13088.99551 13084.56918 13115.11044 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 8357.61138 7465.22683 6934.41398 5827.25554 | - - - - | 8269.62100 7268.01158 - - | - - - - | 8363.89983 7461.79679 - - |
| Conn-Agglo-Euc | 5 10 15 30 | 7731.16245 6813.48844 6189.81632 4902.32309 | 7544.00497 6589.54375 5877.08022 4494.57215 | 7613.92384 6732.86394 5974.47518 4755.52725 | 7581.09045 6526.79913 5977.69428 4637.71137 | 7607.04228 6703.52087 6001.12751 4719.07835 |
| Conn-Agglo-ST | 5 10 15 30 | 7587.75423 6517.61474 5821.57802 4433.68417 | 7459.38257 6413.93545 5680.3945 4389.54962 | 7616.73677 6562.13264 5802.8574 4449.47911 | 7554.43019 6421.3932 5873.59309 4454.67732 | 7477.76603 6438.73443 5739.71282 4361.23423 |
| Conn-KMeans++ | 5 10 15 30 | 7787.54983 6853.38225 6208.53329 4908.12907 | 7402.50782 6443.82804 5756.01577 4314.02620 | 7576.29373 6519.65702 5861.48456 4664.09250 | 7580.04322 6710.61413 5941.10418 4646.05051 | 7511.55950 6434.85064 5744.50432 4669.39230 |
| Conn-Ward | 5 10 15 30 | 7731.16195 6813.49009 6189.85300 4902.18010 | 7544.00447 6609.47078 5866.06992 4502.06469 | 7534.85592 6577.85847 5997.38423 4722.56464 | 7569.99355 6532.33852 5991.65580 4641.04607 | 7607.04291 6703.51083 6000.58657 4719.93802 |
| GraphConvSC EKGCSC | 5 10 15 30 | 13529.17649 13531.45765 13720.32976 13721.31299 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 7401.75317 6373.87940 5692.49488 4324.59394 | 6928.48755 5866.01001 5187.14312 3737.01157 | 7017.48275 5936.91435 5206.89874 3940.42473 | 7000.30368 6085.79398 5318.16172 3949.27144 | 7153.61319 6261.35012 5538.33864 4027.25431 |
| Conn-Agglo-Euc | 5 10 15 30 | 7114.02254 6072.58344 5370.74695 3956.67356 | 6850.53328 5847.53931 5052.96718 3655.53732 | 7123.69161 6099.05409 5249.62310 3831.89306 | 7015.46846 6014.41582 5168.60667 3816.64460 | 6928.5687 5828.97291 5141.67013 3724.09671 |
| Conn-Agglo-ST | 5 10 15 30 | 7165.77020 6043.90989 5286.28692 3830.37398 | 6900.80387 5738.33263 4995.24785 3633.49710 | 7168.83511 5971.14997 5007.97436 3829.96746 | 7124.80622 5908.16445 5061.30361 3678.17079 | 7004.66985 5825.62817 5053.81309 3708.89951 |
| Conn-KMeans++ | 5 10 15 30 | 7252.59653 6185.78104 5460.38901 4035.94281 | 6935.95820 5794.88755 4994.50226 3659.64386 | 7102.93392 5955.52421 5210.23140 3765.80204 | 7120.01640 5835.30837 4974.27926 3617.59620 | 6987.27644 5815.82064 5128.15819 3668.58070 |
| Conn-Ward | 5 10 15 30 | 7220.75107 6267.09090 5616.07627 4308.16897 | 6989.61962 5934.10865 5080.41592 3905.82830 | 7094.40494 6066.03266 5458.88736 4210.32269 | 7017.41398 6039.21859 5142.28195 3879.76737 | 7018.86197 6036.39050 5372.64187 4000.63856 |
| GraphConvSC EKGCSC | 5 10 15 30 | 12816.98138 12696.11403 12629.34658 12607.53272 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 8138.18456 7204.38252 6658.85384 5568.49755 | 7053.37876 6334.25977 5778.67113 4440.49430 | 7496.84981 6598.76775 6296.71185 4973.61062 | 7818.48633 6779.11463 6081.50442 5276.09128 | 7964.90935 6955.51336 6509.29316 5469.03702 |
| Conn-Agglo-Euc | 5 10 15 30 | 7300.91007 6357.32784 5737.88249 4460.20328 | 7116.94334 5987.91657 5274.70075 3862.28418 | 7180.58798 6187.01996 5301.06031 4005.64651 | 7094.45986 6074.20510 5448.38671 4225.21069 | 7152.81688 6191.78486 5560.49203 4274.54517 |
| Conn-Agglo-ST | 5 10 15 30 | 7119.17181 6005.0503 5268.05087 3823.02996 | 6918.34345 5778.90979 5104.49715 3643.09308 | 7029.95831 5883.24081 5099.97031 3792.69081 | 7124.18824 5977.09426 5085.76466 3616.81066 | 6939.76197 5838.78528 5116.52196 3736.21723 |
| Conn-KMeans++ | 5 10 15 30 | 7237.21547 6140.85496 5410.36757 3960.26859 | 6961.75097 5821.98319 5061.52510 3739.47498 | 7091.07433 5993.05102 5298.03961 3944.39825 | 6974.68506 6030.58822 5288.48289 3956.10770 | 7037.43763 6007.85102 5291.30412 3817.96416 |
| Conn-Ward | 5 10 15 30 | 7300.91029 6357.33007 5737.91865 4460.12404 | 7113.16163 6045.03966 5321.37167 3793.78203 | 7194.19093 6177.00189 5353.26835 4001.61043 | 7074.05179 5944.17437 5542.68503 4223.34628 | 7152.80277 6188.96634 5567.75397 4059.74273 |
| GraphConvSC EKGCSC | 5 10 15 30 | 13357.03370 13437.32476 13679.37267 13684.34093 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 7127.56897 6101.62757 5406.82642 4012.58077 | 6718.72885 5713.96147 4911.83706 3565.78342 | 6810.31878 5769.48728 4912.01064 3370.35309 | 6819.93585 5670.97155 4889.30909 3591.39863 | 6971.35316 6001.03185 5076.7984 3693.48877 |
| Conn-Agglo-Euc | 5 10 15 30 | 6865.53475 5832.31292 5126.73700 3713.09606 | 6584.89575 5551.75766 4801.07043 3446.30952 | 6750.88909 5865.71361 4919.41237 3579.53496 | 6831.68193 5729.15024 4946.12142 3490.69984 | 6651.79576 5552.82496 4862.35879 3556.92483 |
| Conn-Agglo-ST | 5 10 15 30 | 6900.30819 5794.35416 5049.92481 3595.09951 | 6654.56156 5520.3482 4802.62151 3373.72568 | 6927.05043 5687.2591 4768.72953 3613.7709 | 6786.10306 5691.85431 4764.92476 3537.25328 | 6714.21266 5600.75871 4840.57379 3490.14 |
| Conn-KMeans++ | 5 10 15 30 | 7064.48992 6027.69854 5329.54776 3932.44561 | 6633.74908 5529.78331 4789.39302 3542.17183 | 6935.84391 5908.07834 5119.8224 3857.21766 | 6826.91025 5676.37115 5046.53568 3579.53919 | 6816.79815 5618.88795 4945.9793 3595.48081 |
| Conn-Ward | 5 10 15 30 | 6911.97254 5870.80942 5154.80347 3753.07503 | 6685.90989 5607.57718 4880.22641 3507.30482 | 6851.87697 5705.9256 4893.75679 3624.77683 | 6816.23469 5634.00779 5002.42116 3590.02407 | 6705.06569 5685.12404 4958.20896 3633.92843 |
| GraphConvSC EKGCSC | 5 10 15 30 | 12585.39110 12506.02452 12733.70084 12267.75023 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 7783.69078 6825.71836 6245.5336 5098.51104 | 6650.41124 5924.41911 4936.45871 4195.20874 | 7242.28414 6224.32097 5301.69381 4093.73849 | 7179.5592 6005.97634 - 3934.63734 | 7528.35562 6318.75352 5771.76803 4865.15531 |
| Conn-Agglo-Euc | 5 10 15 30 | 6802.40018 5661.22009 4892.76619 3413.25815 | 6560.96462 5430.55569 4647.6343 3237.95838 | 6711.08028 5681.3181 4901.48325 3405.64826 | 6917.901 5495.87935 4963.01987 3589.80958 | 6703.29191 5482.47043 4821.95063 3386.6587 |
| Conn-Agglo-ST | 5 10 15 30 | 6798.59783 5620.91742 4848.81668 3369.86502 | 6605.36159 5448.75877 4648.76742 3255.90307 | 6784.49403 5920.02513 4691.61664 3458.22741 | 6790.3771 5797.54924 4916.4418 3332.83429 | 6689.41092 5544.80481 4768.92015 3285.58812 |
| Conn-KMeans++ | 5 10 15 30 | 6891.16075 5762.35931 5007.12359 3553.72154 | 6596.3755 5508.66299 4702.8914 3346.93706 | 6977.26662 5638.61196 4901.24059 3460.08787 | 6800.17259 5569.52283 4874.53135 3564.00204 | 6713.21372 5503.7572 4761.15466 3452.07467 |
| Conn-Ward | 5 10 15 30 | 7142.41807 6185.16338 5540.21058 4224.92307 | 6702.55058 5776.47192 4936.7126 3621.75654 | 6920.79741 5931.42334 5293.17786 3988.19091 | 6852.91056 5984.3858 5328.62205 3755.66247 | 6997.92878 5944.67975 5142.70403 3655.8976 |
| GraphConvSC EKGCSC | 5 10 15 30 | 13597.25370 13509.21213 13604.91292 13604.26299 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 6935.05471 5912.08858 5211.14154 3802.41450 | 6477.34752 5433.27462 4679.71563 3325.62566 | 6604.73022 5439.0021 4618.39123 3352.27087 | 6664.46905 5413.75331 4528.27139 3522.85521 | 6684.20784 5599.36789 4714.31267 3447.12802 |
| Conn-Agglo-Euc | 5 10 15 30 | 6622.15663 5538.29201 4799.06170 3340.89806 | 6350.81598 5229.74159 4521.96939 3126.14016 | 6667.53307 5462.91872 4590.01205 3107.19511 | 6530.66165 5352.08113 4454.23534 3230.85019 | 6385.11851 5276.7694 4549.961 3195.57073 |
| Conn-Agglo-ST | 5 10 15 30 | 6765.17821 5649.72727 4884.40787 3395.02750 | 6399.39178 5303.26748 4527.33796 3200.7043 | 6548.14257 5325.49801 4608.88795 3285.17893 | 6532.95274 5358.70727 4606.41312 3224.51674 | 6498.09127 5354.7229 4574.74659 3256.04637 |
| Conn-KMeans++ | 5 10 15 30 | 6846.60590 5777.17176 5045.16003 3609.66688 | 6412.88878 5327.48569 4581.94485 3239.08517 | 6546.40152 5859.8821 4944.36625 3385.55874 | 6404.29306 5395.78375 4616.90696 3247.91839 | 6645.10238 5476.8037 4645.33832 3230.89165 |
| Conn-Ward | 5 10 15 30 | 6804.97968 5748.56173 5018.93476 3602.40923 | 6544.75466 5387.06249 4653.33822 3373.04519 | 6714.11371 5517.56823 4739.56481 3312.15312 | 6704.62957 5495.12792 4805.99741 3343.36821 | 6562.28748 5499.27583 4809.59483 3397.42704 |
| GraphConvSC EKGCSC | 5 10 15 30 | 12231.26304 12240.14617 11942.24078 11934.06822 | - | - | - | - |
| initial clustering | IterMerge | PostMerge | Smooth Merge | Integrated Conn | ||
| Agglo-ST | 5 10 15 30 | 7611.33551 6658.96184 6109.23328 4992.56736 | 6431.27588 5484.5064 4963.57033 3122.85764 | 6985.54103 5882.39635 - 3934.40832 | 6780.14297 - - - | 7378.82363 6242.66174 5520.47426 4761.62842 |
| Conn-Agglo-Euc | 5 10 15 30 | 6648.23889 5488.59572 4708.85936 3218.62384 | 6401.5226 5239.18674 4414.99156 2947.91908 | 6603.82734 5564.22328 4760.16073 3301.88318 | 6533.52799 5428.61674 4606.55632 3157.41492 | 6444.52568 5306.91418 4680.51634 3200.42369 |
| Conn-Agglo-ST | 5 10 15 30 | 6585.85218 5375.51503 4585.05939 3080.66145 | 6375.37258 5267.75215 4467.76037 3016.05834 | 6500.81257 5347.90321 4523.11896 2992.33895 | 6552.52463 5268.33666 4528.61575 2938.29087 | 6328.12887 5283.01416 4452.95515 3028.98765 |
| Conn-KMeans++ | 5 10 15 30 | 6791.59278 5689.86451 4942.47421 3501.83054 | 6459.77151 5285.76723 4501.4064 3122.85764 | 6651.56208 5688.4807 4604.54066 3264.31383 | 6653.9628 5548.82075 4541.47083 3192.40442 | 6434.88511 5281.69382 4715.21944 3302.94252 |
| Conn-Ward | 5 10 15 30 | 6964.9354 6010.5925 5355.69749 4044.59545 | 6586.38741 5504.71253 4757.14492 3361.74465 | 6725.90101 5508.17897 4895.42358 3385.23974 | 6791.40374 5585.96961 4868.43329 3423.68021 | 6687.39939 5530.5792 4645.91934 3335.34227 |
| GraphConvSC EKGCSC | 5 10 15 30 | 13250.46585 13528.28216 13596.14924 13576.80709 | - | - | - | - |
Clustering
Clustering groups data points by shared structure, developing methods to discover, validate, and interpret groups across diverse data and constraints.
See all 347 papers