Programim dhe zhvillim, javascript, python, php, html

Validimi i të dhënave Tensorflow nuk identifikon anomali në veçoritë numerike

Unë kam qenë duke testuar Tensorflow Data Validation (versioni 0.22.0) për t'u përdorur në tubacionet e mia aktuale ML dhe vura re se nuk ka ndonjë anomali në veçoritë numerike. Për shembull,

> import pandas as pd  
> import pyarrow 
> import tensorflow as tf 
> import apache_beam as beam 
> import apache_beam.io.iobase 
> import tensorflow_data_validation as tfdv 
> print('TFDV version: {}'.format(tfdv.version.__version__))
> 
> train_df = pd.DataFrame({
>     'FeatA' : ['A'] * 1000,
>     'FeatB' : ['B'] * 1000,
>     'FeatC' : [10] * 1000,
>     'FeatD' : [50.2] * 1000 })
> 
> eval_df = pd.DataFrame({
>     'FeatA' : ['A1'] * 1000,
>     'FeatB' : ['B1'] * 1000,
>     'FeatC' : [4] * 1000,
>     'FeatD' : [200.43] * 1000 })
> 
> train_stats  = tfdv.generate_statistics_from_dataframe(train_df)
> schema = tfdv.infer_schema(statistics = train_stats) 
> eval_stats = tfdv.generate_statistics_from_dataframe(eval_df) 
> anomalies = tfdv.validate_statistics(statistics = eval_stats, schema = schema)
> tfdv.display_anomalies(anomalies)

Anomalitë u zbuluan vetëm në FeatA dhe FeatB të cilat janë kategorike. Por në FeatC dhe FeatD, TFDV nuk zbulon asgjë.

Rezultati shfaqet në këtë imazh

Kam provuar gjithashtu të vendos krahasues të animit dhe driftit, por nuk ka ndryshime. Mendoj se ka të bëjë me skemën e gjeneruar automatikisht e cila nuk ka domen të përcaktuar për veçoritë numerike.

Dikush ka ndonjë ide se si të funksionojë TFDV për veçoritë numerike?


  • Ky është një vëzhgim i mirë. Do të hetojë më tej dhe do t'ju njoftojë. 16.06.2020
  • ka ndonjë lajm për këtë çështje? Faleminderit!! 16.07.2020
  • Është duke u gjurmuar në çështjen e Github, github.com/tensorflow/data-validation/issues/ 131. 17.07.2020
  • komenti përkatës :- github.com/tensorflow/data-validation/issues/ Përgjigjur nga kennysong :- Duhet të vendosni manualisht një FloatDomain inline në Veçori. Nuk gjenerohet automatikisht nga infer_schema(). tfdv.get_feature(schema, 'FeatC').float_domain.name = 'FeatC' tfdv.get_feature(skema, 'FeatC').float_domain.min = 0.0 tfdv.get_feature(skema, 'FeatC').float_domain =0.0x. Pas kësaj, validate_statistics() duhet të identifikojë veçoritë jashtë kufijve. 09.03.2021

Përgjigjet:


1

Ne kemi nevojë të përdorim krahasuesin jensen_shannon_divergence skew për veçoritë numerike dhe infinity_norm për veçoritë kategorike

tfdv.get_feature(schema_updated,'SALES').skew_comparator.jensen_shannon_divergence.threshold = 0.001

skew_anomalies = tfdv.validate_statistics(statistics=new_dataset_stats, schema=schema, serving_statistics=stats_old_datasets) display_anomalies(skew_anomalies)

10.03.2021

2

Normalisht, tfdv nuk nxjerr domene për vlerat numerike, tani keni 3 zgjidhje të mundshme:

1- Ndryshoni llojin e kolonës së kornizës së të dhënave në str dhe kështu ajo do të konsiderohet si një veçori Bytes.

2- Shtoni një int_domain (float_domain për FeatD) në veçoritë tuaja dhe përcaktoni minimumin dhe maksimumin tuaj të dëshiruar

3- Vetëm për veçoritë int mund të vendosni int_domain.is_categorical në True dhe më pas të përdorni një krahasues drift/skew. Ju do të jeni në gjendje të zbuloni vlera të reja brenda vlerës K Top.

08.10.2020
  • I shtova feature.int_domain.is_categorical = True një veçori kategorike e cila është e tipit INT. Më pas përdoret feature.drift_comparator.infinity_norm.threshold = 0.01 për të zbuluar lëvizjen. Nuk shfaqi anomali të gjetura. Por kur e konvertova veçorinë në varg, zbuloi një anomali me distancë të lartë Linfty. Pra, zgjidhja 3 nuk funksionoi. Ndonjë sugjerim? 16.12.2020
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..