I've been working on a similar project.
Three things that I would suggest would be
- add documents definitively written by the authors (Maddison, John jay, etc) from outside the federalist papers to your train set.
http://oll.libertyfund.org/titles/jay-the-correspondence-and...
http://www.gutenberg.org/ebooks/author/14, etc
- Add another feature which looks at the frequency of the function (closed class words) such as articles, prepositions etc these are very stylistic and hard for an author to control, they are also independent of the content, this is a classical feature in forensics.
- Add a distractor case to your train and validation set I.e documents written by a non federalist such as Thomas Jefferson and confirm that they don't get clustered into one of the other federalist authors.
If you have questions feel free to tweet me it seems like a cool project @pythiccoder
Unlike what the commentor above said that its not modern and you should have did word2vec, bags of words are very robust and work well in these situations. word2vec was trained on a completely different corupus, and this data is quite small.
some things you might try are: - cosine distance between words - ad LDA (latent dirichelet allocation) topic probabilities - add verb speed (how fast they used the first verb in sentence - run an LSTM NN, add the predicted prob as features (careful in overfiting)
Also maybe do a PCA and show scatter plots of the first two PCs for each doc?
I'm no expert, but these could be fun avenues to explore.