Answers.Body: <blockquote>
  <p>My question is, can I rely on my Accuracy (mean &amp; standard deviation) for future games even though my Testing Accuracy is lower than 52.5%?</p>
  </blockquote>
  <p>If by Accuracy you mean training accuracy, then absolutely you should not trust those values. For almost all machine learning algorithms there is a problem with <a href="https://elitedatascience.com/overfitting-in-machine-learning" rel="nofollow noreferrer">overfitting</a> to training data, which will result in reporting over-estimates for metrics against the training data. This is <em>why</em> you should always have a test data set of unseen data, because the performance on the training data is not what you truly care about - it is the performance on new unseen data, or how the model <em>generalises</em>, that matters when you want to use it to predict new values.</p>
  <p>The test data set gives you a measure of how well your model will generalise, because it simulates the performance of the model against unseen data.</p>
  <p>However, the test data set is not perfect for all uses. Random chance will cause your test measurements to vary. If you use your test results to <em>select</em> a model from a list of models based on performance, then:</p>
  <ul>
  <li><p>The model you selected <em>does</em> have the highest likelihood of being the best one, as you want. It is not guaranteed to be the best though.</p>
  </li>
  <li><p>The test result is likely to be an over-estimate of general performance. That is because you cannot separate the random fluctuations in test results from real performance improvements, you only see the combination.</p>
  </li>
  </ul>
  <p>The more tests you run, the more likely you will have an inflated view of the performance of your best model.</p>
  <p>The usual fix for this is to use cross validation. Cross validation uses yet another data set to help you with the first step of choosing the best model. After you have chosen your best performing model using cross validation, then you can use a test set that you have kept in reserve to measure the performance. Because you have not used that test set to <em>select</em> a model, then it will give you an unbiased measure of performance. You should still bear in mind that this measure still comes with implied error bars (and with other caveats, such as any inherent sampling bias).</p>
  <p>When predicting future results from past data, you do also need to be concerned about population drift and non-stationary problems. This is a common issue in any data set that includes complex behaviour that can evolve over time. This is very likely to affect results from sports teams where many conditions affecting performance evolve over the same timescales that you are trying to predict. In practice this means you will want to feed in new data ad re-train your models constantly, and despite this your models will tend to lag behind reality. It is unlikely you will achieve even the test result accuracy in the long term.</p>
  <p>You can add one more thing to your testing routines to help assess the impact of non-stationarity - when reserving data for the test or cross-validation sets, don't do it at random, instead reserve all the latest results (e.g. last four weeks of data) for test only. You are likely to see a reduction in the metrics when you do this for a problem domain like sport, but that should give you a more realistic assessment of the model you are building.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T17:08:54.373Z
