{"action":"created","comment":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments/94273767","pull_request_review_id":14804132,"id":94273767,"diff_hunk":"@@ -0,0 +1,219 @@\n+# -*- coding: utf-8 -*-\r\n+\"\"\"\r\n+Created on Tue Dec 27 12:58:49 2016\r\n+\r\n+@author: anki08\r\n+\"\"\"\r\n+\r\n+import numpy as np\r\n+import nose\r\n+from sklearn.utils.testing import assert_equal, assert_almost_equal\r\n+from sklearn.utils.testing import assert_true\r\n+from sklearn.utils.testing import assert_greater\r\n+from sklearn.utils.testing import assert_less\r\n+from sklearn.metrics.cluster.bicluster import _jaccard\r\n+from sklearn.metrics import consensus_score\r\n+\r\n+from sklearn.metrics.cluster import adjusted_mutual_info_score\r\n+from sklearn.metrics.cluster import adjusted_rand_score\r\n+from sklearn.metrics.cluster import completeness_score\r\n+from sklearn.metrics.cluster import contingency_matrix\r\n+from sklearn.metrics.cluster import entropy\r\n+from sklearn.metrics.cluster import expected_mutual_information\r\n+from sklearn.metrics.cluster import homogeneity_completeness_v_measure\r\n+from sklearn.metrics.cluster import homogeneity_score\r\n+from sklearn.metrics.cluster import mutual_info_score\r\n+from sklearn.metrics.cluster import normalized_mutual_info_score\r\n+from sklearn.metrics.cluster import v_measure_score\r\n+\r\n+import scipy.sparse as sp\r\n+from scipy.sparse import csr_matrix\r\n+from sklearn import datasets\r\n+from sklearn.utils.testing import assert_false\r\n+from sklearn.utils.testing import assert_array_equal\r\n+from sklearn.utils.testing import assert_raises_regexp\r\n+from sklearn.utils.testing import assert_raise_message\r\n+from sklearn.metrics.cluster import silhouette_score\r\n+from sklearn.metrics.cluster import silhouette_samples\r\n+from sklearn.metrics import pairwise_distances\r\n+\r\n+# Dictionaries of metrics\r\n+# ------------------------\r\n+# The goal of having those dictionaries is to have an easy way to call a\r\n+# particular metric and associate a name to each function:\r\n+#   - BICLUSTER_METRICS: all biclusters - (clusters formed from matrices)\r\n+#   - SUPERVISED_METRICS: all supervised cluster metrics - (when given a ground truth value)\r\n+#   - UNSUPERVISED_METRICS: all unsupervised cluster metrics\r\n+#\r\n+# Those dictionaries will be used to test systematically some invariance\r\n+# properties, e.g. invariance toward several input layout.\r\n+#\r\n+\r\n+#metrics used to test similarity between bicluster\r\n+BICLUSTER_METRICS = {\r\n+    \"jaccard\":_jaccard ,\r\n+    \"consensus_score\":consensus_score    \r\n+    }\r\n+      \r\n+SUPERVISED_METRICS = {\r\n+    \"adjusted_mutual_info_score\":adjusted_mutual_info_score ,\r\n+    \"adjusted_rand_score\":adjusted_rand_score,\r\n+    \"completeness_score\":completeness_score,\r\n+    \"contingency_matrix\":contingency_matrix,\r\n+    \"homogeneity_score\":homogeneity_score,\r\n+    \"entropy\":entropy,\r\n+    \"expected_mutual_information\":expected_mutual_information,\r\n+    \"homogeneity_completeness_v_measure\":homogeneity_completeness_v_measure,\r\n+    \"mutual_info_score\":mutual_info_score,\r\n+    \"normalized_mutual_info_score\":normalized_mutual_info_score,\r\n+    \"v_measure_score\":v_measure_score\r\n+    }\r\n+        \r\n+UNSUPERVISED_METRICS={\r\n+    \"silhouette_score\":silhouette_score,\r\n+    \"silhouette_samples\":silhouette_samples\r\n+    }\r\n+        \r\n+ALL_METRICS = dict()\r\n+ALL_METRICS.update(BICLUSTER_METRICS)\r\n+ALL_METRICS.update(SUPERVISED_METRICS)\r\n+ALL_METRICS.update(UNSUPERVISED_METRICS)\r\n+\r\n+# Lists of metrics with common properties\r\n+# ---------------------------------------\r\n+# Lists of metrics with common properties are used to test systematically some\r\n+# functionalities and invariance, e.g. SYMMETRIC_METRICS lists all metrics that\r\n+# are symmetric with respect to their input argument y_true and y_pred.\r\n+#\r\n+\r\n+# Symmetric with respect to their input arguments y_true and y_pred\r","path":"test_common.py","position":89,"original_position":89,"commit_id":"2f76ca64bacbeab6b83024b787d08b1deefc209f","original_commit_id":"2f76ca64bacbeab6b83024b787d08b1deefc209f","user":{"login":"jnothman","id":78827,"avatar_url":"https://avatars.githubusercontent.com/u/78827?v=3","gravatar_id":"","url":"https://api.github.com/users/jnothman","html_url":"https://github.com/jnothman","followers_url":"https://api.github.com/users/jnothman/followers","following_url":"https://api.github.com/users/jnothman/following{/other_user}","gists_url":"https://api.github.com/users/jnothman/gists{/gist_id}","starred_url":"https://api.github.com/users/jnothman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnothman/subscriptions","organizations_url":"https://api.github.com/users/jnothman/orgs","repos_url":"https://api.github.com/users/jnothman/repos","events_url":"https://api.github.com/users/jnothman/events{/privacy}","received_events_url":"https://api.github.com/users/jnothman/received_events","type":"User","site_admin":false},"body":"Comment that this necessarily only applies to supervised","created_at":"2016-12-31T13:32:29Z","updated_at":"2016-12-31T13:42:52Z","html_url":"https://github.com/scikit-learn/scikit-learn/pull/8135#discussion_r94273767","pull_request_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135","_links":{"self":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments/94273767"},"html":{"href":"https://github.com/scikit-learn/scikit-learn/pull/8135#discussion_r94273767"},"pull_request":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135"}}},"pull_request":{"url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135","id":99685398,"html_url":"https://github.com/scikit-learn/scikit-learn/pull/8135","diff_url":"https://github.com/scikit-learn/scikit-learn/pull/8135.diff","patch_url":"https://github.com/scikit-learn/scikit-learn/pull/8135.patch","issue_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8135","number":8135,"state":"open","locked":false,"title":"[WIP] Invariance tests for clustering metrics #8102","user":{"login":"anki08","id":8593629,"avatar_url":"https://avatars.githubusercontent.com/u/8593629?v=3","gravatar_id":"","url":"https://api.github.com/users/anki08","html_url":"https://github.com/anki08","followers_url":"https://api.github.com/users/anki08/followers","following_url":"https://api.github.com/users/anki08/following{/other_user}","gists_url":"https://api.github.com/users/anki08/gists{/gist_id}","starred_url":"https://api.github.com/users/anki08/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anki08/subscriptions","organizations_url":"https://api.github.com/users/anki08/orgs","repos_url":"https://api.github.com/users/anki08/repos","events_url":"https://api.github.com/users/anki08/events{/privacy}","received_events_url":"https://api.github.com/users/anki08/received_events","type":"User","site_admin":false},"body":"<!--\r\nThanks for contributing a pull request! Please ensure you have taken a look at\r\nthe contribution guidelines: https://github.com/scikit-learn/scikit-learn/blob/master/CONTRIBUTING.md#Contributing-Pull-Requests\r\n-->\r\n#### Reference Issue\r\n<!-- Example: Fixes #1234 -->\r\n\r\n\r\n#### What does this implement/fix? Explain your changes.\r\n\r\n\r\n#### Any other comments?\r\n\r\n\r\n<!--\r\nPlease be aware that we are a loose team of volunteers so patience is\r\nnecessary; assistance handling other issues is very welcome. We value\r\nall user contributions, no matter how minor they are. If we are slow to\r\nreview, either the pull request needs some benchmarking, tinkering,\r\nconvincing, etc. or more likely the reviewers are simply busy. In either\r\ncase, we ask for your understanding during the review process.\r\nFor more information, see our FAQ on this topic:\r\nhttp://scikit-learn.org/dev/faq.html#why-is-my-pull-request-not-getting-any-attention.\r\n\r\nThanks for contributing!\r\n-->\r\n","created_at":"2016-12-29T18:34:53Z","updated_at":"2016-12-31T13:42:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b02a48310dfd712f4927b9aa16009fde68484c44","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135/commits","review_comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135/comments","review_comment_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8135/comments","statuses_url":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/2f76ca64bacbeab6b83024b787d08b1deefc209f","head":{"label":"anki08:feature1","ref":"feature1","sha":"2f76ca64bacbeab6b83024b787d08b1deefc209f","user":{"login":"anki08","id":8593629,"avatar_url":"https://avatars.githubusercontent.com/u/8593629?v=3","gravatar_id":"","url":"https://api.github.com/users/anki08","html_url":"https://github.com/anki08","followers_url":"https://api.github.com/users/anki08/followers","following_url":"https://api.github.com/users/anki08/following{/other_user}","gists_url":"https://api.github.com/users/anki08/gists{/gist_id}","starred_url":"https://api.github.com/users/anki08/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anki08/subscriptions","organizations_url":"https://api.github.com/users/anki08/orgs","repos_url":"https://api.github.com/users/anki08/repos","events_url":"https://api.github.com/users/anki08/events{/privacy}","received_events_url":"https://api.github.com/users/anki08/received_events","type":"User","site_admin":false},"repo":{"id":77432133,"name":"scikit-learn","full_name":"anki08/scikit-learn","owner":{"login":"anki08","id":8593629,"avatar_url":"https://avatars.githubusercontent.com/u/8593629?v=3","gravatar_id":"","url":"https://api.github.com/users/anki08","html_url":"https://github.com/anki08","followers_url":"https://api.github.com/users/anki08/followers","following_url":"https://api.github.com/users/anki08/following{/other_user}","gists_url":"https://api.github.com/users/anki08/gists{/gist_id}","starred_url":"https://api.github.com/users/anki08/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anki08/subscriptions","organizations_url":"https://api.github.com/users/anki08/orgs","repos_url":"https://api.github.com/users/anki08/repos","events_url":"https://api.github.com/users/anki08/events{/privacy}","received_events_url":"https://api.github.com/users/anki08/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/anki08/scikit-learn","description":"scikit-learn: machine learning in Python","fork":true,"url":"https://api.github.com/repos/anki08/scikit-learn","forks_url":"https://api.github.com/repos/anki08/scikit-learn/forks","keys_url":"https://api.github.com/repos/anki08/scikit-learn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anki08/scikit-learn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anki08/scikit-learn/teams","hooks_url":"https://api.github.com/repos/anki08/scikit-learn/hooks","issue_events_url":"https://api.github.com/repos/anki08/scikit-learn/issues/events{/number}","events_url":"https://api.github.com/repos/anki08/scikit-learn/events","assignees_url":"https://api.github.com/repos/anki08/scikit-learn/assignees{/user}","branches_url":"https://api.github.com/repos/anki08/scikit-learn/branches{/branch}","tags_url":"https://api.github.com/repos/anki08/scikit-learn/tags","blobs_url":"https://api.github.com/repos/anki08/scikit-learn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anki08/scikit-learn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anki08/scikit-learn/git/refs{/sha}","trees_url":"https://api.github.com/repos/anki08/scikit-learn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anki08/scikit-learn/statuses/{sha}","languages_url":"https://api.github.com/repos/anki08/scikit-learn/languages","stargazers_url":"https://api.github.com/repos/anki08/scikit-learn/stargazers","contributors_url":"https://api.github.com/repos/anki08/scikit-learn/contributors","subscribers_url":"https://api.github.com/repos/anki08/scikit-learn/subscribers","subscription_url":"https://api.github.com/repos/anki08/scikit-learn/subscription","commits_url":"https://api.github.com/repos/anki08/scikit-learn/commits{/sha}","git_commits_url":"https://api.github.com/repos/anki08/scikit-learn/git/commits{/sha}","comments_url":"https://api.github.com/repos/anki08/scikit-learn/comments{/number}","issue_comment_url":"https://api.github.com/repos/anki08/scikit-learn/issues/comments{/number}","contents_url":"https://api.github.com/repos/anki08/scikit-learn/contents/{+path}","compare_url":"https://api.github.com/repos/anki08/scikit-learn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anki08/scikit-learn/merges","archive_url":"https://api.github.com/repos/anki08/scikit-learn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anki08/scikit-learn/downloads","issues_url":"https://api.github.com/repos/anki08/scikit-learn/issues{/number}","pulls_url":"https://api.github.com/repos/anki08/scikit-learn/pulls{/number}","milestones_url":"https://api.github.com/repos/anki08/scikit-learn/milestones{/number}","notifications_url":"https://api.github.com/repos/anki08/scikit-learn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anki08/scikit-learn/labels{/name}","releases_url":"https://api.github.com/repos/anki08/scikit-learn/releases{/id}","deployments_url":"https://api.github.com/repos/anki08/scikit-learn/deployments","created_at":"2016-12-27T06:36:12Z","updated_at":"2016-12-27T06:36:22Z","pushed_at":"2016-12-30T13:09:04Z","git_url":"git://github.com/anki08/scikit-learn.git","ssh_url":"git@github.com:anki08/scikit-learn.git","clone_url":"https://github.com/anki08/scikit-learn.git","svn_url":"https://github.com/anki08/scikit-learn","homepage":"http://scikit-learn.org","size":78053,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"scikit-learn:master","ref":"master","sha":"e2adbb7e037de74044db002eff5898f5e11a5507","user":{"login":"scikit-learn","id":365630,"avatar_url":"https://avatars.githubusercontent.com/u/365630?v=3","gravatar_id":"","url":"https://api.github.com/users/scikit-learn","html_url":"https://github.com/scikit-learn","followers_url":"https://api.github.com/users/scikit-learn/followers","following_url":"https://api.github.com/users/scikit-learn/following{/other_user}","gists_url":"https://api.github.com/users/scikit-learn/gists{/gist_id}","starred_url":"https://api.github.com/users/scikit-learn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scikit-learn/subscriptions","organizations_url":"https://api.github.com/users/scikit-learn/orgs","repos_url":"https://api.github.com/users/scikit-learn/repos","events_url":"https://api.github.com/users/scikit-learn/events{/privacy}","received_events_url":"https://api.github.com/users/scikit-learn/received_events","type":"Organization","site_admin":false},"repo":{"id":843222,"name":"scikit-learn","full_name":"scikit-learn/scikit-learn","owner":{"login":"scikit-learn","id":365630,"avatar_url":"https://avatars.githubusercontent.com/u/365630?v=3","gravatar_id":"","url":"https://api.github.com/users/scikit-learn","html_url":"https://github.com/scikit-learn","followers_url":"https://api.github.com/users/scikit-learn/followers","following_url":"https://api.github.com/users/scikit-learn/following{/other_user}","gists_url":"https://api.github.com/users/scikit-learn/gists{/gist_id}","starred_url":"https://api.github.com/users/scikit-learn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scikit-learn/subscriptions","organizations_url":"https://api.github.com/users/scikit-learn/orgs","repos_url":"https://api.github.com/users/scikit-learn/repos","events_url":"https://api.github.com/users/scikit-learn/events{/privacy}","received_events_url":"https://api.github.com/users/scikit-learn/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scikit-learn/scikit-learn","description":"scikit-learn: machine learning in Python","fork":false,"url":"https://api.github.com/repos/scikit-learn/scikit-learn","forks_url":"https://api.github.com/repos/scikit-learn/scikit-learn/forks","keys_url":"https://api.github.com/repos/scikit-learn/scikit-learn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scikit-learn/scikit-learn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scikit-learn/scikit-learn/teams","hooks_url":"https://api.github.com/repos/scikit-learn/scikit-learn/hooks","issue_events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/events{/number}","events_url":"https://api.github.com/repos/scikit-learn/scikit-learn/events","assignees_url":"https://api.github.com/repos/scikit-learn/scikit-learn/assignees{/user}","branches_url":"https://api.github.com/repos/scikit-learn/scikit-learn/branches{/branch}","tags_url":"https://api.github.com/repos/scikit-learn/scikit-learn/tags","blobs_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/refs{/sha}","trees_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/{sha}","languages_url":"https://api.github.com/repos/scikit-learn/scikit-learn/languages","stargazers_url":"https://api.github.com/repos/scikit-learn/scikit-learn/stargazers","contributors_url":"https://api.github.com/repos/scikit-learn/scikit-learn/contributors","subscribers_url":"https://api.github.com/repos/scikit-learn/scikit-learn/subscribers","subscription_url":"https://api.github.com/repos/scikit-learn/scikit-learn/subscription","commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/commits{/sha}","git_commits_url":"https://api.github.com/repos/scikit-learn/scikit-learn/git/commits{/sha}","comments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/comments{/number}","issue_comment_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/comments{/number}","contents_url":"https://api.github.com/repos/scikit-learn/scikit-learn/contents/{+path}","compare_url":"https://api.github.com/repos/scikit-learn/scikit-learn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scikit-learn/scikit-learn/merges","archive_url":"https://api.github.com/repos/scikit-learn/scikit-learn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scikit-learn/scikit-learn/downloads","issues_url":"https://api.github.com/repos/scikit-learn/scikit-learn/issues{/number}","pulls_url":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls{/number}","milestones_url":"https://api.github.com/repos/scikit-learn/scikit-learn/milestones{/number}","notifications_url":"https://api.github.com/repos/scikit-learn/scikit-learn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scikit-learn/scikit-learn/labels{/name}","releases_url":"https://api.github.com/repos/scikit-learn/scikit-learn/releases{/id}","deployments_url":"https://api.github.com/repos/scikit-learn/scikit-learn/deployments","created_at":"2010-08-17T09:43:38Z","updated_at":"2016-12-31T08:28:48Z","pushed_at":"2016-12-30T16:46:52Z","git_url":"git://github.com/scikit-learn/scikit-learn.git","ssh_url":"git@github.com:scikit-learn/scikit-learn.git","clone_url":"https://github.com/scikit-learn/scikit-learn.git","svn_url":"https://github.com/scikit-learn/scikit-learn","homepage":"http://scikit-learn.org","size":78703,"stargazers_count":15594,"watchers_count":15594,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":8739,"mirror_url":null,"open_issues_count":1166,"forks":8739,"open_issues":1166,"watchers":15594,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135"},"html":{"href":"https://github.com/scikit-learn/scikit-learn/pull/8135"},"issue":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8135"},"comments":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/issues/8135/comments"},"review_comments":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135/comments"},"review_comment":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/pulls/8135/commits"},"statuses":{"href":"https://api.github.com/repos/scikit-learn/scikit-learn/statuses/2f76ca64bacbeab6b83024b787d08b1deefc209f"}}}}
{"actor":{"display_login":"jnothman"}}