-
Notifications
You must be signed in to change notification settings - Fork 63
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' of https://github.com/EpistasisLab/pennai
Former-commit-id: 07c33ab
- Loading branch information
Showing
3 changed files
with
118 additions
and
170 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
## AI Recommender Details | ||
Engine for reading in modeling results, updating knowledge base, and making recommendations that instantiate new runs. | ||
|
||
### Workflow | ||
- The Penn AI agent looks for new requests for recommendations and new experimental results every 5 seconds. | ||
- when a new experiment is found, it is used to update the recommender. | ||
- when a new request is received, the AI retreives a recommendation from the recommender and pushes it to the user. | ||
|
||
### Recommender | ||
```python | ||
pennai = Recommender(method='ml_p',ml_type='classifier') | ||
# data: a dataframe of results from database | ||
pennai.update(results_data) | ||
``` | ||
- given a new modeling task, the AI recommends an ML method with parameter values (P) | ||
```python | ||
# dataset_metafeatures: an optional set of metafeatures of the dataset to assist in recommendations | ||
ml,p = pennai.recommend(dataset_metafeatures=None) | ||
``` | ||
- the ML+P recommendation is run on the dataset using the AI system | ||
|
||
```python | ||
ai.send_rec() | ||
``` | ||
- the results are used to update the recommender | ||
```python | ||
pennai.update(new_results_data) | ||
``` | ||
## overall tasks | ||
- [x] build dataframe `results_data` from MongoDB results. | ||
- [x] make method to post job submissions | ||
- [ ] recommendation shows up in launch page | ||
|
||
## recommender tasks | ||
- [x] filter recommendations for what has already been run | ||
- [x] direct acess to MongDB results for checking what has been run | ||
|
||
recommendations using: | ||
- [x] ml + p | ||
- [ ] ml + p + mf | ||
- [ ] ml + p + mf, per model basis | ||
- [ ] incorporating expert knowledge rules | ||
- [ ] analyze which metafeatures are important | ||
- [x] make method to submit jobs (`submit(dataset,ml,p)`) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
# Environment variables for auto-starting the AI | ||
|
||
AI_AUTOSTART=1 | ||
AI_RECOMMENDER=random | ||
AI_NUMRECOMMEND=3 | ||
AI_VERBOSE=1 # not currently active | ||
AI_AUTOSTART=1 # set to '1' to enable the AI | ||
AI_RECOMMENDER=random # currently 'random' is the only supported recommender | ||
AI_NUMRECOMMEND=3 # number of experiment the AI will recommend. If 0, the AI will keep making recomendations | ||
AI_VERBOSE=1 # not currently active |