Answers.Text: Hi Neil, 
  
  Thanks for responding! I am not referring to my Training Accuracy. Taking a looking at my A System Results:
  
  Train Accuracy: 0.6211656441717791
  Test Accuracy: 0.5153374233128835
  F1 Score: 0.52
  CONFUSION MATRIX: [[16 50] [29 68]]
  Cross Validation Accuracy: 0.55 (+/- 0.10)
  
  Should I trust the Test Accuracy over the Cross Validation Accuracy?
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T17:13:58.267Z
Answers.Text: @Sports_Stats: Sorry I didn't spot you were already using CV. In general CV accuracy is  tainted by using it to select the best agent, so it will be an over-estimate. So yes you should use test accuracy as a guage for how well that model will do "in production". You also need to keep selecting your best agent according to CV, don't select by test accuracy (otherwise you cannot trust it is unbiased). The worst thing you could do here is look through the models, compare test accuracy and pick the best.
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T17:15:46.917Z
Answers.Text: @Sports_Stats: Actually your question does not mention CV and states "Train Accuracy"? There is an addional "Accuracy" value at the end - is that the CV accuracy? If so, the CV results are also pushing you to pick model C, so you are in the clear to simply trust what the test accuracy is there and not otherthink things :-)
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T17:21:12.993Z
Answers.Text: Sorry for the confusion but to clear things up:
  
  The Accuracy label under the CONFUSION MATRIX label is == Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2)
  
  and
  
  scores = cross_val_score(clf, X, y, cv=10)
  
  Also, when I change the random_state from 42 to 0, my new results are much better: 
  
  Train Accuracy: 0.6306306306306306
  
  Test Accuracy: 0.5803571428571429
  
  Cross Validation Accuracy: 0.55 (+/- 0.08)
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T17:35:25.007Z
Answers.Text: @Sports_Stats: Given your SD on the estimates is +- 0.08 I would not get too excited about small improvements you see by tweaking params - they could just be luck and not represent true values. You could maybe look into k-fold cross validation to try and get that variance in the estimate down
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T17:28:09.357Z
Answers.Text: Hey Neil,
  
  The Cross Validation Accuracy for C System is 57% with a Standard Deviation of (+/- 0.16)​. Doesn't that indicate that 95% of future predictions will be between 57-0.16= 56.84% and 57 + 0.16 = 57.16% ?
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T17:36:12.760Z
Answers.Text: @Sports_Stats: The +-0.16 is standard error on the CV Accuracy, which is not reported as a percentage but a probability, so it's a lot worse than that. It means you are 95% confident that the "true" accuracy is somewhere between 41% or 73%. This is complicated by you then using the value of 0.57 to select this as "the best", so there is also an unmeasured (and difficult to assess) bias in there. That range is very large, probably because you don't have much data to spare for cross validation, which is why I suggest k-fold validation.
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T17:45:08.570Z
Answers.Text: Much Appreciated Neil! I truly thank you for all your responses and helpfulness. I'll go ahead and implement the K-Fold Validation and see what results I can come up with. Also, if I can get this algorithm to prove that it can be profitable on future predictions, and if you're interested, I'll send you my future picks :)
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T18:18:58.773Z
Answers.Text: I hope you do well. In all likelihood you are about to discover a deeper rabbit hole as the kinds of predictions you are looking at are hard to get right, and model accuracy can drift a lot over time as factors you are not including change. I think FiveThirtyEight might make some good reading for you - https://fivethirtyeight.com/tag/sports-betting/ Thanks for the offer of sharing results, but I am not really a betting person so I would not use them. If they ever get good, keep them to yourself :-)
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T18:49:40.330Z
Answers.Text: That unfortunately looks like the case as I just received a KFold Validation of -0.251765602234286 with a 57% Testing Accuracy. Which I guess I subtract the KFold Validation from the Testing Accuracy and receive a 32% Accuracy?
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T18:59:58.017Z
Answers.Text: @Sports_Stats: That doesn't seem right. If you run k fold, you should simply get multiple Accuracy values, and be told a mean Accuracy and (reduced) standard error. For instance if you ran 10-fold cross validation on your data set, I would expect you see a mean accuracy somewhere around 0.50 (50%) +- 0.03 (+- 3%) - it's the reduction of the standard error that you care about, it means you can trust the CV values a bit more.
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T20:06:20.893Z
Answers.Text: Ok.......I think I figured out where I went wrong and in addition to running K-Fold, I also ran Stratified K-Fold both with n_splits=10 and random_state=0, here are the results (including my original cross_val_score: Cross Validation Accuracy: 0.55 (+/- 0.18)   /    K-Fold Accuracy: 0.49 (+/- 0.16)    /   Stratified K-Fold Accuracy: 0.52 (+/- 0.12).
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T20:07:21.970Z
Answers.Text: Hmm, I would expect those standard errors to be lower (around 0.05 if a single measure was around 0.16). I'm not sure what's up there, I don't know your library and how it reports things.
Answers.UserDisplayName: Neil Slater
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T20:13:15.490Z
Answers.Text: Oops....I imported a different csv....here are the correct results for A System: Cross Validation Accuracy: 0.54 (+/- 0.10)    /    K-Fold Accuracy: 0.50 (+/- 0.12)    /    Stratified K-Fold Accuracy: 0.48 (+/- 0.11)
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-25T00:44:03.070Z
Answers.Text: The hardest part to fathom is the fact that after 815 results from A System, which had a 58% Accuracy when only needing to be 52.5% accurate, is that those results can't be trusted to be better than 52.5% over the next 800 results?
Answers.UserDisplayName: Sports_Stats
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T07:41:25.260Z
Answers.LastActivityDate: 2020-06-23T07:41:25.260Z
Answers.UserDisplayName: Neil Slater
Body: <p>I have been creating sports betting algorithms for many years using Microsoft access and I am transitioning to the ML world and trying to get a grasp on determining the success of my algorithms. I have exported my algorithms as CSV files dating back to the 2013-14 NBA season and imported them into python via pandas.</p>
  <p>The purpose of importing these CSV files is to determine the future accuracy of these algorithms using ML. Here are the algorithm records based on the Microsoft access query:</p>
  <ul>
  <li><p>A System: 471-344 (58%) +92.60</p>
  </li>
  <li><p>B System: 317-239 (57%) +54.10</p>
  </li>
  <li><p>C System: 347-262 (57%) +58.80</p>
  </li>
  </ul>
  <p>I have a total of 8,814 records in my database, however, the above systems are based on situational stats, e.g., Team A fits an algorithm if they have better Field Goal %, Played Last Game Home/Away, More Points Per Game, etc...</p>
  <p>​</p>
  <p>Here is some of the code that I wrote using Jupyter to determine the accuracy:</p>
  <pre><code>X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  
  clf = LinearSVC(C=1.0, penalty=&quot;l2&quot;, dual=False)
  
  clf.fit(X_train, y_train)
  
  pred_clf = clf.predict(X_test)
  
  scores = cross_val_score(clf, X, y, cv=10)
  
  rfe_selector = RFE(clf, 10)
  
  rfe_selector = rfe_selector.fit(X, y)
  
  rfe_values = rfe_selector.get_support()
  
  train = accuracy_score(y_train, clf.predict(X_train))
  
  test = accuracy_score(y_test, pred_clf)
  
  print(&quot;Train Accuracy:&quot;, accuracy_score(y_train, clf.predict(X_train)))
  
  print(&quot;Test Accuracy:&quot;, accuracy_score(y_test, pred_clf))
  
  print(classification_report(y_test, pred_clf, zero_division=1))
  
  print(confusion_matrix(y_test, pred_clf))
  
  print(&quot;Accuracy: %0.2f (+/- %0.2f)&quot; % (scores.mean(), scores.std() * 2))
  </code></pre>
  <p>​</p>
  <p>Here are the results from the code above by system:</p>
  <p>A System:</p>
  <ul>
  <li>Train Accuracy: 0.6211656441717791</li>
  <li>Test Accuracy: 0.5153374233128835</li>
  <li>F1 Score: 0.52</li>
  <li>CONFUSION MATRIX: [[16 50] [29 68]]</li>
  <li>Accuracy: 0.55 (+/- 0.10)</li>
  </ul>
  <p>B System:</p>
  <ul>
  <li>Train Accuracy: 0.6306306306306306</li>
  <li>Test Accuracy: 0.5178571428571429</li>
  <li>F1 Score: 0.52</li>
  <li>CONFUSION MATRIX: [[49 23] [31 9]]</li>
  <li>Accuracy: 0.55 (+/- 0.08)</li>
  </ul>
  <p>C System:</p>
  <ul>
  <li>Train Accuracy: 0.675564681724846</li>
  <li>Test Accuracy: 0.5409836065573771</li>
  <li>F1 Score: 0.54</li>
  <li>CONFUSION MATRIX: [[15 29] [27 51]]</li>
  <li>Accuracy: 0.57 (+/- 0.16)
  ​</li>
  </ul>
  <p>In order to have a profitable system, the accuracy only needs to be 52.5%. If I base my systems off of the Test Accuracy, only the C System is profitable. However, all are profitable if based on Accuracy (mean &amp; standard deviation).</p>
  <p>My question is, can I rely on my Accuracy (mean &amp; standard deviation) for future games even though my Testing Accuracy is lower than 52.5%?</p>
  <p>If not, any suggestions are greatly appreciated on how I can gauge the future results on these systems.</p>
  
Tags: <machine-learning><algorithm><support-vector-machine><cross-validation>
Title: Is my 57% sports betting accuracy correct?
UserDisplayName: Sports_Stats
ThreadText: # Is my 57% sports betting accuracy correct?
  
  (Asked by: username_0 on 2020-06-23)
  
  I have been creating sports betting algorithms for many years using Microsoft access and I am transitioning to the ML world and trying to get a grasp on determining the success of my algorithms. I have exported my algorithms as CSV files dating back to the 2013-14 NBA season and imported them into python via pandas.
  
  The purpose of importing these CSV files is to determine the future accuracy of these algorithms using ML. Here are the algorithm records based on the Microsoft access query:
  
  * A System: 471-344 (58%) +92.60
  * B System: 317-239 (57%) +54.10
  * C System: 347-262 (57%) +58.80
  
  I have a total of 8,814 records in my database, however, the above systems are based on situational stats, e.g., Team A fits an algorithm if they have better Field Goal %, Played Last Game Home/Away, More Points Per Game, etc...
  
  ​
  
  Here is some of the code that I wrote using Jupyter to determine the accuracy:
  
  ```
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  
  clf = LinearSVC(C=1.0, penalty="l2", dual=False)
  
  clf.fit(X_train, y_train)
  
  pred_clf = clf.predict(X_test)
  
  scores = cross_val_score(clf, X, y, cv=10)
  
  rfe_selector = RFE(clf, 10)
  
  rfe_selector = rfe_selector.fit(X, y)
  
  rfe_values = rfe_selector.get_support()
  
  train = accuracy_score(y_train, clf.predict(X_train))
  
  test = accuracy_score(y_test, pred_clf)
  
  print("Train Accuracy:", accuracy_score(y_train, clf.predict(X_train)))
  
  print("Test Accuracy:", accuracy_score(y_test, pred_clf))
  
  print(classification_report(y_test, pred_clf, zero_division=1))
  
  print(confusion_matrix(y_test, pred_clf))
  
  print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
  
  ```
  
  ​
  
  Here are the results from the code above by system:
  
  A System:
  
  * Train Accuracy: 0.6211656441717791
  * Test Accuracy: 0.5153374233128835
  * F1 Score: 0.52
  * CONFUSION MATRIX: [[16 50] [29 68]]
  * Accuracy: 0.55 (+/- 0.10)
  
  B System:
  
  * Train Accuracy: 0.6306306306306306
  * Test Accuracy: 0.5178571428571429
  * F1 Score: 0.52
  * CONFUSION MATRIX: [[49 23] [31 9]]
  * Accuracy: 0.55 (+/- 0.08)
  
  C System:
  
  * Train Accuracy: 0.675564681724846
  * Test Accuracy: 0.5409836065573771
  * F1 Score: 0.54
  * CONFUSION MATRIX: [[15 29] [27 51]]
  * Accuracy: 0.57 (+/- 0.16)
    ​
  
  In order to have a profitable system, the accuracy only needs to be 52.5%. If I base my systems off of the Test Accuracy, only the C System is profitable. However, all are profitable if based on Accuracy (mean & standard deviation).
  
  My question is, can I rely on my Accuracy (mean & standard deviation) for future games even though my Testing Accuracy is lower than 52.5%?
  
  If not, any suggestions are greatly appreciated on how I can gauge the future results on these systems.
  
  **Tags:** machine-learning, algorithm, support-vector-machine, cross-validation
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-06-23. Score: 1
  
  > My question is, can I rely on my Accuracy (mean & standard deviation) for future games even though my Testing Accuracy is lower than 52.5%?
  
  If by Accuracy you mean training accuracy, then absolutely you should not trust those values. For almost all machine learning algorithms there is a problem with [overfitting](https://elitedatascience.com/overfitting-in-machine-learning) to training data, which will result in reporting over-estimates for metrics against the training data. This is *why* you should always have a test data set of unseen data, because the performance on the training data is not what you truly care about - it is the performance on new unseen data, or how the model *generalises*, that matters when you want to use it to predict new values.
  
  The test data set gives you a measure of how well your model will generalise, because it simulates the performance of the model against unseen data.
  
  However, the test data set is not perfect for all uses. Random chance will cause your test measurements to vary. If you use your test results to *select* a model from a list of models based on performance, then:
  
  * The model you selected *does* have the highest likelihood of being the best one, as you want. It is not guaranteed to be the best though.
  * The test result is likely to be an over-estimate of general performance. That is because you cannot separate the random fluctuations in test results from real performance improvements, you only see the combination.
  
  The more tests you run, the more likely you will have an inflated view of the performance of your best model.
  
  The usual fix for this is to use cross validation. Cross validation uses yet another data set to help you with the first step of choosing the best model. After you have chosen your best performing model using cross validation, then you can use a test set that you have kept in reserve to measure the performance. Because you have not used that test set to *select* a model, then it will give you an unbiased measure of performance. You should still bear in mind that this measure still comes with implied error bars (and with other caveats, such as any inherent sampling bias).
  
  When predicting future results from past data, you do also need to be concerned about population drift and non-stationary problems. This is a common issue in any data set that includes complex behaviour that can evolve over time. This is very likely to affect results from sports teams where many conditions affecting performance evolve over the same timescales that you are trying to predict. In practice this means you will want to feed in new data ad re-train your models constantly, and despite this your models will tend to lag behind reality. It is unlikely you will achieve even the test result accuracy in the long term.
  
  You can add one more thing to your testing routines to help assess the impact of non-stationarity - when reserving data for the test or cross-validation sets, don't do it at random, instead reserve all the latest results (e.g. last four weeks of data) for test only. You are likely to see a reduction in the metrics when you do this for a problem domain like sport, but that should give you a more realistic assessment of the model you are building.
  
  > **Comments:**
  > **username_0**: Hi username_1,   Thanks for responding! I am not referring to my Training Accuracy. Taking a looking at my A System Results:  Train Accuracy: 0.6211656441717791 Test Accuracy: 0.5153374233128835 F1 Score: 0.52 CONFUSION MATRIX: [[16 50] [29 68]] Cross Validation Accuracy: 0.55 (+/- 0.10)  Should I trust the Test Accuracy over the Cross Validation Accuracy?  
  > **username_1**: @username_0: Sorry I didn't spot you were already using CV. In general CV accuracy is  tainted by using it to select the best agent, so it will be an over-estimate. So yes you should use test accuracy as a guage for how well that model will do "in production". You also need to keep selecting your best agent according to CV, don't select by test accuracy (otherwise you cannot trust it is unbiased). The worst thing you could do here is look through the models, compare test accuracy and pick the best.  
  > **username_1**: @username_0: Actually your question does not mention CV and states "Train Accuracy"? There is an addional "Accuracy" value at the end - is that the CV accuracy? If so, the CV results are also pushing you to pick model C, so you are in the clear to simply trust what the test accuracy is there and not otherthink things :-)  
  > **username_0**: Sorry for the confusion but to clear things up:  The Accuracy label under the CONFUSION MATRIX label is == Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2)  and  scores = cross_val_score(clf, X, y, cv=10)  Also, when I change the random_state from 42 to 0, my new results are much better:   Train Accuracy: 0.6306306306306306  Test Accuracy: 0.5803571428571429  Cross Validation Accuracy: 0.55 (+/- 0.08)  
  > **username_1**: @username_0: Given your SD on the estimates is +- 0.08 I would not get too excited about small improvements you see by tweaking params - they could just be luck and not represent true values. You could maybe look into k-fold cross validation to try and get that variance in the estimate down  
  > **username_0**: Hey username_1,  The Cross Validation Accuracy for C System is 57% with a Standard Deviation of (+/- 0.16)​. Doesn't that indicate that 95% of future predictions will be between 57-0.16= 56.84% and 57 + 0.16 = 57.16% ?  
  > **username_1**: @username_0: The +-0.16 is standard error on the CV Accuracy, which is not reported as a percentage but a probability, so it's a lot worse than that. It means you are 95% confident that the "true" accuracy is somewhere between 41% or 73%. This is complicated by you then using the value of 0.57 to select this as "the best", so there is also an unmeasured (and difficult to assess) bias in there. That range is very large, probably because you don't have much data to spare for cross validation, which is why I suggest k-fold validation.  
  > **username_0**: Much Appreciated username_1! I truly thank you for all your responses and helpfulness. I'll go ahead and implement the K-Fold Validation and see what results I can come up with. Also, if I can get this algorithm to prove that it can be profitable on future predictions, and if you're interested, I'll send you my future picks :)  
  > **username_1**: I hope you do well. In all likelihood you are about to discover a deeper rabbit hole as the kinds of predictions you are looking at are hard to get right, and model accuracy can drift a lot over time as factors you are not including change. I think FiveThirtyEight might make some good reading for you - https://fivethirtyeight.com/tag/sports-betting/ Thanks for the offer of sharing results, but I am not really a betting person so I would not use them. If they ever get good, keep them to yourself :-)  
  > **username_0**: That unfortunately looks like the case as I just received a KFold Validation of -0.251765602234286 with a 57% Testing Accuracy. Which I guess I subtract the KFold Validation from the Testing Accuracy and receive a 32% Accuracy?  
  > **username_1**: @username_0: That doesn't seem right. If you run k fold, you should simply get multiple Accuracy values, and be told a mean Accuracy and (reduced) standard error. For instance if you ran 10-fold cross validation on your data set, I would expect you see a mean accuracy somewhere around 0.50 (50%) +- 0.03 (+- 3%) - it's the reduction of the standard error that you care about, it means you can trust the CV values a bit more.  
  > **username_0**: Ok.......I think I figured out where I went wrong and in addition to running K-Fold, I also ran Stratified K-Fold both with n_splits=10 and random_state=0, here are the results (including my original cross_val_score: Cross Validation Accuracy: 0.55 (+/- 0.18)   /    K-Fold Accuracy: 0.49 (+/- 0.16)    /   Stratified K-Fold Accuracy: 0.52 (+/- 0.12).  
  > **username_1**: Hmm, I would expect those standard errors to be lower (around 0.05 if a single measure was around 0.16). I'm not sure what's up there, I don't know your library and how it reports things.  
  > **username_0**: Oops....I imported a different csv....here are the correct results for A System: Cross Validation Accuracy: 0.54 (+/- 0.10)    /    K-Fold Accuracy: 0.50 (+/- 0.12)    /    Stratified K-Fold Accuracy: 0.48 (+/- 0.11)  
  > **username_0**: The hardest part to fathom is the fact that after 815 results from A System, which had a 58% Accuracy when only needing to be 52.5% accurate, is that those results can't be trusted to be better than 52.5% over the next 800 results?  
  
  ---
  
  