Git Product home page Git Product logo

disaster-response-pipelines's Introduction

Disaster Response Pipeline Project

Table of Contents:

1.Installation
2.Project Motivation
3.Project Descriptions
4.Files Descriptions
5.Instructions
6.Github Link
7.Acknowledgement

Installation:

All libraries are available in Anaconda distribution of Python. The used libraries are:

pandas
re
sys
json
sklearn
nltk
sqlalchemy
pickle
Flask
plotly
sqlite3
The code should run using Python versions 3.*.

Project Motivation:

The goal of the project is to classify the disaster messages into categories. In this project, I analyzed disaster data from Figure Eight to build a model for an API that classifies disaster messages. Through a web app, the user can input a new message and get classification results in several categories. The web app also display visualizations of the data.

Project Descriptions:

The project has three components which are:

  1. ETL Pipeline: process_data.py file contain the script to create ETL pipeline which:
    a. Loads the messages and categories datasets
    b. Merges the two datasets
    c. Cleans the data
    d. Stores it in a SQLite database

  2. ML Pipeline: train_classifier.py file contain the script to create ML pipeline which:
    a. Loads data from the SQLite database
    b. Splits the dataset into training and test sets
    c. Builds a text processing and machine learning pipeline
    d. Trains and tunes a model using GridSearchCV
    e. Outputs results on the test set
    f. Exports the final model as a pickle file

  3. Flask Web App: The web app enables the user to enter a disaster message, and then view the categories of the message.

The web app also contains some visualizations that describe the data.

Files Descriptions:

The files structure is arranged as below:

  • app
    | - template
    | |- master.html # main page of web app
    | |- go.html # classification result page of web app
    |- run.py # Flask file that runs app

  • data
    |- disaster_categories.csv # data to process
    |- disaster_messages.csv # data to process
    |- process_data.py
    |- DisasterDatabase.db # database to save clean data to

  • models
    |- train_classifier.py
    |- classifier.pkl # saved model

  • README.md

Instructions:

  1. Run the following commands in the project's root directory to set up your database and model.

    • To run ETL pipeline that cleans data and stores in database
      python data/process_data.py data/disaster_messages.csv data/disaster_categories.csv data/DisasterDatabase.db
    • To run ML pipeline that trains classifier and saves
      python models/train_classifier.py data/DisasterResponse.db models/classifier.pkl
  2. Run the following command in the app's directory to run your web app.
    python run.py

  3. Go to http://0.0.0.0:3001/

GitHub Link:

The Github link to see the code is https://github.com/Shivaae/Disaster-Response-Pipelines

Acknowledgement:

I would like to thanks Figure Eight and Udacity for providing the Dataset.

disaster-response-pipelines's People

Contributors

shivaae 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.