提交

提交图

1824 次代码提交

作者 SHA1 备注 提交日期
Elías Snorrason 71521e90d3 Match token/s in color_sentence (#397)
*  search tokenized sentence for coloring

Searches through the list of tokens before trying to match substrings. Thanks for this code suggestion Eric!

* 🚧 fix signature in all calls to color_sentence

*  update color_sentence test after changing its api

(sentence, word) -> (word, tokens)

*  use regex for coloring tokens in sentence

Find word boundaries with regex, use builtin replace() as fallback w/o boundaries.

Closes #288

* 🚑 invert fallback condition

Use replace if NO substitutions were made with regex.
2022-09-05 16:30:29 -07:00
Elías Snorrason afa217cb4a Fix typing for find_label_issues (#391) 2022-09-03 12:30:07 -07:00
Jonas Mueller d5d420f3cd pep-8 pointer 2022-09-02 18:57:47 -07:00
Jonas Mueller bcad13d6a2 read development guide 2022-09-02 18:55:39 -07:00
Elías Snorrason c884dc5171 Cleanup token_classification.rank module (#393)
*  add test fixture for get_label_quality_scores

*  test softmin_sentence_score

include test cases for temperature limits

* ♻️ cleanup softmin_sentence_score

Remove unused keyword-only args, Fix tag in docstring, Change format of nested functions.

*  specialize edge-case temperature=inf in softmin_sentence_score

* ♻️ simplify temperature lookup

* ♻️ cleanup get_label_quality_scores

Remove unused args/variables. Update parameter list in docstring. Rename parameter of inner function. Function always returns a tuple.

* 🏷️ tag token_scores as optional

*  test raised error

* 🩹 skip untestable elif statement

the elif statement only gets partial coverage because it can't evaluate to False due to the `assert sentence_score_method` at the start of the function
2022-09-02 18:26:07 -07:00
Elías Snorrason 6ec5b173dd Cleanup token classification utils (#390)
* 🏷️ restrict parameters for list types

* 🐛 only process characters in input token

Example: process_token("Cleanlab", [("C", "a"), ("a", "C")]) should return "aleCnlCb", not "CleCnlCb".

*  use all sentences in test_get_sentence

*  add test cases to test_filter_sentence

*  extent test cases in test_mapping

* 📝 clean up docstrings

Restrict arg types based on docstrings. Fix punctuation and typos. Add examples to docstring.

*  split tests for filter_sentence

*  extend test_merge_probs

*  test merge_probs with ignored/normalized columns in probs

*  extend test cases for get_sentences

* ⚰️ remove unused pandas import

* 🏷️ pass strict mypy check

We ignore np.max as it is untyped.

No issues found in token_classification_utils.py by running
```
mypy --install-types --non-interactive --strict cleanlab/internal/token_classification_utils.py
```

* 👷 add strict type-checking in CI

* 💚 use strict type-check for single file

*  remove strict type check in CI

* refactor: 🏷️ use np.ndarray type instead of npt.NDArray

*  go back to generic np.ndarray type

* ♻️ always return tuple in filter_sentence

Remove unused argument+docstring. Simplify relevant unit tests.

* 🔥 resolve comments on typing

Remove ignore-comments. Remove duplicate tag in docstring. Remove unused imports.

* 🔥 remove duplicate tag in docstring
2022-09-01 17:07:39 -07:00
Jonas Mueller 67767962f3 link projects in readme 2022-09-01 00:12:08 -07:00
Jonas Mueller 1b40ba0c6a update Projects links, add link to wiki 2022-09-01 00:06:08 -07:00
Jonas Mueller 0b4e9089d5 avoid import * 2022-08-31 22:22:36 -07:00
Hui Wen 82096cbe36 Change verbose functionality in multiannotator functions (#389)
* calculate most likely class error from subset

* use verbose to control warning prints

* clip minimum to 1e-6 to prevent division by zero

* add docstring
2022-08-31 11:07:23 -07:00
Jonas Mueller 31d4370701 Add missing docs pages (#381)
* add files to show docs for recent source code

* temp delete audio tutorial for docs on M1

* black formatting
2022-08-31 02:28:45 -07:00
Jonas Mueller 6ab83fc37c language improvements (#380) 2022-08-30 16:38:56 -07:00
Hui Wen 960c2b4ac1 CL functionality for multiannotator data (#333)
* setup multiannotator functionality

* add docstring

* add unittests

* edit get label quality with nan helper func

* docstring edits

* handle non overlapping annotators in get_annotator_agreement_with_annotators

* return NaN annotator quality scores for non-overlapping annotators

* add unittest

* add unittests for get_consensus_label tiebreaks

* np.array -> np.ndarray

* add new annotator quality method

* docstring edits

* address comments, docstring changes

* add method to compute improved consensus labels

* separate detailed_label_quality return

* elif statement typo

* changed get_majority_vote_label

* add 'best_quality' as a consensus method

* change lqs kwargs naming

* change lqs kwargs naming

* change unittest function names

* docstring edits

* change get_worst_class to return class with lowest agreement with consensus

* edit method to get annotator lqs, change quality_of_consensus -> consensus_quality_score

* remove unnecessary args

* satisfy mypy checks

* fix mypy issue

* add unittests

* reshuffled order of functions

* address comments

* docstring edit

* change return to always return dict

* add clipping to prevent negative pred_probs

* add tutorial

* add multiannotator to tutorial index

* add newline

* add tiebreaks for best_quality labels and worst_class

* change auto method name to crowdlab

* fix indexing for non numeric anno names

* add test for nonnumeric anno names

* update unittest

* address comments [partially complete]

* edit metadata

* missing /details tag

* bugfix to allow pd Int64 types

* update tutorial

* address comments
2022-08-30 11:29:06 -07:00
Eric Wang 1bad2f82a2 Adding functionality for cleanlab to find label errors in token classification datasets (#347)
* add token_classification functionality

* add typing

* fix typing

* add typing

* fixed typing and black

* fix typing
2022-08-30 09:17:07 -07:00
Elías Snorrason e987ec190d switch docs links from latest release to stable (#379)
Find and replace 'docs.cleanlab.ai/v2.0.0/' with 'docs.cleanlab.ai/stable/'. Only occurs in README.md.
2022-08-25 16:45:00 -07:00
Elías Snorrason 0b5a089e37 fix typos in ci step names (#377)
[skip ci]
2022-08-24 09:01:20 -07:00
Jonas Mueller ba0110f29d projects link and getting started instructions (#349) 2022-08-23 01:07:21 -07:00
Hui Wen bf83c553bf make pred_probs naming consistent in tutorials (#345)
* rename cv_pred_probs to pred_probs

* revert python version
2022-08-17 19:52:25 -07:00
Eric Wang cccc8f8932 Fix capitalization in DEVELOPMENT.md (#340) 2022-08-16 14:30:25 -07:00
Ulyana 9abbb26bba Added mypy instructions to DEVELOPMENT.md guide (#339)
* Added mypy and black instructions

* Fixed typo

* Fixed capetalization

* Resolved PR comments
2022-08-15 23:01:36 -07:00
Curtis G. Northcutt 3fb4133a5c np.array to np.ndarray 2022-08-09 03:30:57 -04:00
Curtis G. Northcutt 72d6c73a94 Clarify shapes of matrices in cj_multi_label 2022-08-09 03:25:03 -04:00
Ulyana c0fe76c098 Changed all docstring instances of np.array to np.ndarray (#336)
* Changed all instances of np.array in docstring to np.ndarray

* np.array is NOT a proper class name it is just a function to
  create np.ndarrays and therefore should not be parameter class

* Black formatting compliance
2022-08-08 23:30:12 -07:00
Hui Wen e9db4bc30a allow missing classes in assert_valid_class_labels (#335) 2022-08-08 21:59:14 -04:00
Hui Wen b96a78405e allow missing classes in get_label_quality_scores (#334) 2022-08-08 13:23:01 -07:00
Jonas Mueller 5b05bc5f62 update sphinx to v5 (#327)
* update sphinx to v5

* update autodocsumm version

* autodocsumm v0.2.9

* upgrade furo

Co-authored-by: calebchiam <calebchiam@gmail.com>
2022-08-08 03:14:28 -07:00
Jonas Mueller 104e72dc07 typo 2022-08-05 09:27:49 -07:00
Jonas Mueller 4efb7df63f missing/rare class comment (#332) 2022-08-03 12:52:09 -07:00
Jonas Mueller dc515c93f3 Update filter.py (#331) 2022-08-03 03:06:07 -07:00
Jonas Mueller 878244f904 Re-order find_label_issues args for better clarity (#329)
* findlabelissues doc clarifications + arg order

* clarify return_indices_ranked_by specifies return

* moved multi_label up higher. kept ranked_by at top

Co-authored-by: Curtis G. Northcutt <curtis.northcutt@gmail.com>
2022-07-29 17:15:46 -04:00
Jonas Mueller 9a26254adc language improvements 2022-07-28 13:43:39 -07:00
Jonas Mueller 85844e55cd section headers in outlier tutorial 2022-07-28 00:11:05 -07:00
Jonas Mueller b93fdebf30 Add compatibility for tensorflow and pytorch Dataset objects (#311)
* validation_func docstring

* torch,tf compatibility+tests

* keras test

* skip tests if python < 3.7

* pytorch numpy int bug on windows

* make tensorflow test work on windows

* move tf env variable setting

* pytorch test increase epochs

* install cpu-tensorflow on windows CI

* torch test optimizer to adam

* fix bugs in shuffled TF dataset

* dummy unit test for TF on windows

* dummy code for TF windows testing

* deal with np.int bug on windows

* remove windows debugging code

* docstrings for new functionality

* address merge conflicts

* reformat after merge

* addressed comments
2022-07-27 21:42:13 -07:00
Jonas Mueller a0a8e15346 flip precision-recall plot (#326) 2022-07-27 16:37:24 -07:00
Jonas Mueller 86bedb39fa missing backtick 2022-07-26 17:54:17 -07:00
Ulyana c6feb2ff40 Improved versioning compatibility for audio tutorial (#325)
* Addressed issue @292
2022-07-26 15:58:19 -07:00
Elías Snorrason 8b60a381e4 validation.py: Annotate function args and return values (#317)
* 🏷️ annotate function args and return values

Starting with the validation module:

- I think (X, y) might need some custom Union type to handle both numpy arrays and pandas dataframe, etc.
- All of the "assert" functions return None.

Ref #307

* refactor: 🏷️ swap npt.NDArray -> np.ndarray

np.ndarray seems more consistent with the rest of the repo.
Maybe it's necessary to go back to npt.NDArray when disallowing generics?

See numpy docs: https://numpy.org/devdocs/reference/typing.html#numpy.typing.NDArray

* refactor: 🔥 remove unused import

* 🏷️ unconstrain X input types

* 🐛 handle label type issues

- Have to restrict the output of labels_to_array to pass mypy checks.
- Returning the values of pd.Series isn't type-stable.

* 🏷️ include np.generic in arg-type union

* test:  test labels_to_array

* 🏷️ add type aliases for X and y

* 🚨 ignore type-checks for pandas indexing assertions

CI typechecker runs on Python 3.10 which gives this error:

'cleanlab/internal/validation.py:125: error: No overload variant of "__getitem__" of "_iLocIndexerSeries" matches argument type "List[int]"'

It should be fine to let mypy ignore these expressions as they don't return anything.

* 🥅 specify errors to ignore

"type: ignore" doesn't pass strict mypy type-checks unless the specific errors are provided

* 🏷️ annotate label series to array
2022-07-26 12:58:37 -07:00
Curtis G. Northcutt 346d101acd Clarify language 2022-07-26 12:49:57 -07:00
Elías Snorrason cecaf7aec6 Add y argument as alternative to labels in CleanLearning.fit() (#322)
* 🗑️ change labels arg -> y in CleanLearning.fit()

Set `label` as an optional keyword-only argument.
Anyone still using it in this method should get a deprecation warning.

Fixes #281

* 📝 add note for y/labels in docstring

* 🥅 make y an optional positional arg.

Should now resolve deprecated signatures.

* 📝 labels -> y in module docstring

*  revert "label -> y deprecation"

This reverts commit ab319a0cca2cec715a84eb5f628bbab7706c5f9c.
This reverts commit 1b739002d848e1f0acb6390a666f6e695e25fcaa.
This reverts commit 88bb6c3bcca298dab414c3cb20101783d78d35d1.
This reverts commit d988e3c3932107e779598d02d8f16d7e6671e9e7.

*  add y alias for labels

Resolves #281
2022-07-26 00:59:10 -07:00
Ulyana b481a74d0d Updated tutorials to include quickstart (#323)
* Added runnable package versioning for tutorials
Added quickstart at top of tutorials

* Addressed PR comments
* Fixed quickstart to include cleanlearning
* Set correct requirements.txt
* Updated y to labels

* Fixed y-> labels labeling issues

* Updated quickstart message/removed extra dependencies

* remove keras from package-versions

* more concise

* remove pathlib as explicit requirement

* remove pathlib version

* rewording

* true label -> given label

* remove venv from kernelspec

Co-authored-by: Jonas Mueller <1390638+jwmueller@users.noreply.github.com>
2022-07-26 00:52:13 -07:00
Jonas Mueller d8a207b971 remove broken links 2022-07-25 22:55:27 -07:00
Jonas Mueller 571f29ddcd model accuracy -> label error detection performance 2022-07-25 21:22:10 -07:00
Jonas Mueller 268e43e6ee Some FAQ tips on how to improve CleanLearning (#324)
* cleanlearning tips

* addessed comments

* add a few general tips at the end

* minor edits

* format pred_probs as variable type

* bug fix to pass lint (missing comma)

* fix format for linter

Co-authored-by: Curtis G. Northcutt <curtis.northcutt@gmail.com>
2022-07-25 21:12:50 -07:00
Jonas Mueller a0e1227ae5 Allow KNN object to be returned by get_outlier_scores, Improved Tutorial (#319)
* knn return, improved tutorial

* typing fix for tuple

* add timm to docs-requirements

* language improvements

* declare typing of outlier_scores
2022-07-25 12:40:58 -07:00
Jonas Mueller 5973a21958 revert links from master -> v2.0.0 2022-07-23 16:46:34 -07:00
Aravind Putrevu 85ca7302a9 Updating tutorials hyperlink to 2.0.0 release (#318)
* Updating tutorials hyperlink to 2.0.0 release

* revert back to v.2.0.0 links instead of stable

Co-authored-by: Jonas Mueller <1390638+jwmueller@users.noreply.github.com>
2022-07-23 16:36:01 -07:00
Jonas Mueller a18d4d2c71 patch missing timm in docs-requirements 2022-07-23 15:52:18 -07:00
Jonas Mueller 31545f1e5c More guidelines added to docs readme (#321)
* point to tutorial guidelines

* things not to forget for new tutorials

* docstring editing guidelines
2022-07-23 15:49:29 -07:00
Jonas Mueller 008ad080db Tips for editing the tutorial notebooks (#320)
* docs editing tips
2022-07-22 18:17:55 -07:00
Ulyana b8e85284c6 Added outlier detection tutorial into docs (#310)
* Added outlier detection tutorial into docs

* Switched to pytorch model/dataset implementation

* Fixed image normalization

* Fixed outlier detection for test set

* Added outlier thresholding into tutorial.

* Cleaned output

* Removed unused imports and renamed notebook

* Added outliers notebook to PR

* Added quickstart into tutorial

* Best quickstart header

* Cleaned cell output

* Changed to use subset of original data for speed

* Fixed randomness

* Cleared outputs

* fixed metadata tags

* Fixed metadata

* Cleaned kernel and verified output

* Improved unit test
Changed labels references to classes where apropriate
2022-07-22 15:40:03 -07:00