Generer Test Data til Machine Learning i Python med scikit-learn

Hvis du vil teste en machine learning-algoritme, har du brug for testdata. I nogle tilfælde er den bedste (og nemmeste) løsning at generere test data fremfor at finde og præparere rigtig data selv. Et sådant tilfælde kunne være en situation, hvor du er mere interesseret i at sammenligne ydeevnen for forskellige machine learning algoritmer, og du er ligeglad med dataens oprindelse. Det kendte Python-bibliotek, scikit-learn (sklearn), lader dig generere en række testdatasæt til at teste blandt andet machine learning algoritmer.

Alle scikit-learn Test Datasæt og Hvordan man henter dem fra Python

Python-biblioteket scikit-learn har massevis af tilgængelige test datasæt, som er perfekt egnede til algoritmetesting.

Biblioteket (pythonpakken) indeholder en liste med “lege datasæt” som er beregnet til at teste diverse machine learning algoritmer. Dataen retuneres af følgende sklearn.datasets-funktioner:

  • load_boston() Boston ejendomspriser til regression
  • load_iris() Iris-datasættet til klissificering
  • load_diabetes() Diabetes datasæt til regression
  • load_digits() Billeder af cifre til klassificering
  • load_linnerud() Linnerud-datasættet til multivariable regression
  • load_wine() Vin-datasættet til klassificering
  • load_breast_cancer() Brystkræft-datasættet til klassificering



Her er et simpelt eksempel, som viser hvordan datasættene ovenfor hentes ned.

from sklearn.datasets import load_digits
from matplotlib import pyplot as plt

# Load the data
data = load_digits()

# Plot one of the digits ("8" in this case)
plt.gray() 
plt.matshow(digits.images[8]) 
plt.show()

Dette giver følgende resultat
sklearn load_digits 8

Generer Test Data til Lineær Regression

Regression er et kraftfuldt matematisk værktøj til at estimere relationer mellem variable. Formålet med lineær regression er at finde det bedst mulige lineære “fit” for at korrelere to eller flere variable.

Regression is a technique used to estimate the relation between variables. In linear regression, one wishes to find the best possible linear fit to correlate two or more variables.
Regression hører til machine learning-grenen kaldet supervised learning (overvåget læring).

Lad os få et eksempel i Python på, hvordan man genererer testdata til et lineært regressionsproblem ved hjælp af sklearn.

# Import packages
from sklearn import datasets
from matplotlib import pyplot as plt

# Get regression data from scikit-learn
x, y = datasets.make_regression(n_samples=20, n_features=1, noise=0.5)

# Vizualize the data
plt.scatter(x,y)
plt.show()

Funktionen make_regression() tager flere input som vist i eksemplet ovenfor. Inputs til funktionen, som er konfigureret ovenfor, er antal test datapunkter som ønskes genereret n_samples antallet af input kolonner n_features og mængende af støj noise i output-dataen.

Følgende resultat opnås ved at køre koden i Python.
sklearn make_regression regression data python

Generer Testdata til Klyngeanalyse

Klyngeanalyse (Clustering) har at gøre med at finde forskellige klynger eller mønstre i dataen. Der findes forskellige maskinlæringsalgoritmer, der kan klassificere data i klynger. Læs mere om klyngeanalyse her.

Funktionen make_blobs() fra sklearn kan bruges til at klynge data til et vilkårligt antal klynger n_features med tilsvarende etiketter. Et kodeeksempel vises nedenfor.

from sklearn.datasets.samples_generator import make_blobs
from matplotlib import pyplot as plt
import pandas as pd

# Generate features (X) and labels (y)
X, y = make_blobs(n_samples=200, centers=4, n_features=2)

# Group the data by labels
Xy = pd.DataFrame(dict(x1=X[:,0], x1=X[:,1], label=y))
groups = Xy.groupby('label')

# Plot the blobs
fig, ax = plt.subplots()
colors = ["blue", "red", "green", "purple"]
for idx, classification in groups:
    classification.plot(ax=ax, kind='scatter', x='x1', y='x2', label=idx, color=colors[idx])
plt.show()

Dette giver os følgende plot:

make blobs sklearn generate data python

Opsummering

Vi håber, at denne guide til, hvordan man genererer testdata til maskinlæring i Python ved hjælp af scikit-learn, var nyttig for nogle af jer! Hvis du nyder webstedet, og du ønsker mere at denne slags indhold, er du velkommen til at give en kommentar eller følge os på Facebook.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.