This repository has been archived on 2026-06-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
cas-pml/SL/aufgaben/template/4_WS/Loesungen/WS 12 Loesung.ipynb
T
2026-05-21 14:16:30 +02:00

58 KiB

WS 12 Sampling

  • das Original des Bankkundendatasets (bank-additional-full.csv) enthält 41187 Beobachtungen
  • vergleichen Sie die Mengenverhältnisse von yes und no bei Samples von 1000 bis 40000 in Schritten von 1000
In [3]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

#datapath = '../3_data'
datapath = '../../3_data'
from os import chdir; chdir(datapath)

data = pd.read_csv('bank-additional-full.csv', sep=';')
vc = data.y.value_counts()
no_ratio_all = vc['no'] / data.shape[0]

sizes = range(1000, 40100, 1000)
no_ratio_smpl = []
for size in sizes:
    data_smpl = data.sample(n=size)
    vc = data_smpl.y.value_counts()
    no_ratio_smpl.append(vc['no'] / data_smpl.shape[0])

## visualize results
ax = sns.lineplot(x=sizes, y=no_ratio_smpl)
plt.xlabel('smpl size')
plt.ylabel('no_ratio_smpl')
ax.axhline(no_ratio_all, ls='--', color='black');
C:\Users\werne\anaconda3\Lib\site-packages\seaborn\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.
  with pd.option_context('mode.use_inf_as_na', True):
C:\Users\werne\anaconda3\Lib\site-packages\seaborn\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.
  with pd.option_context('mode.use_inf_as_na', True):

Fazit:

  • die Abweichung gegenüber dem Wert auf dem vollendataset nimmt mit zunehmender Stichprobegrösse tatsächlich ab, wenn auch nicht stetig