Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Neural Network Analysis

Overview

The purpose of this analysis is to create a deep learning model or neural network to help Alphabet Soup determine if applicants are suitable for funding. The data provided consisted of information on 34,000+ organizations that Alphabet Soup has previously funded. Using this data, it was possible to implement deep learning techniques to develop a predictive model for the likelihood of success of a loan.

Results

  • Data Preprocessing

    The target variable used in this analysis is the column labeled IS_SUCCESSFUL which has either a 0 or 1 value to indicate whether the funding was used successfully. After dropping the columns NAME and EIN, there were 9 additional features to consider using in the model. The features I chosed to include were ASK_AMOUNT, APPLICATION_TYPE, CLASSIFICATION, ORGANIZATION, and AFFILIATION. I also created bins for ASK_AMT to break that variable down into categories of <$10,000, $10,000-100,000, $100,000-1,000,000, and $1,000,000-9,000,000. The most frequently asked amount was $5000 which was also the median value for that column. The columsn EIN and NAME were immediately removed because that would have no impact on the success of the loan. I also removed STATUS, SPECIAL_CONSIDERATIONS, USE_CASE, and INCOME_AMT.

  • Compiling, Training, and Evaluating the Model

    The number of input features used in the model was the length of the X_train data. I chose to use 2 hidden layers. Adding hidden layers can help to boost the performance of a neural network model. The optimal number of layers is considered to be 3-5. The two hidden layers have 16 and 10 neurons respectively. I chose to use the ReLu (Rectified Linear Unit) function for all of the layers which is ideal for modeling positive nonlinear data. During the modeling process, I also tried the tanh function which yieled a slightly lower accuracy. Steps I took to improve the model performance were to add and remove layers, increase or decrease the number of neurons in the hidden layers, change the number of epochs, remove columns, and add bins to different categories that had many unique values. Using these techniques allowed me to achieve an accuracy of 73%, slightly lower than the desired accuracy.

  • Summary

    It proved challenging to get the model to perform better. After converting all of the categorical variables into dummies, it became challenging to figure out which ones were important to include. The use of binning enabled me to lump together less common values which may have slightly improved the model's performance. Using these techniques runs the risk of incorrectly fitting the data where either the model is failing to predict the data correctly or overfitting the data. Stratifying the data allowed for creating a balance between the training and testing data which may have improved it slightly. In the past, I've used Random Forest, which I found effective in predicting outcomes with multiple categories of data since it is robust to outliers and non-linear data.

About

Created binary classifier using machine learning to assist nonprofits in determining which organizations to fund

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages