Catfish-Sim: Multiagent Online Dating Simulator
This is a reasonably extensible multiagent simulation framework used in the paper "Catfished! Impacts of Strategic Misrepresentation in Online Dating" written by Oz Kilic and Alan Tsang. It can be used to create a Tinder-like virtual online dating environment where the primary focus is to simulate the swiping and mate choice behavior of people with different attributes, preferences, strategies, and outcomes.
Features
Agents have attractiveness (average perceived attractiveness from others' perspective), estimated attractiveness (their own perception of their attractiveness), attributes, preferences, compatibility assesment methods, and candidate evaluation strategies. They derive utility (happiness) from both the quantity and quality of matches (matching with more attractive and more compatible agents yields higher happiness in general).
Agent attributes can be numeric or categorical. Agent preferences can have a continuous range (numeric) or discrete preferred values (categorical), along with attribute-specific importance and different options, such as how compatibility is calculated if a candidate's value falls outside the preferred range. An agent's reported attributes and preferences may not be truthful, which can manipulate other agents' and the matchmaking logic. However, after two agents mutually like each other and are informed of this match, the truthful attributes are exposed, which, along with the truthful preferences, determines the ultimate utility.
The framework has various matchmaking systems (also referred to as "matchers"), including those based on ratings, compatibility, or random selection, presenting agents with candidates to like or pass. For each round, each agent has a recommendation queue of a predefined size, from which they can like only a predefined number of candidates. Different matchers offer specific options. For example, the compatibility-based matcher can be configured to take the weighted average from both parties' perspective based on their reported preferences.
By default, some values, functions, and distributions are modeled after existing studies on dating and romantic relationships. Due to the constraints of existing studies and for the sake of simplicity, the simulator currently models cis-heteronormative interactions. We recognize these limitations. New agent/matchmaking logic can be implemented by passing custom functions, code modifications, or writing custom classes.
Usage
Installation
pip install catfish-sim
Dependencies:
- Python >= 3.6
- numpy >= 1.23.3
- pandas >= 1.5.0
- scikit-learn >= 1.3.2
- scipy >= 1.8.1
- trueskill >= 0.4.5
Older versions of some of the libraries are likely to work, but have not been tested. The Python version used in development was 3.10, although the software does not currently use any features implemented after version 3.6.
Documentation
Please visit https://catfish-sim.readthedocs.io/.
Examples
A getting started guide is available.
License
This package is licensed under the GNU General Public License v3 (GPL-3).
Citation
If you use this framework or our paper, please cite our paper:
@inproceedings{kilic2024catfished,
author = {Kilic, Oz and Tsang, Alan},
title = {Catfished! Impacts of Strategic Misrepresentation in Online Dating},
year = {2024},
publisher = {International Foundation for Autonomous Agents and Multiagent Systems},
booktitle = {Proceedings of the 23rd International Conference on Autonomous Agents and Multiagent Systems},
pages = {1011–1019},
isbn = {9798400704864},
}
Metadata
Release files for catfish-sim 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| catfish_sim-0.2.0.tar.gz | 1.0 MB | Without provenance | Details for catfish_sim-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| catfish_sim-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for catfish_sim-0.2.0-py3-none-any.whl |
Total release size: 2.2 MB
Release files / catfish_sim-0.2.0.tar.gz
| Download URL | catfish_sim-0.2.0.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d69c6d3b5902cef7d92fc90d8123ed90e4571f7cd1b645536cb449cab1471c8d
|
|
BLAKE2b-256 checksum How to use checksums |
42e17e0946ee50044ab8b9c2d941b178abfb63558a1c919706fed7486014a47a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.10.7
|
Release files / catfish_sim-0.2.0-py3-none-any.whl
| Download URL | catfish_sim-0.2.0-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
429070ea05bf742cb6a953e745055654683398641fedd544f2d8aa061015276d
|
|
BLAKE2b-256 checksum How to use checksums |
0b77630a783b6fcb24b52d61fe76e6c5586ebc364f8379802392707d0aa0018a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.10.7
|
Security for catfish-sim 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.