Bu eğitimde şunları öğreneceksiniz:
- CSV'yi içe aktar
- Groupby
CSV'yi içe aktar
TensorFlow öğreticisi sırasında, yetişkinlere yönelik veri kümesini kullanacaksınız. Genellikle sınıflandırma görevi ile birlikte kullanılır. Bu URL'de https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data mevcuttur
Veriler bir CSV formatında saklanır. Bu veri kümesi, sekiz kategorik değişkeni içerir:
Bu veri kümesi sekiz kategorik değişkeni içerir:
- çalışma sınıfı
- Eğitim
- evlilik
- Meslek
- ilişki
- yarış
- seks
- ana vatan
dahası, altı sürekli değişken:
- yaş
- fnlwgt
- eğitim_sayısı
- Sermaye kazancı
- sermaye_ kaybı
hours_week
Bir CSV veri kümesini içe aktarmak için pd.read_csv () nesnesini kullanabilirsiniz. İçindeki temel argüman şudur:
Sözdizimi:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Verileri içeren yol veya URL
- sep = ',': Kullanılacak sınırlayıcıyı tanımlayın
- `isimler = Hiçbiri`: Sütunları adlandırın. Veri kümesinde on sütun varsa, on ad geçirmeniz gerekir
- `index_col = None`: Evet ise, ilk sütun bir satır dizini olarak kullanılır
- `skipinitialspace = False`: Sınırlayıcıdan sonraki boşlukları atlayın.
Readcsv () hakkında daha fazla bilgi için lütfen resmi belgelere bakın
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Aşağıdaki Örneği düşünün
## Import csvimport pandas as pd## Define path dataCOLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital','occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss','hours_week', 'native_country', 'label']PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"df_train = pd.read_csv(PATH,skipinitialspace=True,names = COLUMNS,index_col=False)df_train.shape
Çıktı:
(32561, 15)
Groupby
Verileri görmenin kolay bir yolu, gruplama yöntemini kullanmaktır. Bu yöntem, verileri gruplara göre özetlemenize yardımcı olabilir. Groupby ile kullanılabilen yöntemlerin listesi aşağıda verilmiştir:
- count: count
- min: min
- max: max
- demek: demek
- medyan: medyan
- standart sapma: sdt
- vb
Groupby () içinde, yöntemi uygulamak istediğiniz sütunu kullanabilirsiniz.
Yetişkin veri kümesiyle tek bir gruplamaya bir göz atalım. Gelir türüne göre tüm sürekli değişkenlerin ortalamasını alırsınız, yani 50.000'in üzerinde veya 50.000'in altında
df_train.groupby(['label']).mean()
yaş | fnlwgt | eğitim_sayısı | Sermaye kazancı | sermaye_ kaybı | hours_week | |
etiket | ||||||
<= 50K | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50 bin | 44.249841 | 188005.00000 | 11.611657 | 4006.142456 | 195.001530 | 45.473026 |
Hane türüne göre minimum yaşı alabilirsiniz
df_train.groupby (['etiket']) ['yaş']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Birden çok sütuna göre de gruplayabilirsiniz. Örneğin, hanehalkı türüne ve medeni durumuna göre maksimum sermaye kazancı elde edebilirsiniz.
df_train.groupby(['label', 'marital'])['capital_gain'].max()label marital<=50K Divorced 34095Married-AF-spouse 2653Married-civ-spouse 41310Married-spouse-absent 6849Never-married 34095Separated 7443Widowed 6849>50K Divorced 99999Married-AF-spouse 7298Married-civ-spouse 99999Married-spouse-absent 99999Never-married 99999Separated 99999Widowed 99999Name: capital_gain, dtype: int64
Groupby'nin ardından bir grafik oluşturabilirsiniz. Bunu yapmanın bir yolu, gruplamadan sonra bir arsa kullanmaktır.
Daha mükemmel bir arsa oluşturmak için, aynı çok düzeyli dizine sahip olmak için mean () 'dan sonra unstack () kullanacaksınız veya değerleri 50k'den düşük ve 50k'den fazla gelirle birleştireceksiniz. Bu durumda, arsa 14 (2 * 7) yerine iki gruba sahip olacaktır.
Jupyter Not Defteri kullanıyorsanız,% matplotlib satır içi eklediğinizden emin olun, aksi takdirde çizim görüntülenmez
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot