Skip to main content

A multiagent online dating simulation framework.

Project description

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},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

catfish_sim-0.2.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

catfish_sim-0.2.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file catfish_sim-0.2.0.tar.gz.

File metadata

  • Download URL: catfish_sim-0.2.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.7

File hashes

Hashes for catfish_sim-0.2.0.tar.gz
Algorithm Hash digest
SHA256 d69c6d3b5902cef7d92fc90d8123ed90e4571f7cd1b645536cb449cab1471c8d
MD5 6291ea7d209d29cfa7059dddaa4638f7
BLAKE2b-256 42e17e0946ee50044ab8b9c2d941b178abfb63558a1c919706fed7486014a47a

See more details on using hashes here.

File details

Details for the file catfish_sim-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: catfish_sim-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.7

File hashes

Hashes for catfish_sim-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 429070ea05bf742cb6a953e745055654683398641fedd544f2d8aa061015276d
MD5 565028ca2127db615ee5ce8d43acd7ab
BLAKE2b-256 0b77630a783b6fcb24b52d61fe76e6c5586ebc364f8379802392707d0aa0018a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page