Siddharth Bhatore received his MS-Dual Degree in Computer Science and Engineering. His research work was supervised by Dr. Raghu Reddy.
Here’s a summary of Siddharth’s M.S thesis, Software Engineering practices for building MLware applications – credit risk evaluation case study as explained by him:
MLWare applications is an upcoming term used to refer to software applications that use machine learning approaches/algorithms (in part) to address the application’s objective. The development and utilization of such applications is growing rapidly in every major sector with the increase in speed and volume of data collection/analysis. These applications tend to be complex and hence maintaining them can be a difficult task. The complexity of the applications may be due to the inherent complexity of algorithms used or may be accidental due to the structural and dynamic relationships between the various sub-systems of the application. Maintaining such complex systems can be a difficult task as there are challenges such as comprehension of complex code base, lack of documentation, lack of support tools, etc. Furthermore, such applications tend to be algorithm centric. As a result, there is a lack of software engineering rigour associated with building such applications.
Researchers have started to work on integrating software engineering practices while building MLware applications. Applying software engineering practices, specifically pattern based approaches for the development of MLware applications can potentially improve reliability, robustness, extensibility, scalability and other such quality attributes. Another problem with MLware applications is the need for an explanation associated with the decisions arrived at during various stages. This is difficult as some Machine Learning models are black-box models and hence explainability is a difficult characteristic to achieve.
In this thesis, developing maintainable, scalable, and explainable MLware applications using software engineering practices is described and a proof of concept implementation for the specific case of credit risk evaluation is detailed. Microservices based architecture is used to develop the application with the use of Strategy design pattern.This helps with scalability and maintainability of the applications. A simple approach to understand the decision made by the machine learning model is also provided. We detail the set of practices using a credit risk evaluation MLware application that helps a loan granting officer in deciding whether to grant the loan or not. The implementation is done using Django framework and is deployed on Heroku server.