Enhet 6 / 11

Kjemisk dataanalyse og Python: pandaer, støkiometri og kalibrering

Gevinster:

  • Evne til å basere numeriske resultater på utført Python-kode i stedet for verbal gjetting av språkmodellen
  • Evne til å skrive støkiometri-, kalibrerings- og datarensekoden til kunstig intelligens og teste den med prøver med kjente svar
  • Evne til å forhindre dataanalysefeil ved alltid å spesifisere enheter og sjekke rekkefølgen deres

Kjemi er full av tall: veiinger, volumer, absorbansverdier, utbytter, konsentrasjoner. Behandling av disse dataene manuelt er treg og utsatt for feil. AI tilbyr to hovedtjenester her: (1) skriver Python-kode som behandler dataene, (2) kjører den koden (i et miljø som kan kjøre koden) og gir et deterministisk resultat. Det kritiske prinsippet er dette: overlat beregningen til utdataene fra den utførte koden, ikke til den "verbale prediksjonen" til språkmodellen. Språkmodell "Hva er 142 × 0,05?" kan noen ganger svare feil på spørsmålet; men Python-linjen han skriver regner alltid riktig. I denne enheten vil vi lære kjemisk dataanalyse med AI med denne filosofien.

Hvorfor er kode bedre enn verbal gjetting?

En språkmodell gjør aritmetikk ved å "forutsi det mulige utfallet"; så det kan være feil med store tall eller flertrinnsregning. Mens uttrykket 142 * 0,05 i Python er deterministisk: det returnerer alltid 7,1. Så strategi: ikke få AI til å regne ut, skriv ut KODE for beregningen og kjør koden. Så du bruker kreativiteten til AI (bygger koden) og deaktiverer den upålitelige siden (hodearitmetikk).

Tips: Når du får et numerisk resultat fra en AI, si "representer dette med en linje med Python." Selve koden både bekrefter kontoen og lar deg kjøre den og bekrefte den. Hvis du ikke ser en kode, ikke stol på nummeret.

Typiske dataanalyseoppgaver i kjemi

  • Støkiometri: mol, masse, begrensende reagens, teoretisk utbytte, prosent utbytteberegning.
  • Konsentrasjon: molaritet, fortynning (M1V1 = M2V2), ppm konverteringer.
  • Kalibrering: Å tegne en kalibreringslinje med Beer-Lambert-loven (absorbans ∝ konsentrasjon) og beregne det ukjente.
  • Datarensing: avlesning av måletabeller med pandaer, flagging utligger, gjennomsnitt/standardavvik.
  • Visualisering: tegning av kalibreringskurve, kinetikkgraf, titreringskurve.

Trinn for trinn: Sikker dataanalyse med AI

  1. Definer data: Gi tydelige kolonner, enheter, eksempelrader. Hvis det ikke er noen enhet, gjør AI antagelser.
  2. Be om kode, ikke resultater: si "Skriv pandaer/NumPy-kode som beregner dette".
  3. Kjør koden: Kjør den selv eller i et miljø som kan kjøre kode.
  4. Test med enkel sak: Test koden med et lite eksempel der du vet svaret.
  5. Enhets- og ordresjekk: Er enheten og størrelsen på resultatet fysisk rimelig?
  6. Dokument: Legg til koden og utdataene i eksperimentnotatboken (enhet 8).

Fire kopierbare maler

1) Støkiometri og prosentvis utbytte:

Reaksjon: salisylsyre (MA 138.12) + eddiksyreanhydrid -> aspirin (MA 180.16).Data: Det ble brukt 2,00 g salisylsyre, eddiksyreanhydrid var i overkant.Aspirin oppnådd: 2,15 g.Oppgave: Skriv Python-kode som beregner teoretisk definert molvekt og beregnet definert molvekt. variabler, skriv ut resultatet i enheter.Ikke beregn i hode; bare gi kjørbar kode.

2) Beer-Lambert-kalibrering:

Kalibreringsdata (konsentrasjon mol/L -> absorbans): 0,00->0,02, 0,02->0,21, 0,04->0,40, 0,06->0,62, 0,08->0,79. Ukjent prøveabsorbans: 0,50. Oppgave: Utfør lineær kalibrering med numpy.polyfit, slope/intercept og Beregn R^2, finn den ukjente konsentrasjonen. Plott data + fit-linjen med matplotlib.

3) målediagram med pandaer:

Jeg har en CSV: kolonner = prøve, vei_g, volum_ml, absorbans. Oppgave: les med pandaer, beregn konsentrasjon (g/L) for hver prøve, merk rader med absorbans < 0 som feil, gi kode for å skrive ut gjennomsnitt og standardavvik for gruppene. Spesifiser enhetene med en kommentarlinje.

4) Verifisering av utvanningskonto:

Jeg vil tilberede 100 mL 0,05 M løsning fra 0,5 M stamløsning. Oppgave: Skriv Python-linjen som beregner nødvendig lagervolum med M1V1=M2V2. Skriv ut resultatet i mL og verifiser som en kommentar at det forventes en 10 gangers fortynning for en logisk sjekk.

