Skip to main content

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)

Source distribution for catfish-sim 0.2.0
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)

Table of built distributions (wheels) for catfish-sim 0.2.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page