Comments (4)
The plan is to implement ☝️ as a fix, with some functional tests as mentioned above
from splink.
With all this in mind, term freqnecy adjustment can be expressed as a simple extension to the standard formula for computing m, u probabilities and adjustment factors, as follows:
from splink.
The existing approach to term frequency adjustments replaces the base lambda (the proportion of matches across all records) with the proportion of matches within a name, which is our interpretation of the final formula on page 9 of https://static.cambridge.org/content/id/urn:cambridge.org:id:article:S0003055418000783/resource/name/S0003055418000783sup001.pdf.
However, I am worried that this double counts the adjustment for gamma_name = 1 i.e. we shouldn't adjust up for the fact that name matches, and ALSO adjust up for the prevalance of matches within a specic name. Sadly there's a typo (missing term) in the formula above, so it's not clear exactly how it should be performed.
There's a missing term that could be something like:
Except perhaps it's meant to be 'the product over all k, except for the first_name k.
from splink.
Here are some properties we agree should be true of the term frequency adjustments:
-
'term frequency adjustments' made because of skew in the data. the
match_probability
already takes account of cardinality in the data. The problem is they assume that each value appears roughly an equal amount of times. -
e.g. we know that a national insurance number contributes a huge amount more informaion to a match than gender because of its high cardinality. What about if a column had half binary values, and half NI numbers?
-
this implies that when term frequency adjustments are made, match probability should always be expected to be adjusted up for some values of name and down for others. This is somethign we can run as a unit test.
-
for a column without skew, we expect term frequency adjustments to be 'null'. Aggain, we can test this
from splink.
Related Issues (20)
- [Splink 4] Find new matches can be simplified by creating a new linker
- [FEAT] Add GitHub action to sort/update custom dictionary HOT 3
- [FEAT] Split out system installs from spellchecker bash script HOT 2
- [MAINT] Ensure consistent capitalisation when referencing functions named after people
- [FEAT] Scala 2.13 support? HOT 4
- Can't train for M values on Databricks HOT 4
- [FEAT] Rename cols in graph metric tables
- [FEAT] Add cluster metrics to cluster studio
- Allow `__splink__df_concat` to be computed without `linker` HOT 1
- M values aren't trained for a column HOT 3
- `linker.estimate_u_using_random_sampling` fails with default arguments, with no clear indication why HOT 3
- [FEAT] Allow training m without a blocking rule with a sample of the input records
- Notebook test sometimes fails HOT 2
- CI tests are not caching environment HOT 1
- [FEAT] Seed for comparison_viewer_dashboard?
- threshold_selection_tool_from_labels_table does not work using spark
- [FEAT] Cluster evaluation - summary statistics
- [FEAT] Cluster evaluation - with ground truth data
- Sql syntax error: HOT 1
- [FEAT] Add string similarity functions to PostGres backend
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from splink.