I have a dataset consisting of 3000 binary features and one binary ouput. subset of these binary features form binary patterns. these subsets could be neighbouring features or from different regions (which one is the case is unknown). also these patterns can show up anywhere within the feature vector. any ideas what algorithms are best suited for a problem like this? I have done some searching and seem like logical neural networks, CNNs and HMMs be good candidates. also feature reduction is something I am currently looking at. data points are not images but rather 1D arrays.