# Churn Prediction

## Customer Churn Model

**Function** get\_data():

| Arguement | Type     | Description       |
| --------- | -------- | ----------------- |
| url       | *string* | URL of a CSV file |

**Returns** *pandas.dataframe*

### Usage

```python
    df = model_churn.get_data(url = 'https://raw.githubusercontent.com/../BankChurners.csv')
```

***

<br>

**Function** preprocess\_inputs():

| Input       | Type                 | Description                                                       |                                                                                                                                               |
| ----------- | -------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| dataset     | \*pandas.dataframe\* | Model dataset in dataframe                                        |                                                                                                                                               |
| model\_name | *string*             | <p>Model name as a string<br><em>Default = "Logistic\_Regression" | </em><br>"Support\_Vector\_Machine"<br>"Support\_Vector\_Machine\_Optimized"<br>"Decision\_Tree"<br>"Neural\_Network"<br>"Random\_Forest"</p> |

**Returns** *pandas.dataframe*, *pandas.dataframe*

### Usage

```python
    X, y = preprocess_inputs(df, "Neural_Network")
```

***

<br>

**Function** pretrained():

| Input       | Type     | Description                                                       |                                                                                                                                               |
| ----------- | -------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| model\_name | *string* | <p>Model name as a string<br><em>Default = "Logistic\_Regression" | </em><br>"Support\_Vector\_Machine"<br>"Support\_Vector\_Machine\_Optimized"<br>"Decision\_Tree"<br>"Neural\_Network"<br>"Random\_Forest"</p> |

**Returns** model

### Usage

```python
    model = pretrained("Neural_Network")
```

***

<br>

**Function** train():

| Input       | Type                 | Description                                                       |                                                                                                                                               |
| ----------- | -------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| dataset     | \*pandas.dataframe\* | New training dataset in dataframe                                 |                                                                                                                                               |
| model\_name | *string*             | <p>Model name as a string<br><em>Default = "Logistic\_Regression" | </em><br>"Support\_Vector\_Machine"<br>"Support\_Vector\_Machine\_Optimized"<br>"Decision\_Tree"<br>"Neural\_Network"<br>"Random\_Forest"</p> |

**Returns** model

### Usage

```python
    model = train(df, "Neural_Network")
```

***

<br>

**Function** predict():

| Input        | Type                 | Description                            |
| ------------ | -------------------- | -------------------------------------- |
| test dataset | \*pandas.dataframe\* | Model test dataset in dataframe        |
| model        | function()           | Model function from pretrained / train |

**Returns** *array*

### Usage

```python
    print(predict(X_test, model))
```

***

<br>
