Decision Tree, KNN, & Random Forest (Methods that are suitable for overlapping data)
This statement is false. All those methods are good when the decision surface (separating surface) has a highly nonlinear form. They act as a non-parametric local approximation - all parameters are not in fact parameters of the decision function but are meta parameters ...
Your data is multidimensional, it is possible that any two dimensional projection overlaps while still existing an hyperplane on the original dimensionality that separates the two classes well
Say for instance you have 3 data points from 2 labels in 2d that are linearly separable
X:(0,-1) O:(1,2) X:(4,3)
In the x axis they look ...
You can add a conv layer before the pre-trained model (like an adapter)
The added conv layer will be defined to match your input size and produce output that matches the original input size of the pre-trained model (you probably need to train the new first layer)
first_conv_layer = [nn.Conv2d(2, 3, kernel_size=3, stride=1, padding=1, dilation=1, groups=1, ...
The reason for the train/validate/test distribution (which I found out in a painful way) is that you will get good results if you tweak a model to fit to a test set. It could be completely random data, but if you calculate enough features, and tweak the hyperparameters of your model, you will get a relatively high (and misleading) level of accuracy.
I suppose you want to "stack" multiple models? If so, you can use sklearn.ensemble.StackingClassifier.
Example from the docs:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import LinearSVC
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import ...