Svak forespørsel / Sterk forespørsel

Svak:

Hvor mye aspirin kommer fra 2 gram salisylsyre?

AI gir et tall fra hodet; Hvis den husker molekylvektene feil, vil resultatet bli forvrengt og hvordan det ble beregnet vil ikke være synlig.

Sterk:

Anta salisylsyre MA=138,12, aspirin MA=180,16, masse=2,00 g, utbytte 100%.Oppgave: Skriv Python-kode som beregner den teoretiske massen til aspirin; kommenter hvert trinn (mol -> mol -> masse), skriv ut resultatet i g.

Forskjell: molekylvekter gitt, kode forespurt, trinn kommentert, enhet spesifisert. Resultatet er både nøyaktig og kontrollerbart.

Verbal prediksjon etc. utført kode

Størrelse

Språkmodell verbal prediksjon

Python-løp

Aritmetisk nøyaktighet

Variabel, feil kan oppstå

Deterministisk, sikkert

Reviderbarhet

Abort (det er uklart hvordan det kom ut)

Høy (kode synlig)

repeterbarhet

lav

høy

Enhetssporing

svak

Kan holdes åpen i kode

Riktig bruk

Idé, bygningsstruktur

Endelig numerisk resultat

minisaker

Tilfelle 1 — Verbal regnefeil. En student spør AI "0,0145 mol × 180,16 g/mol?" spurte han; "2,72 g," sa AI. Faktisk er det 2,61g. Da studenten sa "vis dette i Python", skrev YZ 0,0145 * 180,16 og det kom ut som 2,612; Det første verbale svaret var feil. Leksjon: foretrekk kode selv for veldig enkel multiplikasjon.

Tilfelle 2 — R² sjekk inn kalibrering. En bruker fikk utført en Beer-Lambert-kalibrering; Det viser seg at R² = 0,981. AI sa "lineær, pålitelig", men punktet med den høyeste konsentrasjonen var under linjen (metning). Når brukeren så grafen, flyttet den det høyeste punktet ut av det lineære området, R² økte til 0,999. Leksjon: R² alene er ikke nok; se rester/plott.

Tilfelle 3 — Enhetsforvirring. I en analyse var det uklart om konsentrasjonen var mg/L eller g/L; AI antok g/L og resultatene var 1000 ganger feil. Det ble løst da brukeren spesifiserte kolonneenheten eksplisitt. Leksjon: Forkort alltid enheten, forutsatt at AI er dyrt.

Vanlige feil

  • Stoler på verbalt nummer. Be alltid om og kjør kode i stedet for å utføre hoderegning.
  • Spesifiserer ikke enheten. Blanding av mg/L med g/L, mL med L, forårsaker en 1000 ganger feil.
  • Tester ikke koden. Bruker på big data uten å teste med et lite eksempel hvor svaret er kjent.
  • Vurderer R² som det eneste kriteriet. Å stole på ikke-linearitetspunktene uten å se dem grafisk.
  • Hopp over testreagensen. Beregning av teoretisk utbytte uten å bestemme begrensende reagens i støkiometri.
  • Betydelig skritt-utgytelse. Rapportering av resultatet til 8 siffer når målingen er 3 signifikante siffer.
Forsiktig: Selv koden AI skriver kan være feil (feil kolonnenavn, feil formel). Kjøring av koden gjør resultatet deterministisk, men du må bekrefte med et kjent eksempel at koden beregner det riktige.

Oppsummert

  • Overlat de numeriske resultatene til den utførte Python-koden, ikke til den verbale gjetningen til språkmodellen.
  • AI skriver raskt kode for støkiometri, kalibrering, datarensing og visualisering i kjemisk dataanalyse.
  • Sett alltid enheter på; Enhetsforvirring er den dyreste feilen.
  • Undersøk restene og grafen i tillegg til R² i kalibreringen.
  • Test koden med et enkelt eksempel med et kjent svar; Human verifiserer nøyaktigheten til koden.

Søknadsoppgave

Ha et kalibrerings- eller støkiometridatasett (hvis ikke, bruk Beer-Lambert-dataene ovenfor). Spør AI om Python-koden som gjør analysen (koden, ikke resultatet). Kjør koden; så test det med et lite utvalg kjente svar. Spør AI verbalt om den samme beregningen og sammenlign de to resultatene: er det en forskjell? Tolk plottet av R² og residual i kalibrering. Legg inn koden, utdataene og den korte kommentaren i et dokument.

sjekkliste

  • [ ] Jeg får de numeriske resultatene fra koden, ikke fra den verbale gjetningen.
  • [ ] Jeg angir tydelig enheten for hver datakolonne.
  • [ ] Jeg tester koden med en liten prøve hvis svaret er kjent.
  • [ ] Jeg utfører rest-/grafanalyse ved siden av R² i kalibrering.
  • [ ] Jeg bestemmer det begrensende reagenset i støkiometri.
  • [ ] Jeg rapporterer resultatene med riktig signifikant siffer.