Skip to main content

a more in-depth testsplit splitting intercategorical

Project description

fancy schmancy testsplit

it's like a testsplit, but fancy and also schmancy


for reference:

package fancy schmancy testsplit
sklearn.model_selection :thumbsdown: :thumbsdown: :thumbsup:
fancy schmancy testsplit :thumbsup: :thumbsup: :thumbsup:

a testplit per label category, to ensure that every category is present


Examples

Assume the following DataFrame:

df = DataFrame(data= {"Column A":[10, 14, 12, 13, 9, 5, 13, 16, 18, 4, 12],
"Column B": ["Cat1", "Cat1", "Cat2", "Cat2", "Cat2", "Cat2", "Cat2", "Cat2", "Cat2", "Cat2", "Cat2"]})
print(df)
Column A Column B
0 10 Cat1
1 14 Cat1
2 12 Cat2
3 13 Cat2
4 9 Cat2
5 5 Cat2
6 13 Cat2
7 16 Cat2
8 18 Cat2
9 4 Cat2
10 12 Cat2

If we assume further that Column B contains the label categories, we'd run the risk of eliminating Cat1 by doing a train test split at 50%.

So, to preserve every existing category, the split will instead be made on every single subset of categories.

As an example for Cat1:

subset = df[df["Column B"] == "Cat1"]
X = subset.drop("Column B", axis= 1)
y = subset["Column B"]
if isinstance(y, Series): y = DataFrame(y)
X_tr, X_te, y_tr, y_te = \
    train_test_split(X, y, test_size = 0.5, random_state = 42)
print(y_tr)
Column B
0 Cat1

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

FancySchmancyTestsplit-0.1.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

FancySchmancyTestsplit-0.1.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file FancySchmancyTestsplit-0.1.0.tar.gz.

File metadata

  • Download URL: FancySchmancyTestsplit-0.1.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.9

File hashes

Hashes for FancySchmancyTestsplit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a1922140107f4bf7424acabcc5bb4575b5a5a6a32c03b7f5e66e4b3003243ad
MD5 9af6a843c38adb643d92a35335ae5000
BLAKE2b-256 6c8ce278b88fab900a2826b8cd630ab1ca823b9653e22f0e72f65ac6342ed52f

See more details on using hashes here.

File details

Details for the file FancySchmancyTestsplit-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for FancySchmancyTestsplit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79fea8a01284cc11c3b3a44ff05f581c99f2190122762164e0eb785151209f0c
MD5 897454b9a3f301796756d391e116c197
BLAKE2b-256 33c4ded5b6fb7f8493c0bb90070daece5eb0779e5934b0a064394d4bf62fc172

See more details on using hashes here.

Supported by

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