Giter Club home page Giter Club logo

deep-learning's Introduction

Deep Learning Homework: Charity Funding Predictor

Background

The non-profit foundation Alphabet Soup wants to create an algorithm to predict whether or not applicants for funding will be successful. With your knowledge of machine learning and neural networks, you’ll use the features in the provided dataset to create a binary classifier that is capable of predicting whether applicants will be successful if funded by Alphabet Soup.

From Alphabet Soup’s business team, you have received a CSV containing more than 34,000 organizations that have received funding from Alphabet Soup over the years. Within this dataset are a number of columns that capture metadata about each organization, such as the following:

  • EIN and NAME—Identification columns
  • APPLICATION_TYPE—Alphabet Soup application type
  • AFFILIATION—Affiliated sector of industry
  • CLASSIFICATION—Government organization classification
  • USE_CASE—Use case for funding
  • ORGANIZATION—Organization type
  • STATUS—Active status
  • INCOME_AMT—Income classification
  • SPECIAL_CONSIDERATIONS—Special consideration for application
  • ASK_AMT—Funding amount requested
  • IS_SUCCESSFUL—Was the money used effectively

Instructions

Step 1: Preprocess the data

Using your knowledge of Pandas and the Scikit-Learn’s StandardScaler(), you’ll need to preprocess the dataset in order to compile, train, and evaluate the neural network model later in Step 2

Using the information we have provided in the starter code, follow the instructions to complete the preprocessing steps.

  1. Read in the charity_data.csv to a Pandas DataFrame, and be sure to identify the following in your dataset:
  • What variable(s) are considered the target(s) for your model?
  • What variable(s) are considered the feature(s) for your model?
  1. Drop the EIN and NAME columns.
  2. Determine the number of unique values for each column.
  3. For those columns that have more than 10 unique values, determine the number of data points for each unique value.
  4. Use the number of data points for each unique value to pick a cutoff point to bin "rare" categorical variables together in a new value, Other, and then check if the binning was successful.
  5. Use pd.get_dummies() to encode categorical variables

Step 2: Compile, Train, and Evaluate the Model

Using your knowledge of TensorFlow, you’ll design a neural network, or deep learning model, to create a binary classification model that can predict if an Alphabet Soup–funded organization will be successful based on the features in the dataset. You’ll need to think about how many inputs there are before determining the number of neurons and layers in your model. Once you’ve completed that step, you’ll compile, train, and evaluate your binary classification model to calculate the model’s loss and accuracy.

  1. Continue using the jupter notebook where you’ve already performed the preprocessing steps from Step 1.
  2. Create a neural network model by assigning the number of input features and nodes for each layer using Tensorflow Keras.
  3. Create the first hidden layer and choose an appropriate activation function.
  4. If necessary, add a second hidden layer with an appropriate activation function.
  5. Create an output layer with an appropriate activation function.
  6. Check the structure of the model.
  7. Compile and train the model.
  8. Create a callback that saves the model's weights every 5 epochs.
  9. Evaluate the model using the test data to determine the loss and accuracy.
  10. Save and export your results to an HDF5 file, and name it AlphabetSoupCharity.h5.

Step 3: Optimize the Model

Using your knowledge of TensorFlow, optimize your model in order to achieve a target predictive accuracy higher than 75%. If you can't achieve an accuracy higher than 75%, you'll need to make at least three attempts to do so.

Optimize your model in order to achieve a target predictive accuracy higher than 75% by using any or all of the following:

  • Adjusting the input data to ensure that there are no variables or outliers that are causing confusion in the model, such as:
    • Dropping more or fewer columns.
    • Creating more bins for rare occurrences in columns.
    • Increasing or decreasing the number of values for each bin.
  • Adding more neurons to a hidden layer.
  • Adding more hidden layers.
  • Using different activation functions for the hidden layers.
  • Adding or reducing the number of epochs to the training regimen.

NOTE: You will not lose points if your model does not achieve target performance, as long as you make three attempts at optimizing the model in your jupyter notebook.

  1. Create a new Jupyter Notebook file and name it AlphabetSoupCharity_Optimzation.ipynb.
  2. Import your dependencies, and read in the charity_data.csv to a Pandas DataFrame.
  3. Preprocess the dataset like you did in Step 1, taking into account any modifications to optimize the model.
  4. Design a neural network model, taking into account any modifications that will optimize the model to achieve higher than 75% accuracy.
  5. Save and export your results to an HDF5 file, and name it AlphabetSoupCharity_Optimization.h5.

Step 4: Write a Report on the Neural Network Model

For this part of the Challenge, you’ll write a report on the performance of the deep learning model you created for AlphabetSoup.

The report should contain the following:

  1. Overview of the analysis: Explain the purpose of this analysis.

  2. Results: Using bulleted lists and images to support your answers, address the following questions.

  • Data Preprocessing
    • What variable(s) are considered the target(s) for your model?
    • What variable(s) are considered to be the features for your model?
    • What variable(s) are neither targets nor features, and should be removed from the input data?
  • Compiling, Training, and Evaluating the Model
    • How many neurons, layers, and activation functions did you select for your neural network model, and why?
    • Were you able to achieve the target model performance?
    • What steps did you take to try and increase model performance?
  1. Summary: Summarize the overall results of the deep learning model. Include a recommendation for how a different model could solve this classification problem, and explain your recommendation.

Rubric

Unit 21 - Deep Learning Homework Rubric - Charity Funding Predictor


© 2021 Trilogy Education Services, a 2U, Inc. brand. All Rights Reserved.

deep-learning's People

Contributors

oh-be avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.