A Quantitative Approach to Sourcing DealFlows Pt. 2
By: Noah Povis
Tags: Machine Learning, Naturallanguageprocessing, Sklearn Pipeline, Venture Capital

S tep by Step Guide into building my model with results:

I used the same data that I originally trained my previous model on, which was a dataset from Crunchbase that contained 27,131 rows of different companies and 18 columns with information on each one.

The first thing I did was apply a function I created to wrangle the data in order to set it up with the correct features and target vectors I planned on inputting into my model.

Wrangling function

My resulting data frame contained 7 columns.

Value count for the percentage of companies that raised a Series A and the new shape of the data frame.

2. The next step was to apply some preprocessing NLP techniques on the text columns.

In this step I imported WordNetLemmatizer from the NLTK library. Lemmatization is the natural language preprocessing technique that takes a word such as tackling and converts it to its base word: tackle. This is useful for machine learning because it reduces the inflectional forms and sometimes derivationally related forms of a word to a common base form that makes it easier for the model to interpret by creating a mapping of words that are related to its base form. Additionally, lemmatization considers the context of the word as well in order to convert it to a more meaningful base form.

3. I then imported CountVectorizer from sklearn to apply on the Organization Description.

The purpose of CountVectorizer is to convert the text into a matrix of token counts on the basis of the frequency of each word that occurs in text. Also this is a mandatory preprocessing step for the text before I put the column through the LDA model because LDA does not accept text.

4. Now that I have the text prepared for LDA I imported LatentDirichletAllocation from sklearn and fit my document term matrix to the LDA model. I chose 10 topics arbitrarily after testing a few different numbers. Once I had DTM fitted I transformed it and converted it to a data frame that I concatenated to my wrangled data frame from above.

5. I repeated steps 3 and 4 for Investor Name and Organization Industries.

6. Now that I have run topic modeling on all three of my text columns I was ready to split the data frame into train and test observations.

7. Once I had my data test-ready, I created my machine learning pipeline that utilized XGBClassifier and Randomized Search Cross-validation.

8. Results after running the model on my test data are below.

Here are the results from my previous model.

As you can see by running LDA on two additional text columns I was able to get a better recall score, which was what I was optimizing for. In addition, my accuracy was brought down to a more realistic 83%, which signifies a reduction in variance. Overall, these results make me much more inclined to find ways to utilize my text data as much as possible when trying to extract the most value from it when creating predictive models.

In conclusion, I am very pleased with my findings and it has opened my eyes to exploring more natural language processing techniques as well as exploring additional features related to the founders of the company. While researching what information I should use for my model I noticed that there is black hole around information on the founders of these companies. As someone who has spent time in the startup scene and has met many successful founders I am beginning to hypothesis that information on the founders might be the biggest thing holding my model back from being able to provide substantial value to investors. Thus, my next iteration will be focused on sourcing information around the founders of the companies: personality, background, career, education, etc.

Github repo: https://github.com/noah40povis/VC-Sourcing-Model-Unit2-Build/blob/master/Topic_Modeling_Quantative_pt2.ipynb

Reference: