Here’s the whole story:
Inspiration
We are interested in real estate investment, so we wanted to have an app to conveniently manage the real estate properties with price estimation feature and automatic cost breakdown based on transaction data. There doesn’t seem to be a reliable app for tracking your real estate properties, so we wanted to make one. It’s like a “mint” finance app for real estate.
What it does
MyPueblo efficiently categorizes the transactional data using MNB classifier into relevant finance categories such as utilities, rent, house maintenance, etc, and visualizes the total cost breakdown for each category. Additionally, it provides an estimate value for the real-estate properties using DNN regressor. Lastly, it provides a way for you to track your earnings, expenses, and net gains for each property.
How we built it
MyPueblo automatically categorizes the banking activity into relevant finance categories using a NB machine learning model for text classification which improves as we feed more data to it. Once the transactions are classified into available entity sets relating to the manager, it utilises 8-layer deep neural network which takes in features ranging from housing condition, land price, utilities average..etc to estimate the price of the property. For the webapp architecture, it uses Django (a Python-based web framework) for the backend and a simplified HTML front end.
Challenges we ran into
While we successfully implemented the back end architecture of MyPueblo, we struggled a lot in building the front-end part of the application. We ran into issues ranging from executing python files on action button click to displaying the real time information about the property manager. While our system has a robust back-end structure, the main bottleneck of our project was the knowledge gap with Django, primarily with connecting the backend with the frontend. Coming into this hackathon, our main priority was to learn. The best way to do that was to throw ourselves right into a technology that we have no experience with. While we learned a lot, we got a lot less done than we could have because of that.
Accomplishments that we're proud of
We successfully built multinomial Naive Bayes models for textual classification. We input a bank statement with merchant names and our model classifies them into appropriate finance categories such as utilities, rent, home repair, pest control. Our model achieved 89% accuracy on the external test set. On top of it, we successfully summarized the total spending power based on each category. These features provide highly useful information if the rental manager wants to analyze the net income/spending power and see where to minimize the costs among all rental related financial information.
We were also proud of successfully building DNN models with highly mixed data types (textual, numerical, textual + numerical features) to estimate property values. The approach we used for dealing with textual data was really different on this dataset from the previous one (wherein we used encoders, textblob to tokenize and encode/decode data). We overcame the challenge in this second case by developing an algorithm that automatically assigns unique class values for different textual information. The RMSE of our DNN model on the training dataset was ~ 2k which was really close to actual values.
Lastly, we were able to create a functional front end in Django and integrate it with Firebase to use authentication along with other data integrations.
What we learned
We learned how to develop multiclass and regression models with textual data, and preprocess textual data differently based on various project nature. We also got familiar with developing the front end and back end web application with django framework. Lastly, we learned how to integrate Google Firebase with Django.
What's next for MyPubelo
Upon gathering and efficiently refining the real estate data, we move towards serving even more robust insights from it for maximizing the overall income for the property manager. By optimizing the spendings on various utilities, MyPubelo has the potential to minimize costs by inferring from real time data. We also plan to develop a full-stack web application that we initially intended. Lastly, we plan on finishing integration with Firebase so that we can have users. We also need to find an API that will allow us to import bank statements from popular banks and an algorithm that will determine which items on the bank statements should be grouped together to show a user’s properties and their respective stats.
Built With
- 3.7
- conda
- django
- django-crsipy-forms
- google-cloud
- jupyter
- keras
- matplotlib
- numpy
- pandas
- pillow
- python
- scikit-learn
Log in or sign up for Devpost to join the conversation.