init
This commit is contained in:
commit
752140ab39
11
.dockerignore
Normal file
11
.dockerignore
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
__pycache__/
|
||||||
|
.ipynb_checkpoints/
|
||||||
|
*.pyc
|
||||||
|
*.pyo
|
||||||
|
myenv/
|
||||||
|
*.ipynb
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
.git/
|
||||||
|
.gitignore
|
||||||
|
|
||||||
38
.github/workflows/deploy.yml
vendored
Normal file
38
.github/workflows/deploy.yml
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
name: Deploy to Heroku
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
|
with:
|
||||||
|
python-version: 3.9 # Match your app's Python version
|
||||||
|
|
||||||
|
- name: Install Dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
- name: Test Application
|
||||||
|
run: |
|
||||||
|
pytest # Assuming you have tests configured
|
||||||
|
|
||||||
|
- name: Deploy to Heroku
|
||||||
|
env:
|
||||||
|
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
|
||||||
|
HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }}
|
||||||
|
run: |
|
||||||
|
echo "Deploying to Heroku..."
|
||||||
|
heroku container:login
|
||||||
|
heroku container:push web --app $HEROKU_APP_NAME
|
||||||
|
heroku container:release web --app $HEROKU_APP_NAME
|
||||||
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Base image with Python
|
||||||
|
FROM python:3.9-slim
|
||||||
|
|
||||||
|
# Set the working directory inside the container
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy the application files to the container
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
# Install Python dependencies
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# Expose the FastAPI app port
|
||||||
|
EXPOSE 8000
|
||||||
|
|
||||||
|
# Ensure the application runs on Heroku's dynamic port
|
||||||
|
CMD ["sh", "-c", "uvicorn main:app --host 0.0.0.0 --port $PORT"]
|
||||||
599
LoanApprovalPrediction.csv
Normal file
599
LoanApprovalPrediction.csv
Normal file
@ -0,0 +1,599 @@
|
|||||||
|
Gender,Married,Dependents,Education,Self_Employed,ApplicantIncome,CoapplicantIncome,LoanAmount,Loan_Amount_Term,Credit_History,Property_Area,Loan_Status
|
||||||
|
Male,No,0,Graduate,No,5849,0,0,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,4583,1508,128,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,Yes,3000,0,66,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2583,2358,120,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,6000,0,141,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,5417,4196,267,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2333,1516,95,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,No,3036,2504,158,360,0,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,4006,1526,168,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,12841,10968,349,360,1,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,3200,700,70,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,2500,1840,109,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3073,8106,200,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,1853,2840,114,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,No,1299,1086,17,120,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,4950,0,125,360,1,Urban,Y
|
||||||
|
Male,No,1,Not Graduate,No,3596,0,100,240,,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,3510,0,76,360,0,Urban,N
|
||||||
|
Male,Yes,0,Not Graduate,No,4887,0,133,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,Yes,2600,3500,115,,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,7660,0,104,360,0,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,5955,5625,315,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2600,1911,116,360,0,Semiurban,N
|
||||||
|
Male,Yes,1,Graduate,Yes,3717,2925,151,360,,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,Yes,9560,0,191,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2799,2253,122,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,4226,1040,110,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,1442,0,35,360,1,Urban,N
|
||||||
|
Female,No,2,Graduate,Yes,3750,2083,120,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,4166,3369,201,360,,Urban,N
|
||||||
|
Male,No,0,Graduate,No,3167,0,74,360,1,Urban,N
|
||||||
|
Male,No,1,Graduate,Yes,4692,0,106,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,3500,1667,114,360,1,Semiurban,Y
|
||||||
|
Male,No,3,Graduate,No,12500,3000,320,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2275,2067,,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,1828,1330,100,,0,Urban,N
|
||||||
|
Female,Yes,0,Graduate,No,3667,1459,144,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,4166,7210,184,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3748,1668,110,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,3600,0,80,360,1,Urban,N
|
||||||
|
Male,No,0,Graduate,No,1800,1213,47,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2400,0,75,360,,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3941,2336,134,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,Yes,4695,0,96,,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,3410,0,88,,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,5649,0,44,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5821,0,144,360,1,Urban,Y
|
||||||
|
Female,Yes,0,Graduate,No,2645,3440,120,360,0,Urban,N
|
||||||
|
Female,No,0,Graduate,No,4000,2275,144,360,1,Semiurban,Y
|
||||||
|
Female,Yes,0,Not Graduate,No,1928,1644,100,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,3086,0,120,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,4230,0,112,360,1,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,4616,0,134,360,1,Urban,N
|
||||||
|
Female,Yes,1,Graduate,Yes,11500,0,286,360,0,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,2708,1167,97,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2132,1591,96,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3366,2200,135,360,1,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,8080,2250,180,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3357,2859,144,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2500,3796,120,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,No,3029,0,99,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,Yes,2609,3449,165,180,0,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,4945,0,,360,0,Rural,N
|
||||||
|
Female,No,0,Graduate,No,4166,0,116,360,0,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,5726,4595,258,360,1,Semiurban,N
|
||||||
|
Male,No,0,Not Graduate,No,3200,2254,126,180,0,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,10750,0,312,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Not Graduate,Yes,7100,0,125,60,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,4300,0,136,360,0,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,3208,3066,172,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Not Graduate,Yes,1875,1875,97,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,3500,0,81,300,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,4755,0,95,,0,Semiurban,N
|
||||||
|
Male,Yes,3,Graduate,Yes,5266,1774,187,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,3750,0,113,480,1,Urban,N
|
||||||
|
Male,No,0,Graduate,No,3750,4750,176,360,1,Urban,N
|
||||||
|
Male,Yes,1,Graduate,Yes,1000,3022,110,360,1,Urban,N
|
||||||
|
Male,Yes,3,Graduate,No,3167,4000,180,300,0,Semiurban,N
|
||||||
|
Male,Yes,3,Not Graduate,Yes,3333,2166,130,360,,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,3846,0,111,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,2395,0,,360,1,Semiurban,Y
|
||||||
|
Female,Yes,2,Graduate,No,1378,1881,167,360,1,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,6000,2250,265,360,,Semiurban,N
|
||||||
|
Male,Yes,1,Graduate,No,3988,0,50,240,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2366,2531,136,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3333,2000,99,360,,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2500,2118,104,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,8566,0,210,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5695,4167,175,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2958,2900,131,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,6250,5654,188,180,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3273,1820,81,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,4133,0,122,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3620,0,25,120,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,6782,0,,360,,Urban,N
|
||||||
|
Female,Yes,0,Graduate,No,2484,2302,137,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,1977,997,50,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,4188,0,115,180,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,1759,3541,131,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,4288,3263,133,180,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,4843,3806,151,360,1,Semiurban,Y
|
||||||
|
Male,Yes,,Graduate,No,13650,0,,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,4652,3583,,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,3052,1030,100,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,11417,1126,225,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,Yes,7333,0,120,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,No,3800,3600,216,360,0,Urban,N
|
||||||
|
Male,Yes,3,Not Graduate,No,2071,754,94,480,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,5316,0,136,360,1,Urban,Y
|
||||||
|
Female,Yes,0,Graduate,Yes,2929,2333,139,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,3572,4114,152,,0,Rural,N
|
||||||
|
Female,No,1,Graduate,Yes,7451,0,,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,5050,0,118,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,14583,0,185,180,1,Rural,Y
|
||||||
|
Female,Yes,0,Graduate,No,3167,2283,154,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,2214,1398,85,360,,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5568,2142,175,360,1,Rural,N
|
||||||
|
Female,No,0,Graduate,No,10408,0,259,360,1,Urban,Y
|
||||||
|
Male,Yes,,Graduate,No,5667,2667,180,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,4166,0,44,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,2137,8980,137,360,0,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,2957,0,81,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,4300,2014,194,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,3692,0,93,360,,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,3865,1640,,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,10513,3850,160,180,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,6080,2569,182,360,,Rural,N
|
||||||
|
Male,No,0,Graduate,Yes,20166,0,650,480,,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2014,1929,74,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2718,0,70,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,3459,0,25,120,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,4895,0,102,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Graduate,No,4000,7750,290,360,1,Semiurban,N
|
||||||
|
Female,Yes,0,Graduate,No,4583,0,84,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,Yes,3316,3500,88,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,14999,0,242,360,0,Semiurban,N
|
||||||
|
Male,Yes,2,Not Graduate,No,4200,1430,129,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,No,5042,2083,185,360,1,Rural,N
|
||||||
|
Male,No,0,Graduate,No,5417,0,168,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,Yes,6950,0,175,180,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2698,2034,122,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,11757,0,187,180,1,Urban,Y
|
||||||
|
Female,Yes,0,Graduate,No,2330,4486,100,360,1,Semiurban,Y
|
||||||
|
Female,Yes,2,Graduate,No,14866,0,70,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,1538,1425,30,360,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,10000,1666,225,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,4860,830,125,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,6277,0,118,360,0,Rural,N
|
||||||
|
Male,Yes,0,Graduate,Yes,2577,3750,152,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,9166,0,244,360,1,Urban,N
|
||||||
|
Male,Yes,2,Not Graduate,No,2281,0,113,360,1,Rural,N
|
||||||
|
Male,No,0,Graduate,No,3254,0,50,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,No,39999,0,600,180,0,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,6000,0,160,360,,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,9538,0,187,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,Yes,2980,2083,120,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,4583,5625,255,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,1863,1041,98,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,7933,0,275,360,1,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,3089,1280,121,360,0,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,4167,1447,158,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,9323,0,75,180,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3707,3166,182,,1,Rural,Y
|
||||||
|
Female,Yes,0,Graduate,No,4583,0,112,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2439,3333,129,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,2237,0,63,480,0,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,8000,0,200,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,Yes,1820,1769,95,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,3522,0,81,180,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,5708,5625,187,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,Yes,4344,736,87,360,1,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,3497,1964,116,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,No,2045,1619,101,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,5516,11300,495,360,0,Semiurban,N
|
||||||
|
Male,Yes,1,Graduate,No,3750,0,116,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Not Graduate,No,2333,1451,102,480,0,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,6400,7250,180,360,0,Urban,N
|
||||||
|
Male,No,0,Graduate,No,1916,5063,67,360,,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,4600,0,73,180,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,33846,0,260,360,1,Semiurban,N
|
||||||
|
Female,Yes,0,Graduate,No,3625,0,108,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,39147,4750,120,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,2178,0,66,300,0,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2383,2138,58,360,,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,9328,0,188,180,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,4885,0,48,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,12000,0,164,360,1,Semiurban,N
|
||||||
|
Male,Yes,0,Not Graduate,No,6033,0,160,360,1,Urban,N
|
||||||
|
Male,No,0,Graduate,No,3858,0,76,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,4191,0,120,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,3125,2583,170,360,1,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,8333,3750,187,360,1,Rural,Y
|
||||||
|
Female,No,0,Not Graduate,No,1907,2365,120,,1,Urban,Y
|
||||||
|
Female,Yes,0,Graduate,No,3416,2816,113,360,,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,11000,0,83,360,1,Urban,N
|
||||||
|
Male,Yes,1,Not Graduate,No,2600,2500,90,360,1,Semiurban,Y
|
||||||
|
Male,No,2,Graduate,No,4923,0,166,360,0,Semiurban,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,3992,0,,180,1,Urban,N
|
||||||
|
Male,Yes,1,Not Graduate,No,3500,1083,135,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3917,0,124,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Not Graduate,No,4408,0,120,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,3244,0,80,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3975,2531,55,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,2479,0,59,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,3418,0,127,360,1,Semiurban,N
|
||||||
|
Female,No,0,Graduate,No,10000,0,214,360,1,Semiurban,N
|
||||||
|
Male,Yes,3,Graduate,No,3430,1250,128,360,0,Semiurban,N
|
||||||
|
Male,Yes,1,Graduate,Yes,7787,0,240,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Not Graduate,Yes,5703,0,130,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,3173,3021,137,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,3850,983,100,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,150,1800,135,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,3727,1775,131,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,5000,0,72,360,0,Semiurban,N
|
||||||
|
Female,Yes,2,Graduate,No,4283,2383,127,360,,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2221,0,60,360,0,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,4009,1717,116,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,2971,2791,144,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,7578,1010,175,,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,6250,0,128,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3250,0,170,360,1,Rural,N
|
||||||
|
Male,Yes,,Not Graduate,Yes,4735,0,138,360,1,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,6250,1695,210,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,6400,0,200,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,2491,2054,104,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,3716,0,42,180,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,3189,2598,120,,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,8333,0,280,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,3155,1779,140,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,5500,1260,170,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,5746,0,255,360,,Urban,N
|
||||||
|
Female,No,0,Graduate,Yes,3463,0,122,360,,Urban,Y
|
||||||
|
Female,No,1,Graduate,No,3812,0,112,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,3315,0,96,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,5819,5000,120,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,2510,1983,140,180,1,Urban,N
|
||||||
|
Male,No,0,Graduate,No,2965,5701,155,60,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,6250,1300,108,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,3406,4417,123,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,6050,4333,120,180,1,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,9703,0,112,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,6608,0,137,180,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,2882,1843,123,480,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,1809,1868,90,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,1668,3890,201,360,0,Semiurban,N
|
||||||
|
Female,No,2,Graduate,No,3427,0,138,360,1,Urban,N
|
||||||
|
Male,No,0,Not Graduate,Yes,2583,2167,104,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,2661,7101,279,180,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,Yes,16250,0,192,360,0,Urban,N
|
||||||
|
Female,No,3,Graduate,No,3083,0,255,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,6045,0,115,360,0,Rural,N
|
||||||
|
Male,Yes,3,Graduate,No,5250,0,94,360,1,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,14683,2100,304,360,1,Rural,N
|
||||||
|
Male,Yes,3,Not Graduate,No,4931,0,128,360,,Semiurban,N
|
||||||
|
Male,Yes,1,Graduate,No,6083,4250,330,360,,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2060,2209,134,360,1,Semiurban,Y
|
||||||
|
Female,No,1,Graduate,No,3481,0,155,36,1,Semiurban,N
|
||||||
|
Female,No,0,Graduate,No,7200,0,120,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,Yes,5166,0,128,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,4095,3447,151,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,No,4708,1387,150,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Graduate,No,4333,1811,160,360,0,Urban,Y
|
||||||
|
Female,No,0,Graduate,Yes,3418,0,135,360,1,Rural,N
|
||||||
|
Female,No,1,Graduate,No,2876,1560,90,360,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,3237,0,30,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,11146,0,136,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2833,1857,126,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,2620,2223,150,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3900,0,90,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,2750,1842,115,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3993,3274,207,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3103,1300,80,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,14583,0,436,360,1,Semiurban,Y
|
||||||
|
Female,Yes,0,Not Graduate,No,4100,0,124,360,,Rural,Y
|
||||||
|
Male,No,1,Not Graduate,Yes,4053,2426,158,360,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,3927,800,112,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,2301,985.7999878,78,180,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,1811,1666,54,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,20667,0,,360,1,Rural,N
|
||||||
|
Male,No,0,Graduate,No,3158,3053,89,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,Yes,2600,1717,99,300,1,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,3704,2000,120,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,4124,0,115,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,9508,0,187,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,3075,2416,139,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,No,4400,0,127,360,0,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,3153,1560,134,360,1,Urban,Y
|
||||||
|
Female,No,,Graduate,No,5417,0,143,480,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,2383,3334,172,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Graduate,Yes,4416,1250,110,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,6875,0,200,360,1,Semiurban,Y
|
||||||
|
Female,Yes,1,Graduate,No,4666,0,135,360,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,No,5000,2541,151,480,1,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,2014,2925,113,360,1,Urban,N
|
||||||
|
Male,Yes,0,Not Graduate,No,1800,2934,93,360,0,Urban,N
|
||||||
|
Male,Yes,,Not Graduate,No,2875,1750,105,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,5000,0,132,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,1625,1803,96,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,4000,2500,140,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,2000,0,,360,1,Urban,N
|
||||||
|
Female,No,0,Graduate,No,3762,1666,135,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,2400,1863,104,360,0,Urban,N
|
||||||
|
Male,No,0,Graduate,No,20233,0,480,360,1,Rural,N
|
||||||
|
Male,Yes,2,Not Graduate,No,7667,0,185,360,,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,2917,0,84,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Not Graduate,No,2927,2405,111,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,2507,0,56,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,5746,0,144,84,,Rural,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,3399,1640,111,180,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3717,0,120,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2058,2134,88,360,,Urban,Y
|
||||||
|
Female,No,1,Graduate,No,3541,0,112,360,,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,10000,0,155,360,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2400,2167,115,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Graduate,No,4342,189,124,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3601,1590,,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,3166,2985,132,360,,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,15000,0,300,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,8666,4983,376,360,0,Rural,N
|
||||||
|
Male,No,0,Graduate,No,4917,0,130,360,0,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,5818,2160,184,360,1,Semiurban,Y
|
||||||
|
Female,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,N
|
||||||
|
Female,No,0,Graduate,No,2500,0,67,360,1,Urban,Y
|
||||||
|
Male,No,1,Graduate,No,4384,1793,117,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,2935,0,98,360,1,Semiurban,Y
|
||||||
|
Male,No,,Graduate,No,2833,0,71,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,63337,0,490,180,1,Urban,Y
|
||||||
|
Male,Yes,,Graduate,Yes,5503,4490,70,,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,5250,688,160,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,2500,4600,176,360,1,Rural,Y
|
||||||
|
Female,No,3,Not Graduate,No,1830,0,,360,0,Urban,N
|
||||||
|
Female,No,0,Graduate,No,4160,0,71,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,2647,1587,173,360,1,Rural,N
|
||||||
|
Female,No,0,Graduate,No,2378,0,46,360,1,Rural,N
|
||||||
|
Male,Yes,1,Not Graduate,No,4554,1229,158,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,3173,0,74,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,2583,2330,125,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,2499,2458,160,360,1,Semiurban,Y
|
||||||
|
Male,Yes,,Not Graduate,No,3523,3230,152,360,0,Rural,N
|
||||||
|
Male,Yes,2,Not Graduate,No,3083,2168,126,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,6333,4583,259,360,,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2625,6250,187,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,9083,0,228,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,8750,4167,308,360,1,Rural,N
|
||||||
|
Male,Yes,3,Graduate,No,2666,2083,95,360,1,Rural,Y
|
||||||
|
Female,Yes,0,Graduate,Yes,5500,0,105,360,0,Rural,N
|
||||||
|
Female,Yes,0,Graduate,No,2423,505,130,360,1,Semiurban,Y
|
||||||
|
Female,No,,Graduate,No,3813,0,116,180,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,8333,3167,165,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,3875,0,67,360,1,Urban,N
|
||||||
|
Male,Yes,0,Not Graduate,No,3000,1666,100,480,0,Urban,N
|
||||||
|
Male,Yes,3,Graduate,No,5167,3167,200,360,1,Semiurban,Y
|
||||||
|
Female,No,1,Graduate,No,4723,0,81,360,1,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,5000,3667,236,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,4750,2333,130,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3013,3033,95,300,,Urban,Y
|
||||||
|
Male,No,0,Graduate,Yes,6822,0,141,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,6216,0,133,360,1,Rural,N
|
||||||
|
Male,No,0,Graduate,No,2500,0,96,480,1,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,5124,0,124,,0,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,6325,0,175,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,19730,5266,570,360,1,Rural,N
|
||||||
|
Female,No,0,Graduate,Yes,15759,0,55,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,5185,0,155,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,9323,7873,380,300,1,Rural,Y
|
||||||
|
Male,No,1,Graduate,No,3062,1987,111,180,0,Urban,N
|
||||||
|
Female,No,0,Graduate,Yes,2764,1459,110,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,4817,923,120,180,1,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,No,8750,4996,130,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,4310,0,130,360,,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,3069,0,71,480,1,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,5391,0,130,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,3333,2500,128,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,5941,4232,296,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,6000,0,156,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,Yes,7167,0,128,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,4566,0,100,360,1,Urban,N
|
||||||
|
Male,No,1,Graduate,Yes,3667,0,113,180,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,2346,1600,132,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,3010,3136,,360,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,2333,2417,136,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5488,0,125,360,1,Rural,Y
|
||||||
|
Male,No,3,Graduate,No,9167,0,185,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,9504,0,275,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,2583,2115,120,360,,Urban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,1993,1625,113,180,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3100,1400,113,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3276,484,135,360,,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,3180,0,71,360,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,3033,1459,95,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3902,1666,109,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,1500,1800,103,360,0,Semiurban,N
|
||||||
|
Male,Yes,2,Not Graduate,No,2889,0,45,180,0,Urban,N
|
||||||
|
Male,No,0,Not Graduate,No,2755,0,65,300,1,Rural,N
|
||||||
|
Male,No,0,Graduate,No,2500,20000,103,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Not Graduate,No,1963,0,53,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,Yes,7441,0,194,360,1,Rural,N
|
||||||
|
Female,No,0,Graduate,No,4547,0,115,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2167,2400,115,360,1,Urban,Y
|
||||||
|
Female,No,0,Not Graduate,No,2213,0,66,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,8300,0,152,300,0,Semiurban,N
|
||||||
|
Male,Yes,3,Graduate,No,81000,0,360,360,0,Rural,N
|
||||||
|
Female,No,1,Not Graduate,Yes,3867,0,62,360,1,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,Yes,6256,0,160,360,,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,6096,0,218,360,0,Rural,N
|
||||||
|
Male,Yes,0,Not Graduate,No,2253,2033,110,360,1,Rural,Y
|
||||||
|
Female,Yes,0,Not Graduate,No,2149,3237,178,360,0,Semiurban,N
|
||||||
|
Female,No,0,Graduate,No,2995,0,60,360,1,Urban,Y
|
||||||
|
Female,No,1,Graduate,No,2600,0,160,360,1,Urban,N
|
||||||
|
Male,Yes,2,Graduate,Yes,1600,20000,239,360,1,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,1025,2773,112,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,3246,1417,138,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5829,0,138,360,1,Rural,Y
|
||||||
|
Female,No,0,Not Graduate,No,2720,0,80,,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,1820,1719,100,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,7250,1667,110,,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,14880,0,96,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2666,4300,121,360,1,Rural,Y
|
||||||
|
Female,No,1,Not Graduate,No,4606,0,81,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,No,5935,0,133,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2920,16.12000084,87,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,2717,0,60,180,1,Urban,Y
|
||||||
|
Female,No,1,Graduate,Yes,8624,0,150,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,6500,0,105,360,0,Rural,N
|
||||||
|
Male,No,0,Graduate,Yes,12876,0,405,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2425,2340,143,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,3750,0,100,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,1926,1851,50,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2213,1125,,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,Yes,10416,0,187,360,0,Urban,N
|
||||||
|
Female,Yes,0,Not Graduate,Yes,7142,0,138,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,3660,5064,187,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,7901,1833,180,360,1,Rural,Y
|
||||||
|
Male,No,3,Not Graduate,No,4707,1993,148,360,1,Semiurban,Y
|
||||||
|
Male,No,1,Graduate,No,37719,0,152,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,7333,8333,175,300,,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,3466,1210,130,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,4652,0,110,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,3539,1376,55,360,1,Rural,N
|
||||||
|
Male,Yes,2,Graduate,No,3340,1710,150,360,0,Rural,N
|
||||||
|
Male,No,1,Not Graduate,Yes,2769,1542,190,360,,Semiurban,N
|
||||||
|
Male,Yes,2,Not Graduate,No,2309,1255,125,360,0,Rural,N
|
||||||
|
Male,Yes,2,Not Graduate,No,1958,1456,60,300,,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3948,1733,149,360,0,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2483,2466,90,180,0,Rural,Y
|
||||||
|
Male,No,0,Graduate,Yes,7085,0,84,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3859,0,96,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,4301,0,118,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3708,2569,173,360,1,Urban,N
|
||||||
|
Male,No,2,Graduate,No,4354,0,136,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,8334,0,160,360,1,Semiurban,N
|
||||||
|
Male,Yes,3,Graduate,No,7740,0,128,180,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3015,2188,153,360,1,Rural,Y
|
||||||
|
Female,No,1,Not Graduate,Yes,5191,0,132,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,4166,0,98,360,0,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,6000,0,140,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,2947,1664,70,180,0,Urban,N
|
||||||
|
Female,Yes,2,Not Graduate,Yes,210,2917,98,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,4333,2451,110,360,1,Urban,N
|
||||||
|
Male,Yes,1,Graduate,Yes,3450,2079,162,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,2653,1500,113,180,0,Rural,N
|
||||||
|
Male,Yes,3,Graduate,No,4691,0,100,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,Yes,2500,0,93,360,,Urban,Y
|
||||||
|
Male,No,2,Graduate,No,5532,4648,162,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,16525,1014,150,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,No,6700,1750,230,300,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,16667,2250,86,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,2947,1603,,360,1,Urban,N
|
||||||
|
Female,No,0,Not Graduate,No,4350,0,154,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Not Graduate,No,3095,0,113,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,2083,3150,128,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,10833,0,234,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,8333,0,246,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,1958,2436,131,360,1,Rural,Y
|
||||||
|
Male,No,2,Graduate,No,3547,0,80,360,0,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,18333,0,500,360,1,Urban,N
|
||||||
|
Male,Yes,2,Graduate,Yes,4583,2083,160,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,2435,0,75,360,1,Urban,N
|
||||||
|
Male,No,0,Not Graduate,No,2699,2785,96,360,,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,5333,1131,186,360,,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3691,0,110,360,1,Rural,Y
|
||||||
|
Female,No,0,Not Graduate,Yes,17263,0,225,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3597,2157,119,360,0,Rural,N
|
||||||
|
Female,Yes,1,Graduate,No,3326,913,105,84,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2600,1700,107,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,4625,2857,111,12,,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,Yes,2895,0,95,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,6283,4416,209,360,0,Rural,N
|
||||||
|
Female,No,0,Graduate,No,645,3683,113,480,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,3159,0,100,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,4865,5624,208,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,4050,5302,138,360,,Rural,N
|
||||||
|
Male,Yes,0,Not Graduate,No,3814,1483,124,300,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3510,4416,243,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,20833,6667,480,360,,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,2479,3013,188,360,1,Urban,Y
|
||||||
|
Female,No,1,Graduate,No,13262,0,40,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3598,1287,100,360,1,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,6065,2004,250,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,3283,2035,148,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2130,6666,70,180,1,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,5815,3666,311,360,1,Rural,N
|
||||||
|
Male,Yes,3,Graduate,No,3466,3428,150,360,1,Rural,Y
|
||||||
|
Female,Yes,2,Graduate,No,2031,1632,113,480,1,Semiurban,Y
|
||||||
|
Male,Yes,,Not Graduate,No,3074,1800,123,360,0,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,4683,1915,185,360,1,Semiurban,N
|
||||||
|
Female,No,0,Not Graduate,No,3400,0,95,360,1,Rural,N
|
||||||
|
Male,Yes,2,Not Graduate,No,2192,1742,45,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,2500,0,55,360,1,Semiurban,Y
|
||||||
|
Male,Yes,3,Graduate,Yes,5677,1424,100,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,7948,7166,480,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,4680,2087,,360,1,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,Yes,17500,0,400,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,3775,0,110,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,5285,1430,161,360,0,Semiurban,Y
|
||||||
|
Male,No,1,Not Graduate,No,2679,1302,94,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Not Graduate,No,6783,0,130,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,1025,5500,216,360,,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,4281,0,100,360,1,Urban,Y
|
||||||
|
Male,No,2,Graduate,No,3588,0,110,360,0,Rural,N
|
||||||
|
Male,No,1,Graduate,No,11250,0,196,360,,Semiurban,N
|
||||||
|
Female,No,0,Not Graduate,Yes,18165,0,125,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,Yes,2550,2042,126,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,6133,3906,324,360,1,Urban,Y
|
||||||
|
Male,No,2,Graduate,No,3617,0,107,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2917,536,66,360,1,Rural,N
|
||||||
|
Male,Yes,3,Graduate,No,6417,0,157,180,1,Rural,Y
|
||||||
|
Female,Yes,1,Graduate,No,4608,2845,140,180,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,2138,0,99,360,0,Semiurban,N
|
||||||
|
Female,No,1,Graduate,Yes,3652,0,95,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Not Graduate,No,2239,2524,128,360,1,Urban,Y
|
||||||
|
Female,Yes,0,Not Graduate,No,3017,663,102,360,,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,2768,1950,155,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,No,3358,0,80,36,1,Semiurban,N
|
||||||
|
Male,No,0,Graduate,No,2526,1783,145,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,5000,0,103,360,0,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,2785,2016,110,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,6633,0,,360,0,Rural,N
|
||||||
|
Male,Yes,1,Not Graduate,No,2492,2375,,360,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,3333,3250,158,360,1,Urban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2454,2333,181,360,0,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,3593,4266,132,180,0,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,5468,1032,26,360,1,Semiurban,Y
|
||||||
|
Female,No,0,Graduate,No,2667,1625,84,360,,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,Yes,10139,0,260,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,3887,2669,162,360,1,Semiurban,Y
|
||||||
|
Female,Yes,0,Graduate,No,4180,2306,182,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3675,242,108,360,1,Semiurban,Y
|
||||||
|
Female,Yes,1,Graduate,Yes,19484,0,600,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Graduate,No,5923,2054,211,360,1,Rural,Y
|
||||||
|
Male,No,0,Not Graduate,Yes,5800,0,132,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,No,8799,0,258,360,0,Urban,N
|
||||||
|
Male,Yes,0,Not Graduate,No,4467,0,120,360,,Rural,Y
|
||||||
|
Male,No,0,Graduate,No,3333,0,70,360,1,Urban,Y
|
||||||
|
Male,Yes,3,Graduate,No,3400,2500,123,360,0,Rural,N
|
||||||
|
Female,No,0,Graduate,No,2378,0,9,360,1,Urban,N
|
||||||
|
Male,Yes,0,Graduate,No,3166,2064,104,360,0,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,3417,1750,186,360,1,Urban,Y
|
||||||
|
Male,Yes,,Graduate,No,5116,1451,165,360,0,Urban,N
|
||||||
|
Male,Yes,2,Graduate,No,16666,0,275,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,6125,1625,187,480,1,Semiurban,N
|
||||||
|
Male,Yes,3,Graduate,No,6406,0,150,360,1,Semiurban,N
|
||||||
|
Male,Yes,2,Graduate,No,3159,461,108,84,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,3229,2739,110,360,1,Urban,Y
|
||||||
|
Male,Yes,1,Graduate,No,1782,2232,107,360,1,Rural,Y
|
||||||
|
Male,No,0,Graduate,Yes,3182,2917,161,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,6540,0,205,360,1,Semiurban,Y
|
||||||
|
Male,No,0,Graduate,No,1836,33837,90,360,1,Urban,N
|
||||||
|
Female,Yes,0,Graduate,No,3166,0,36,360,1,Semiurban,Y
|
||||||
|
Male,Yes,1,Graduate,No,1880,0,61,360,,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,2787,1917,146,360,0,Rural,N
|
||||||
|
Male,Yes,1,Graduate,No,4283,3000,172,84,1,Rural,N
|
||||||
|
Male,Yes,0,Graduate,No,2297,1522,104,360,1,Urban,Y
|
||||||
|
Female,No,0,Not Graduate,No,2165,0,70,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,2726,0,106,360,0,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,3000,3416,56,180,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Graduate,Yes,6000,0,205,240,1,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,No,3859,3300,142,180,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,Yes,16120,0,260,360,1,Urban,Y
|
||||||
|
Male,No,0,Not Graduate,No,3833,0,110,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Not Graduate,Yes,6383,1000,187,360,1,Rural,N
|
||||||
|
Male,No,,Graduate,No,2987,0,88,360,0,Semiurban,N
|
||||||
|
Male,Yes,0,Graduate,Yes,9963,0,180,360,1,Rural,Y
|
||||||
|
Male,Yes,2,Graduate,No,5780,0,192,360,1,Urban,Y
|
||||||
|
Female,No,3,Graduate,Yes,416,41667,350,180,,Urban,N
|
||||||
|
Male,Yes,0,Not Graduate,Yes,2894,2792,155,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,5703,0,128,360,1,Urban,Y
|
||||||
|
Male,No,0,Graduate,No,3676,4301,172,360,1,Rural,Y
|
||||||
|
Female,Yes,1,Graduate,No,12000,0,496,360,1,Semiurban,Y
|
||||||
|
Male,Yes,0,Not Graduate,No,2400,3800,,180,1,Urban,N
|
||||||
|
Male,Yes,1,Graduate,No,3400,2500,173,360,1,Semiurban,Y
|
||||||
|
Male,Yes,2,Not Graduate,No,3987,1411,157,360,1,Rural,Y
|
||||||
|
Male,Yes,0,Graduate,No,3232,1950,108,360,1,Rural,Y
|
||||||
|
Female,No,0,Graduate,No,2900,0,71,360,1,Rural,Y
|
||||||
|
Male,Yes,3,Graduate,No,4106,0,40,180,1,Rural,Y
|
||||||
|
Male,Yes,1,Graduate,No,8072,240,253,360,1,Urban,Y
|
||||||
|
Male,Yes,2,Graduate,No,7583,0,187,360,1,Urban,Y
|
||||||
|
Female,No,0,Graduate,Yes,4583,0,133,360,0,Semiurban,N
|
||||||
|
677
Untitled.ipynb
Normal file
677
Untitled.ipynb
Normal file
File diff suppressed because one or more lines are too long
91
main.py
Normal file
91
main.py
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
from fastapi import FastAPI, Form, Request
|
||||||
|
from fastapi.responses import HTMLResponse
|
||||||
|
from fastapi.templating import Jinja2Templates
|
||||||
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from pydantic import BaseModel
|
||||||
|
import joblib
|
||||||
|
import numpy as np
|
||||||
|
import pandas as pd
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import uvicorn
|
||||||
|
|
||||||
|
|
||||||
|
# Initialize FastAPI app
|
||||||
|
app = FastAPI()
|
||||||
|
|
||||||
|
# Load the saved model and scaler
|
||||||
|
model = joblib.load('random_forest_model.pkl') # Load your trained model
|
||||||
|
scaler = joblib.load('scaler.pkl') # Load your saved scaler
|
||||||
|
|
||||||
|
# Mount the static directory to serve static files like CSS, HTML, etc.
|
||||||
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
||||||
|
|
||||||
|
# Initialize Jinja2 template engine
|
||||||
|
templates = Jinja2Templates(directory="static")
|
||||||
|
|
||||||
|
|
||||||
|
# Column names used when the scaler was fitted
|
||||||
|
column_names = [
|
||||||
|
'Gender', 'Married', 'Dependents', 'Education', 'Self_Employed',
|
||||||
|
'ApplicantIncome', 'CoapplicantIncome', 'LoanAmount', 'Loan_Amount_Term',
|
||||||
|
'Credit_History', 'Property_Area'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
# Home endpoint serving the index page
|
||||||
|
@app.get("/", response_class=HTMLResponse)
|
||||||
|
def home():
|
||||||
|
return HTMLResponse(content=open("static/index.html").read(), status_code=200)
|
||||||
|
|
||||||
|
# Endpoint to predict loan approval
|
||||||
|
@app.get("/predict", response_class=HTMLResponse)
|
||||||
|
@app.post("/predict", response_class=HTMLResponse)
|
||||||
|
def predict_loan_status(request: Request,
|
||||||
|
Gender: int = Form(None),
|
||||||
|
Married: int = Form(None),
|
||||||
|
Dependents: int = Form(None),
|
||||||
|
Education: int = Form(None),
|
||||||
|
Self_Employed: int = Form(None),
|
||||||
|
ApplicantIncome: float = Form(None),
|
||||||
|
CoapplicantIncome: float = Form(None),
|
||||||
|
LoanAmount: float = Form(None),
|
||||||
|
Loan_Amount_Term: int = Form(None),
|
||||||
|
Credit_History: int = Form(None),
|
||||||
|
Property_Area: int = Form(None)):
|
||||||
|
|
||||||
|
prediction = None
|
||||||
|
loan_status = None
|
||||||
|
|
||||||
|
if Gender is not None:
|
||||||
|
try:
|
||||||
|
# Prepare the data as a DataFrame to keep column names
|
||||||
|
data = pd.DataFrame([{
|
||||||
|
'Gender': Gender,
|
||||||
|
'Married': Married,
|
||||||
|
'Dependents': Dependents,
|
||||||
|
'Education': Education,
|
||||||
|
'Self_Employed': Self_Employed,
|
||||||
|
'ApplicantIncome': ApplicantIncome,
|
||||||
|
'CoapplicantIncome': CoapplicantIncome,
|
||||||
|
'LoanAmount': LoanAmount,
|
||||||
|
'Loan_Amount_Term': Loan_Amount_Term,
|
||||||
|
'Credit_History': Credit_History,
|
||||||
|
'Property_Area': Property_Area
|
||||||
|
}])
|
||||||
|
|
||||||
|
# Scale the data using the loaded scaler
|
||||||
|
scaled_data = scaler.transform(data)
|
||||||
|
|
||||||
|
# Make the prediction using the model
|
||||||
|
prediction = model.predict(scaled_data)
|
||||||
|
loan_status = "Approved" if prediction[0] == 1 else "Not Approved"
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error during prediction: {str(e)}")
|
||||||
|
loan_status = "There was an issue with the prediction request. Please check the input data."
|
||||||
|
|
||||||
|
return templates.TemplateResponse("predict.html", {"request": request, "loan_status": loan_status})
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
port = int(os.getenv("PORT", 8000)) # Use Heroku's PORT
|
||||||
|
uvicorn.run(app, host="0.0.0.0", port=port)
|
||||||
BIN
random_forest_model.pkl
Normal file
BIN
random_forest_model.pkl
Normal file
Binary file not shown.
10
requirements.txt
Normal file
10
requirements.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fastapi
|
||||||
|
uvicorn
|
||||||
|
pandas
|
||||||
|
numpy
|
||||||
|
joblib
|
||||||
|
jinja2
|
||||||
|
scikit-learn
|
||||||
|
python-multipart
|
||||||
|
pytest
|
||||||
|
httpx
|
||||||
BIN
scaler.pkl
Normal file
BIN
scaler.pkl
Normal file
Binary file not shown.
16
static/index.html
Normal file
16
static/index.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Loan Prediction</title>
|
||||||
|
<link rel="stylesheet" href="/static/styles.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container home-container">
|
||||||
|
<h1>Welcome to the Loan Approval Prediction API</h1>
|
||||||
|
<p>This is a machine learning model that predicts loan approval based on input data. Navigate to the <strong>Predict</strong> page to make a prediction.</p>
|
||||||
|
<a href="/predict" class="button">Go to Prediction Page</a>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
86
static/predict.html
Normal file
86
static/predict.html
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Loan Prediction</title>
|
||||||
|
<link rel="stylesheet" href="/static/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Loan Prediction</h1>
|
||||||
|
<form action="/predict" method="post">
|
||||||
|
<label for="Gender">Gender:</label>
|
||||||
|
<select name="Gender" id="Gender">
|
||||||
|
<option value="0">Male</option>
|
||||||
|
<option value="1">Female</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Married">Married:</label>
|
||||||
|
<select name="Married" id="Married">
|
||||||
|
<option value="0">No</option>
|
||||||
|
<option value="1">Yes</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Dependents">Dependents:</label>
|
||||||
|
<input type="number" name="Dependents" id="Dependents" required>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Education">Education:</label>
|
||||||
|
<select name="Education" id="Education">
|
||||||
|
<option value="0">Not Graduate</option>
|
||||||
|
<option value="1">Graduate</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Self_Employed">Self Employed:</label>
|
||||||
|
<select name="Self_Employed" id="Self_Employed">
|
||||||
|
<option value="0">No</option>
|
||||||
|
<option value="1">Yes</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="ApplicantIncome">Applicant Income:</label>
|
||||||
|
<input type="number" name="ApplicantIncome" id="ApplicantIncome" step="0.01" required>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="CoapplicantIncome">Coapplicant Income:</label>
|
||||||
|
<input type="number" name="CoapplicantIncome" id="CoapplicantIncome" step="0.01" required>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="LoanAmount">Loan Amount:</label>
|
||||||
|
<input type="number" name="LoanAmount" id="LoanAmount" step="0.01" required>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Loan_Amount_Term">Loan Term (Months):</label>
|
||||||
|
<input type="number" name="Loan_Amount_Term" id="Loan_Amount_Term" required>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Credit_History">Credit History:</label>
|
||||||
|
<select name="Credit_History" id="Credit_History">
|
||||||
|
<option value="0">No Credit History</option>
|
||||||
|
<option value="1">Credit History</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<label for="Property_Area">Property Area:</label>
|
||||||
|
<select name="Property_Area" id="Property_Area">
|
||||||
|
<option value="0">Rural</option>
|
||||||
|
<option value="1">Semi-Urban</option>
|
||||||
|
<option value="2">Urban</option>
|
||||||
|
</select>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<button type="submit" class="button">Predict Loan Status</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% if loan_status %}
|
||||||
|
<div class="result">
|
||||||
|
<h2>Loan Status: {{ loan_status }}</h2>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
92
static/style.css
Normal file
92
static/style.css
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
/* General Styles */
|
||||||
|
body {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background-color: #f4f4f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 800px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
input, select {
|
||||||
|
padding: 8px;
|
||||||
|
font-size: 1rem;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="number"] {
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="number"]::-webkit-outer-spin-button,
|
||||||
|
input[type="number"]::-webkit-inner-spin-button {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding: 10px;
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 1rem;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background-color: #45a049;
|
||||||
|
}
|
||||||
|
|
||||||
|
.result {
|
||||||
|
margin-top: 20px;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #e8f5e9;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 1px solid #4CAF50;
|
||||||
|
color: #388e3c;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
text-decoration: none;
|
||||||
|
color: #4CAF50;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #388e3c;
|
||||||
|
}
|
||||||
136
static/styles.css
Normal file
136
static/styles.css
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
/* General Reset */
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Arial', sans-serif;
|
||||||
|
background-color: #f4f6f9;
|
||||||
|
color: #333;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Container for center alignment */
|
||||||
|
.container {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 30px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
|
||||||
|
border-radius: 10px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Button styling */
|
||||||
|
.button {
|
||||||
|
display: inline-block;
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: #fff;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 15px 25px;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
text-align: center;
|
||||||
|
margin: 20px 0;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
background-color: #45a049;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Home Page Section */
|
||||||
|
.home-container {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.home-container p {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Form Inputs and Labels */
|
||||||
|
label {
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #333;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
input, select {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 400px;
|
||||||
|
padding: 12px;
|
||||||
|
margin: 8px 0;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
font-size: 1rem;
|
||||||
|
transition: border 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
input:focus, select:focus {
|
||||||
|
border: 1px solid #4CAF50;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="number"] {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specific Styling for Form on Predict Page */
|
||||||
|
form input, form select {
|
||||||
|
width: 60%;
|
||||||
|
max-width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form button {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 12px;
|
||||||
|
background-color: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
form button:hover {
|
||||||
|
background-color: #45a049;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive Design */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.container {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form input, form select {
|
||||||
|
width: 80%;
|
||||||
|
max-width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
49
test_app.py
Normal file
49
test_app.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import pytest
|
||||||
|
from fastapi.testclient import TestClient
|
||||||
|
from main import app
|
||||||
|
|
||||||
|
# Create a TestClient for the app
|
||||||
|
client = TestClient(app)
|
||||||
|
|
||||||
|
def test_home():
|
||||||
|
"""Test the home endpoint"""
|
||||||
|
response = client.get("/")
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert "Welcome to the Loan Approval Prediction API" in response.text # Verify content in the response
|
||||||
|
|
||||||
|
def test_predict_endpoint_valid_data():
|
||||||
|
data = {
|
||||||
|
'Gender': 0,
|
||||||
|
'Married': 1,
|
||||||
|
'Dependents': 0,
|
||||||
|
'Education': 0,
|
||||||
|
'Self_Employed': 0,
|
||||||
|
'ApplicantIncome': 5000,
|
||||||
|
'CoapplicantIncome': 2000,
|
||||||
|
'LoanAmount': 100,
|
||||||
|
'Loan_Amount_Term': 360,
|
||||||
|
'Credit_History': 1,
|
||||||
|
'Property_Area': 2
|
||||||
|
}
|
||||||
|
response = client.post("/predict", data=data)
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert 'Loan Status' in response.text # Check that Loan Status is rendered in the response
|
||||||
|
assert 'Approved' in response.text or 'Not Approved' in response.text
|
||||||
|
|
||||||
|
def test_predict_endpoint_invalid_data():
|
||||||
|
data = {
|
||||||
|
"Gender": "invalid", # Invalid data type
|
||||||
|
"Married": 1,
|
||||||
|
"Dependents": 0,
|
||||||
|
"Education": 0,
|
||||||
|
"Self_Employed": 0,
|
||||||
|
"ApplicantIncome": 5000.0,
|
||||||
|
"CoapplicantIncome": 2000.0,
|
||||||
|
"LoanAmount": 100.0,
|
||||||
|
"Loan_Amount_Term": 360,
|
||||||
|
"Credit_History": 1,
|
||||||
|
"Property_Area": 2
|
||||||
|
}
|
||||||
|
response = client.post("/predict", data=data)
|
||||||
|
assert response.status_code == 422 # FastAPI returns 422 for validation errors
|
||||||
Loading…
x
Reference in New Issue
Block a user