# `PokerHand`

### *class* capymoa.datasets.PokerHand[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_datasets.py#L420)

Bases: `_DownloadableARFF`

PokerHand is a classification problem where each instance is an example
of a hand consisting of five playing cards drawn from a standard deck of 52.

* Number of instances: 1,025,009
* Number of attributes: 10
* Number of classes: 10

Each card is described using two attributes (suit and rank), for a total
of 10 predictive attributes. The task is to predict the poker hand,
ranging from nothing to royal flush. Note that the order of cards is
important, so there are 480 possible Royal Flush hands instead of just 4.

**References:**

1. Cattral, Robert, Franz Oppacher, and Dwight Deugo. “Evolutionary data
   mining with automatic rule generalization.” Recent Advances in
   Computers, Computing and Communications (2002).
2. “poker-hand.” OpenML (2015): [https://www.openml.org/d/1567](https://www.openml.org/d/1567).

#### \_\_init_\_(directory: [str](https://docs.python.org/3/builtins/stdtypes.html#str) | [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/builtins/constants.html#None) = None, auto_download: [bool](https://docs.python.org/3/builtins/functions.html#bool) = True, file_type: [Literal](https://docs.python.org/3/library/typing.html#typing.Literal)['arff', 'csv'] = 'arff')[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L76)

Setup a stream from a dataset file and optionally download it if missing.

* **Parameters:**
  * **directory** – Where downloads are stored.
    Defaults to [`capymoa.datasets.get_download_dir()`](capymoa.datasets.md#capymoa.datasets.get_download_dir).
  * **auto_download** – Download the dataset if it is missing.
  * **file_type** – Download either the `"arff"` or `"csv"` dataset asset.

#### \_\_iter_\_() → [Self](https://docs.python.org/3/library/typing.html#typing.Self)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/stream/_stream.py#L356)

Get an iterator over the stream.

This will NOT restart the stream if it has already been iterated over.
Please use the [`restart()`](#capymoa.datasets.PokerHand.restart) method to restart the stream.

* **Yield:**
  An iterator over the stream.

#### \_\_next_\_() → \_AnyInstance[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/stream/_stream.py#L366)

Get the next instance in the stream.

* **Returns:**
  The next instance in the stream.

#### cli_help() → [str](https://docs.python.org/3/builtins/stdtypes.html#str)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/stream/_stream.py#L379)

Return a help message

#### get_moa_stream() → InstanceStream | [None](https://docs.python.org/3/builtins/constants.html#None)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L113)

Get the MOA stream object if it exists.

#### get_schema() → [Schema](capymoa.stream.Schema.md#capymoa.stream.Schema)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L110)

Return the schema of the stream.

#### has_more_instances() → [bool](https://docs.python.org/3/builtins/functions.html#bool)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L104)

Return `True` if the stream have more instances to read.

#### next_instance()[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L107)

Return the next instance in the stream.

* **Raises:**
  [**ValueError**](https://docs.python.org/3/builtins/exceptions.html#ValueError) – If the machine learning task is neither a regression
  nor a classification task.
* **Returns:**
  A labeled instances or a regression depending on the schema.

#### restart()[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L116)

Restart the stream to read instances from the beginning.

#### *classmethod* to_stream(path: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path)) → [Stream](capymoa.stream.Stream.md#capymoa.stream.Stream)[[source]](https://github.com/adaptive-machine-learning/CapyMOA/blob/3e255b1/src/capymoa/datasets/_downloader.py#L96)

Convert the downloaded and unpacked dataset into a datastream.

#### moa_stream *: \_InstanceStream | [None](https://docs.python.org/3/builtins/constants.html#None)*

#### schema *: [Schema](capymoa.stream.Schema.md#capymoa.stream.Schema)*

#### stream *: [Stream](capymoa.stream.Stream.md#capymoa.stream.Stream)*
