<p>What you call your <em>bias</em> is actually the greatest strength you have. You can include your knowledge of the system. Machine learning, including glorious <em>deep learning</em> is, to put it bluntly, <strong>stupid</strong>. Although it can figure out features for you, interpretation of these will be difficult.</p>

<p>Also, especially deep learning, has great capacity to memorise (not learn!) patterns, making it easy to overfit to training data. Making machine learning models that generalise well in real world is tough.</p>

<p>In most successful approaches (check against Master Kagglers) people create features. In your case I'd probably want to calculate magnitude and vector of the force. Depending on the type of scenario, I might transform (Lat, Long) into distance from specific point (say, point of origin / activation, or established every 1 minute) or maybe use different coordinate system. </p>

<p>Since your data in time series, I'd probably use something well suited for time series modelling that you can understand and troubleshoot. CNN and such are typically your last resort in majority of cases. </p>

<p>If you really would like to automate it, check e.g. <a href="https://autokeras.com/" rel="nofollow noreferrer">Auto Keras</a> or <a href="https://uber.github.io/ludwig/" rel="nofollow noreferrer">ludwig</a>. When it comes to learning which features matter most, I'd recommend going with <a href="https://en.wikipedia.org/wiki/Gradient_boosting" rel="nofollow noreferrer">gradient boosting</a> (GBDT).</p>

<p>I'd recommend reading <a href="https://arxiv.org/pdf/1810.09591.pdf" rel="nofollow noreferrer">this article from AirBnB</a> that takes deeper dive into journey of building such systems and feature engineering.</p>
Applying machine learning to training data parameters
<p>I'm new to machine learning, and I understand that there are parameters and choices that apply to the <em>model</em> you attach to a certain set of inputs, which can be tuned/optimised, but those inputs obviously tie back to fields you generated by slicing and dicing whatever source data you had in a way that makes sense to <em>you</em>. But what if the way you decided to model and cut up your source data, and therefore training data, isn't optimal? Are there ways or tools that extend the power of machine learning into, not only the model, but the way training data was created in the first place?</p>

<p>Say you're analysing the accelerometer, GPS, heartrate and surrounding topography data of someone moving. You want to try determine where this person is likely to become exhausted and stop, assuming they'll continue moving in a straight line based on their trajectory, and that going up any hill will increase heartrate to some point where they must stop. If they're running or walking modifies these things obviously.</p>

<p>So you cut up your data, and feel free to correct how you'd do this, but it's less relevant to the main question:</p>

<ul>
<li>Slice up raw accelerometer data along X, Y, Z axis for the past <strong><em>A</em></strong> number of seconds into <strong><em>B</em></strong> number of slices to try and profile it, probably applying a CNN to it, to determine if running or walking</li>
<li>Cut up the recent <strong><em>C</em></strong> seconds of raw GPS data into a sequence of <strong><em>D</em></strong> (Lat, Long) pairs, each pair representing the average of <strong><em>E</em></strong> seconds of raw data</li>
<li><em>Based on the previous sequence</em>, determine speed and trajectory, and determine the upcoming slope, by slicing the next <strong><em>F</em></strong> distance (or seconds, another option to determine, of <strong><em>G</em></strong>) into <strong><em>H</em></strong> number of slices, profiling each, etc...</li>
</ul>

<p>You get the idea. How do you effectively determine <strong><em>A</em></strong> through <strong><em>H</em></strong>, some of which would completely change the number and behaviour of model inputs? I want to take out any bias I may have about what's right, and let it determine end-to-end. Are there practical solutions to this? Each time it changes the parameters of data creation, go back, re-generate the training data, feed it into the model, train it, tune it, over and over again until you get the best result.</p>