I ran across an article a while back that used machine learning to estimate who wrote several of The Federalist Papers, since that author was unknown. It occurred to me that it’d be interesting, if not fruitful nor conclusive, to run the same type of analysis to see who wrote Hebrews.
*If you said “The Holy Spirit wrote it”, I wouldn’t argue. But that would also cut this exercise very short.
I could only find a clean, workable version of the Bible in the King James Version. Already, note that we’re going to be running text mining algorithms on a translation, and an older one at that. Not exactly ideal, but learning Greek is out of scope for this project, so we’ll press on.
*I use the ESV daily, but the larger point is that it’s not in the original language, so certain nuances that would be helpful may be lost. This is why we let scholars and theologians, not data analysts, handle this sort of thing.
Note that we’ll limit the analysis to the New Testament only. This is working on the assumption that the author also wrote one of the other books, something we’ll get back to later. On a technical side, I switched the model from the Federalist study from Random Forest to XGBoost, since it’s a bit more robust.
XGBoost, like Luther, believes that Paul wrote Hebrews. I’m sure Luther would be relieved to hear it, albeit befuddled about what exactly a machine learning model (or a computer, for that matter) is.
However; the model is missing Apollo as a candidate. Why? Because it was only trained on authors we already know - the idea of it being somebody else is outside of the possibilities we gave it. Maybe - maybe - if we somehow got writing samples from everybody alive at the time, we could build a model that would account for that, but we’d likely get some false positives as well.
The point here, outside of having some fun with modeling, is that your model very much depends on your assumptions. We don’t know for sure who wrote Hebrews - it may have been Paul, it may have been someone else. Our model assumed it was an author we knew, its answer may be right but it’d be right for the wrong reasons. When building models - machine learning or mental models while trying to solve a question - always check your assumptions.