<p>There has been some research on "one-class classification".  Here are a couple of papers:</p>

<ul>
<li><a href="http://homepage.tudelft.nl/n9d04/thesis.pdf" rel="nofollow noreferrer">One-class classification</a> by David Martinus Johannes</li>
<li><a href="https://arxiv.org/abs/1801.05365" rel="nofollow noreferrer">Learning Deep Features for One-Class Classification</a> by Pramuditha Perera, Vishal M. Patel
The code implementation is available here: <a href="https://github.com/PramuPerera/DeepOneClass" rel="nofollow noreferrer">https://github.com/PramuPerera/DeepOneClass</a></li>
</ul>

<p>If your data is in the form of images, you could try using Generative Adversarial Networks (GANs) to generate negative data.  There is a post on this problem here: <a href="https://www.quora.com/Could-I-use-GANs-to-generate-negative-samples-for-one-class-classification" rel="nofollow noreferrer">Could I use GANs to generate negative samples for one class classification?</a>  He references Johannes' thesis.</p>

<p>If you program in Python check out what SciKit-Learn has to offer:</p>

<ul>
<li><a href="http://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM" rel="nofollow noreferrer">sklearn.svm.OneClassSVM</a></li>
<li>Example: <a href="http://scikit-learn.org/stable/auto_examples/svm/plot_oneclass.html#sphx-glr-auto-examples-svm-plot-oneclass-py" rel="nofollow noreferrer">One-class SVM with non-linear kernel (RBF)</a></li>
</ul>
Building a classifier with only examples for one class
<p>My company makes widgets. We make very high quality widgets, but occasionally a widget will suffer a defect known as a 'glurb'. A widget might never glurb over its entire lifetime, it may glurb once, or it may glurb multiple times. A widget's lifetime may be a few months or many years. </p>

<p>We maintain a database that lists every instance of a widget glurbing. For each glurb event, we know which widget glurbed, when it glurbed, and we have features about the widget before it glurbed. We know for 100% certain that when a widget glurbs, it is recorded in our database. </p>

<p>Management wants to build a machine learning model that, given a particular widget, will predict whether or not it will glurb in, say, the next six months.</p>

<p>I have a problem: I have a set of observations that show when a widget glurbs, which is the 'positive' training set, but I have no 'negative' (did not glurb) training set.</p>

<p>Is it statistically valid for me to choose a time, date, and widget at random, look into my database, and if I see that widget didn't glurb for 6 months after the chosen date/time, to declare that as an instance of a 'didn't glurb' event and put that in my 'negative' training set sample?</p>

<p>Is there a statistically valid way to generate a 'negative' test set from the data I have? If so, what would it be? If not, how could I build a classifier from the data I have?</p>