New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 679097 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

[Predator] Refactor model APIs to accept ``MetaFeature`` which returns a list ``FeatureValue``

Project Member Reported by kateso...@chromium.org, Jan 7 2017

Issue description

[Predator] Refactor model APIs to accept ``MetaFeature`` which returns a list ``FeatureValue``

There are 2 directions:

1. Add ``MetaFeature`` and ``MetaWeight`` for it, we treat them the same as normal ``Feature`` and ``weight``.
2. We can also have each Feature also be X -> Y -> list(FeatureValue), where the non-meta features always return a singleton list
the tricky bit is getting the weights to match up; i.e., the dictionary passed into the LogLinearChangelistClassifier constructor


 
The context is there are some feature that are can share code, for example ``TouchCrashedFile``, ``MinDistance``, ``TopFrameIndex`` they are all related to matching crashed file and changed file, so we can use a Meta feature to group this 3.
Project Member

Comment 2 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra.git/+/0ad9be3160f568da7c068d4e569e2f999f7cad75

commit 0ad9be3160f568da7c068d4e569e2f999f7cad75
Author: katesonia <katesonia@chromium.org>
Date: Tue Jan 24 01:28:22 2017

[Cuprit-finder] Add MetaDict class.

MetaDict class is the base class that MetaWeight and MetaFeature will inherit.

A simple example is {'a': e(1), 'b': {'c': e(2), 'd': e(3)}}, ``MetaDictSerializer`` can serialize it to [e(1), e(2), e(3)] and de-serialize it back to {'a': e(1), 'b': {'c': e(2), 'd': e(3)}}

BUG= 679097 
TBR=wrengr@chromium.org

Review-Url: https://codereview.chromium.org/2641583002

[add] https://crrev.com/0ad9be3160f568da7c068d4e569e2f999f7cad75/appengine/findit/libs/meta_dict_serializer.py
[add] https://crrev.com/0ad9be3160f568da7c068d4e569e2f999f7cad75/appengine/findit/libs/meta_object.py
[add] https://crrev.com/0ad9be3160f568da7c068d4e569e2f999f7cad75/appengine/findit/libs/test/meta_dict_serializer_test.py
[add] https://crrev.com/0ad9be3160f568da7c068d4e569e2f999f7cad75/appengine/findit/libs/test/meta_object_test.py

Project Member

Comment 3 by bugdroid1@chromium.org, Jan 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra.git/+/6ca03f16713d70f5b1cc3696e556d839209ac0ee

commit 6ca03f16713d70f5b1cc3696e556d839209ac0ee
Author: katesonia <katesonia@chromium.org>
Date: Tue Jan 24 01:47:48 2017

[Predator] Add MetaWeight and MetaFeatureValue to group multiple weights and features together.

MetaWeight, MetaFeature and MetaFeatureValue inherit MetaDict, MetaDict is a dict-like class and its value can be an element or another dict. (e.g {'a': e(1), 'b': {'c': e(2), 'd': e(3)}}).

MetaFeature allows features that share code (e.g. ``TouchCrashedFile``, ``MinDistance``, ``TopFrameIndex``) to be grouped together.

In training MetaDictSerializer is used to serialize MetaWeight and MetaFeature to np arrays.

BUG= 679097 
TBR=stgao@chromium.org

Review-Url: https://codereview.chromium.org/2625073003

[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/findit.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/findit_for_chromecrash.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/changelist_classifier.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/feature.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/model.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/changelist_classifier_test.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/feature_test.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/loglinear_testcase.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/model_test.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/training_test.py
[add] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/test/weight_test.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/training.py
[add] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/crash/loglinear/weight.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/libs/math/test/vectors_test.py
[modify] https://crrev.com/6ca03f16713d70f5b1cc3696e556d839209ac0ee/appengine/findit/libs/math/vectors.py

Owner: kateso...@chromium.org
Status: Fixed (was: Available)
Project Member

Comment 5 by bugdroid1@chromium.org, Jan 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra.git/+/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8

commit 894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8
Author: katesonia <katesonia@chromium.org>
Date: Thu Jan 26 01:57:28 2017

[Predator] Add TouchCrashedFileMetaFeature.

TouchCrashedFileMetaFeature is a MetaFeature which wraps ``MinDistanceFeature``, ``TopFrameIndexFeature`` and ``TouchCrashedFile``

BUG= 679097 

Review-Url: https://codereview.chromium.org/2613153006

[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/common/chrome_dependency_fetcher.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/crash_util.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_classifier.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/min_distance.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/test/min_distance_test.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/test/top_frame_index_test.py
[add] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/test/touch_crashed_file_meta_test.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/top_frame_index.py
[add] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/changelist_features/touch_crashed_file_meta.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/feature.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/test/changelist_classifier_test.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/loglinear/test/feature_test.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/predator.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/suspect.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/crash/test/crash_util_test.py
[modify] https://crrev.com/894e9bbcdc91f9bb5029dc54f54257c1a72b1bb8/appengine/findit/libs/gitiles/commit_util.py

Sign in to add a comment