Coder Social home page Coder Social logo

smenon8 / animalwildlifeestimator Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 76.18 MB

Animal Wildlife Estimator Using Social Media (A.W.E.S.O.M.E.) is an ongoing project and stems mainly from Sreejith Menon's MS thesis

Home Page: https://smenon8.github.io/AnimalWildlifeEstimator/

License: BSD 3-Clause "New" or "Revised" License

Jupyter Notebook 89.55% Python 0.28% HTML 9.95% Batchfile 0.13% Shell 0.08% R 0.01% CSS 0.01% JavaScript 0.01%
ipython-notebook machine-learning population-estimation python-3 social-media social-sciences wildlife

animalwildlifeestimator's People

Contributors

smenon8 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

compbiouic

animalwildlifeestimator's Issues

Improve performance of GetPropertiesAPI

The getAnnotID() method still does a one-to-one comparison.
Fix the method to get a faster performing method to extract all annotations at once and give a map file directly as an output and test for any impacts across code base.

Bottlenecks:
Annotation ID extraction phase of JobsMapResultsFilesToContainerObjs.py

Issue with consolidated feature file

The new modifications to GetPropertiesAPI.py for supporting multiple instance query to IBEIS returns flat objects instead of embedding it inside a list object.

The est_age_months property passed through getAgeFeatureReadableFmt always returns unknown. Possibly because of flat objects.

The changed output json format has also to be tested in all scripts to ensure it is working fine and no changes are needed.

Missing methods & reusable code

Remove all hardcoded code in VisualizeResults.ipynb and replace them with reusable methods. There should be a workflow ideally which should be followed for any task.

  • Creating experiments using Mechanical Turk.
  • Getting data from IBEIS for statistical analysis.
  • Create data files required for analysis. Parameterize functions to accept the required attributes.
  • Create a machine learning task, specify training data and return a classifier.
  • Have an API for pulling image recognition from MS AI tool in Python. Currently in R - developed by Lucas.
  • Apply the trained classifier on the test data.
  • Completely parameterized method for calculating population estimates using Mark-Recapture on predicted shared data.

Repeating attribute during classifier training

Commit #4d04ef9
This is a temporary fix to the issue where the adult attribute was repeated for multiple times in train_x.

To recreate the issue,

def trainTestSplitter(gidAttribDict,allAttribs,trainTestSplit):
    df = pd.DataFrame(gidAttribDict).transpose()
    df = df[allAttribs + ["TARGET"]] # Rearranging the order of the columns

    attributes = df.columns[:len(allAttribs)] # all attributes

    dataFeatures = df[list(set(attributes))] # remove the type-casting to recreate the issue
    targetVar = df['TARGET']

    return train_test_split(dataFeatures, targetVar, test_size=trainTestSplit,random_state=0)

The number of training attributes is 88 while testing attributes are just 86. It is caused by repeating adults.

This was verified.

Change host script for the method getCountingLogic

The method getCountingLogiccurrently resides in the script DeriveFinalResultSet.py.

This method is highly functional in other scripts and it doesn't really fit into the context of deriving final result.

Another issue, to use the getCountingLogic() method entire DeriveFinalResultSet.py has to be imported posing minor performance issues.

Classifier and Regression testing for GZC - change in order of attributes

There is a major chance that the order of attributes in the clfObj.test_x data frame and clfObj.train_x is not the same.
There has to be some form of external trigger that will help counter this effect. This does mean that the results of the synthetic experiments may be incorrect.

Script: PopulationEstimatorFromClf.py > trainTestClf() and trainTestRgrs()

train_x.head()
	ground	arthropod	junk	dirt	plain	outdoor	ok	unknown	plant	tree	...	
test_x.head()
        zebra_plains	giraffe_masai	UNKNOWN SEX	Female	UNKNOWN NAME	Male	unknown	infant	juveniles- two year old	adult	...

Population estimation using classifiers and beauty attributes gives same curve shape

This only happens in the case where the top k images scored by the predicted classifier probabilities are used.

The way to go about will be to actually check if all the classification methods really predict the same result for images irrespective of the matter what algorithm is being used.

The chances of a code bug is low since the same thing cannot be recreated using "bottom k shares" or "random k shares".

ClassifierHelperAPI individual name

createDataFlDict()
While creating data for regression, presence of individual name attribute poses a problem.
INDIVIDUAL_NAME is not a part of the NON_SPARSE attribute list, but even then the result set contains the individual names. This is because of the hard-coded ftrs list in the method.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.