solutions to programming problems and quizzes
- All solutions are present and commented in a single Jupyter Notebook file:
building-ai.ipynb
- Import a Jupyter Notebook file to local environment or Google Colab
- Run documented cells one by one, see output and read comments
- Clone this repository:
$ git clone https://github.com/andrejkurusiov/elementsofAI-buildingAI.git [your-folder-name]
- (optional)* Install Python
- (optional)* Install packages with
pip
:
$ pip install -r requirements.txt
- Open
building-ai.ipynb
and run cells.
(*) instead of installing Python locally, you can use online service, such as Google Colab.
Distributed under the MIT License.
Building AI course project proposal: call-your-mom
Photo by Annie Spratt
When you grow up, you live separately from your mom.
Because of that, she wants to keep in touch with you.
Optimise your calls, so that your mom is always happy!
Each person who lives separately from his/her parents, needs to keep in touch.
Since my mom calls frequently, and I sometimes forget to call back her in time, we happen to have misunderstandings.
The problem can be described as following:
- "predict" next time your mom would call you and
- remind to call her back just before she was going to call you, so that you make her nice surprise :)
I plan to collect basic data about communications with another party (e.g. my mom), and based on that make a model which predicts when next incoming call is about to happen.
Therefore the model can be used to not only predict next incoming call, but also to remind you to call your mom back a bit in advance.
Potential solution is generic, as it can be used with any other party, like your wife, your children, or any other party you call back and forth periodically.
Data collection can be done by any person interested in the topic, based on own calling experience.
Since every person's communication style is unique, the model would potentially need to be trained for a particular person.
Proposed collection method would be calls log (e.g. a text file) with the following structure:
data | format |
---|---|
time | datetime-stamp |
direction | [1, 0] in/out |
length | [minutes] call length |
sentiment | [-1, 0, 1] negative/neutral/positive |
comment | for future use |
record separator | --- or new-line |
The project does not solve actual communication nor guarantees that your relations would be any better.
As a challenge I see the need to collect the data (collecting persistency and amount).
Choosing correct model is a question for a beginner Machine Learning student.
Normalising data between weeks/ weekends can be a challenge as naturally there exists a periodic pattern in communications.
Next steps would be making data collection easy for user and potentially implementing a (mobile) call reminder.
- The materials from the course BuildingAI are used to the extent to illustrate main tasks of the solutions
- My results are presented in the graphic format from BuildingAI course web-site