Fuenfgeld / ATeamDatenmanagementUndArchivierung

MIT License
7 stars 0 forks source link

Geimpfet vs ungeimpfte #43

Closed fphans closed 3 years ago

fphans commented 3 years ago

liegt vll an der uhrzeit aber ich kapiere nicht wie geimpfte von ungeimpften unterschiden werden können. Können wir im ETL nicht noch ein bauen if Immunization DATE is NULL --> Neuespalte geimpft false und Immunization DATE IS NOT NULL -.> geimpft true dritte spalte anzahl impfungen...

würde dir gerne morgen was aus meinem branch zeigen, wo ich aber nicht sicher bin ob ich nicht einfach ETL rückgängig gemacht habe und auf dem Holzweg bin,

cheerio

lknegendorf commented 3 years ago

Hm, schwierige Sache leider.. also es gibt genau eine Person, die nie geimpft wurde und die ist 1941 gestorben. Mache dir mal nen Vorschlag, mit dem du vielleicht weiterarbeiten kannst.

fphans commented 3 years ago

bei wir waren das über 80.000...

lknegendorf commented 3 years ago

@fphans brauchst du dieses Issue noch? Sonst kann es zu oder?

fphans commented 3 years ago

Hallo Leo,

was ich nicht verstehe ist wieso Du die encounterclass da nicht mit drin hast. gegen was möchtest du das ML dann laufen lassen?

fphans commented 3 years ago

incl encounterclass sql

fphans commented 3 years ago

ok ich dokumentiere ecihfach mal fortlaufend auf was ich stosse: encouterclass und encounter_code sind drin aber als dtype=object. der castbefehlt df.astype() zeigt keine wirklung

für das ml tool bruachen wir aber floats oder int64.

fphans commented 3 years ago

Vll Sollten wir das Sterschema um eine tbl mit eigenen encountercodes erweitern um das zu umschiffen: pat_imm = pd.read_sql_query(""" SELECT patients.Id, ENCOUNTERCLASS, (CASE WHEN encounterclass LIKE '%ambulatory%' THEN 0 WHEN encounterclass LIKE '%wellness%' THEN 1 WHEN encounterclass LIKE '%emergency%' THEN 2 WHEN encounterclass LIKE '%inpatient%' THEN 3 WHEN encounterclass LIKE '%outpatient%' THEN 4 WHEN encounterclass LIKE '%urgentcare%' THEN 5 ELSE NULL END) AS ML_encounter_code, patients.BIRTHDATE, patients.DEATHDATE, ...

lknegendorf commented 3 years ago

Hallo Leo,

was ich nicht verstehe ist wieso Du die encounterclass da nicht mit drin hast. gegen was möchtest du das ML dann laufen lassen?

OK ich hatte es so verstanden, dass du ein Decision Tree Learning Modell entwickeln möchtest, wo die demografischen Patientendaten dir vorhersagen können, ob ein Patient geimpft ist, oder nicht. Daher hatte ich das so implementiert

lknegendorf commented 3 years ago

ok ich dokumentiere ecihfach mal fortlaufend auf was ich stosse: encouterclass und encounter_code sind drin aber als dtype=object. der castbefehlt df.astype() zeigt keine wirklung

für das ml tool bruachen wir aber floats oder int64.

Das sind ja auch Strings, die kannst du nicht ohne weiteres casten. Es handelt sich ja um kategoriale Variablen, die kannst du trotzdem als Zahlwerte darstellen.

lknegendorf commented 3 years ago

Vll Sollten wir das Sterschema um eine tbl mit eigenen encountercodes erweitern um das zu umschiffen: pat_imm = pd.read_sql_query(""" SELECT patients.Id, ENCOUNTERCLASS, (CASE WHEN encounterclass LIKE '%ambulatory%' THEN 0 WHEN encounterclass LIKE '%wellness%' THEN 1 WHEN encounterclass LIKE '%emergency%' THEN 2 WHEN encounterclass LIKE '%inpatient%' THEN 3 WHEN encounterclass LIKE '%outpatient%' THEN 4 WHEN encounterclass LIKE '%urgentcare%' THEN 5 ELSE NULL END) AS ML_encounter_code, patients.BIRTHDATE, patients.DEATHDATE, ...

@fphans Die andere Gruppe hat das ja so gemacht.. Ich würde das aber nicht machen, bzw. habe mich beim ETL-Prozess bewusst dagegen entschieden. Damit handelst du dir notwendige Verknüpfungen für ganz einfache deskriptive Auswertungen wie einen Countplot o.ä. ein, weil du nie eine native Achsenbeschriftung hast (da diese ja nur aus Zahlen besteht).

Mein Vorschlag: Lass und das im Rahmen des Preprocessing, bevor wir eine bestimmte Forschungsfrage angehen, also entsprechend nach der deskriptiven Statistik machen. Geht dann auf die Schnelle so: pat_imm.GENDER.replace(['M', 'F'], [0, 1], inplace=True) pat_imm.MARITAL.replace(['M', 'S'], [0, 1], inplace=True) pat_imm.RACE.replace(["white", "black", "asian", "native", "other"], [1, 2, 3, 4, 5], inplace=True) pat_imm.ETHNICITY.replace(["nonhispanic", "hispanic"], [0, 1], inplace=True)

Für BIRHTPLACE ist das relativ viel schreibarbeit, gehe davon aus, dass es auch eine Funktion für sowas gibt, müsste ich aber selbst suchen erstmal. Vielleicht bei SciKit Learn unter dem Stichpunkt Data Preprocessing

BG Leo :)

fphans commented 3 years ago

so war jetzt meine abfrage

ich galub edas ist quasi der kompollizierte weg zum ziel. leider laufen die ml skripte bei mir nicht da irgendiwe die arrays unterschiedlich lang sind...

lknegendorf commented 3 years ago

Ok ML läuft, würde es mal schließen, Ergebnisse müssen dann noch rein nach Absprache (aber siehe #47 und #51 )