Yksikkö 6 / 11

Kemiallisen tiedon analyysi ja Python: pandat, stoikiometria ja kalibrointi

Voitot:

  • Kyky perustaa numeeriset tulokset suoritettuun Python-koodiin kielimallin sanallisen arvaamisen sijaan
  • Kyky kirjoittaa stoikiometria-, kalibrointi- ja tietojen puhdistuskoodi tekoälylle ja testata sitä näytteillä, joilla on tiedossa olevat vastaukset
  • Kyky estää tietojen analysointivirheet määrittämällä aina yksiköt ja tarkistamalla niiden järjestys

Kemia on täynnä lukuja: punnitukset, tilavuudet, absorbanssiarvot, saannot, pitoisuudet. Näiden tietojen manuaalinen käsittely on hidasta ja virhealtista. Tekoäly tarjoaa tässä kaksi pääpalvelua: (1) kirjoittaa Python-koodin, joka käsittelee tiedot, (2) suorittaa koodin (ympäristössä, joka voi suorittaa koodin) ja antaa deterministisen tuloksen. Kriittinen periaate on tämä: jätä laskenta suoritetun koodin ulostulolle, ei kielimallin "verbaaliselle ennusteelle". Kielimalli "Mikä on 142 × 0,05?" saattaa joskus vastata kysymykseen väärin; mutta hänen kirjoittamansa Python-rivi laskee aina oikein. Tässä osiossa opimme kemiallista data-analyysiä tekoälyn kanssa tällä filosofialla.

Miksi koodi on parempi kuin sanallinen arvaus?

Kielimalli tekee aritmetiikkaa "ennustamalla mahdollisen tuloksen"; joten se voi olla väärin suurilla luvuilla tai monivaiheisessa laskennassa. Pythonissa lauseke 142 * 0.05 on deterministinen: se palauttaa aina arvon 7.1. Joten strategia: älä pakota tekoälyä tekemään laskelmia, tulosta laskelman KOODI ja suorita koodi. Joten käytät tekoälyn luovuutta (koodin rakentaminen) ja poistat epäluotettavan puolen käytöstä (pään aritmetiikka).

Vinkki: Kun saat tekoälystä numeerisen tuloksen, sano "esitä tämä Python-rivillä". Koodi itse vahvistaa tilin ja antaa sinun suorittaa sen ja vahvistaa sen. Jos et näe koodia, älä luota numeroon.

Tyypillisiä data-analyysitehtäviä kemiassa

  • Stökiömetria: mooli, massa, rajoittava reagenssi, teoreettinen saanto, prosentuaalinen saantolaskenta.
  • Pitoisuus: molaarisuus, laimennus (M1V1 = M2V2), ppm-konversiot.
  • Kalibrointi: Kalibrointiviivan piirtäminen Beer-Lambertin lailla (absorbanssi ∝ konsentraatio) ja tuntemattoman laskeminen.
  • Tietojen puhdistus: mittaustaulukoiden lukeminen pandoilla, liputuspoikkeamat, keskiarvo/keskihajonta.
  • Visualisointi: kalibrointikäyrän piirtäminen, kinetiikkakäyrä, titrauskäyrä.

Askel askeleelta: Turvallinen tietojen analysointi tekoälyllä

  1. Määritä tiedot: Anna selkeästi sarakkeet, yksiköt, näyterivit. Jos yksikköä ei ole, tekoäly tekee oletuksia.
  2. Pyydä koodia, ei tuloksia: sano "Kirjoita pandas/NumPy koodi, joka laskee tämän".
  3. Suorita koodi: Suorita se itse tai ympäristössä, joka voi suorittaa koodia.
  4. Testaa yksinkertaisella tapauksella: Testaa koodia pienellä esimerkillä, josta tiedät vastauksen.
  5. Yksikön ja järjestyksen tarkistus: Ovatko tuloksen yksikkö ja suuruus fyysisesti kohtuullisia?
  6. Asiakirja: Lisää koodi ja tulos koemuistikirjaan (yksikkö 8).

Neljä kopioitavaa mallia

1) Stökiometria ja prosentuaalinen saanto:

Reaktio: salisyylihappo (MA 138.12) + etikkahappoanhydridi -> aspiriini (MA 180.16).Tiedot: Salisyylihappoa käytettiin 2,00 g, etikkahappoanhydridiä oli ylimäärin. Saatu aspiriini: 2,15 g. Tehtävä: Kirjoita Python-koodi, joka laskee tuottoprosentin, tulostettavan tuottoprosentin. tulos yksiköissä.Älä laske päässä; anna vain suoritettava koodi.

2) Beer-Lambert-kalibrointi:

Kalibrointitiedot (pitoisuus mol/L -> absorbanssi): 0,00->0,02, 0,02->0,21, 0,04->0,40, 0,06->0,62, 0,08->0,79. Tuntematon näytteen absorbanssi: 0,50. Tehtävä: Suorita lineaarinen kalibrointi komennolla numpy.polyfit, kulmakerroin/leikkaus ja Laske R^2, etsi tuntematon pitoisuus. Piirrä data + sovitusviiva matplotlibillä.

3) mittauskaavio pandoilla:

Minulla on CSV: kolonnit = näyte, paino_g, tilavuus_mL, absorbanssi. Tehtävä: lue pandoilla, laske pitoisuus (g/L) kullekin näytteelle, merkitse rivit, joiden absorbanssi < 0 virheellisiksi, anna koodi, jolla tulostetaan ryhmien keskiarvo ja std poikkeama. Määritä yksiköt kommenttirivillä.

4) Laimennustilin vahvistus:

Haluan valmistaa 100 ml 0,05 M liuosta 0,5 M varastoliuoksesta. Tehtävä: Kirjoita Python-rivi, joka laskee tarvittavan varastomäärän M1V1=M2V2. Tulosta tulos ml:na ja vahvista kommentilla, että loogisessa tarkistuksessa odotetaan 10-kertaista laimentumista.

Heikko kehote / Vahva kehote

Heikko:

Kuinka paljon aspiriinia saadaan 2 grammasta salisyylihappoa?

AI antaa numeron päästä; Jos se muistaa molekyylipainot väärin, tulos vääristyy eikä sen laskemistapa näy.

Vahva:

Oletetaan, että salisyylihappo MA=138,12, aspiriini MA=180,16, massa=2,00 g, saanto 100 %. Tehtävä: Kirjoita Python-koodi, joka laskee aspiriinin teoreettisen massan; kommentoi jokaista vaihetta (mooli -> mol -> massa), tulosta tulos g.

Ero: molekyylipainot annettu, pyydetty koodi, vaiheet kommentoitu, yksikkö määritetty. Tulos on sekä tarkka että tarkastettavissa.

Sanallinen ennustus jne. suoritettu koodi

Koko

Kielimallin sanallinen ennustus

Python-juoksu

Aritmeettinen tarkkuus

Muuttuva, voi tapahtua virhe

Deterministinen, varma

Tarkastettavuus

Keskenmeno (ei ole selvää, miten se selvisi)

Korkea (koodi näkyvissä)

toistettavuus

alhainen

korkea

Yksikön seuranta

heikko

Voidaan pitää auki koodissa

Oikea käyttö

Idea, rakennuksen rakenne

Lopullinen numeerinen tulos

minikotelot

Tapaus 1 – Sanallinen aritmeettinen virhe. Opiskelija kysyy AI:ta "0,0145 mol × 180,16 g/mol?" hän kysyi; "2,72 g", AI sanoi. Itse asiassa se on 2,61 g. Kun opiskelija sanoi "näytä tämä Pythonissa", YZ kirjoitti 0,0145 * 180,16 ja se tuli 2 612; Ensimmäinen sanallinen vastaus oli väärä. Oppitunti: suosi koodia jopa hyvin yksinkertaisessa kertolaskussa.

Tapaus 2 – R²-tarkistuskalibrointi. Yksi käyttäjä teki Beer-Lambert-kalibroinnin; Osoittautuu, että R² = 0,981. AI sanoi "lineaarinen, luotettava", mutta korkeimman pitoisuuden piste oli viivan alapuolella (kylläisyys). Kun käyttäjä näki kaavion, se siirsi korkeimman kohdan lineaarisen alueen ulkopuolelle, R² nousi arvoon 0,999. Oppitunti: R² ei yksin riitä; katso jäännökset / juoni.

Tapaus 3 – Yksikön hämmennys. Yhdessä analyysissä oli epäselvää, oliko pitoisuus mg/l vai g/l; Tekoäly oletti g/l:n ja tulokset olivat 1000 kertaa väärät. Se korjattiin, kun käyttäjä tarkasti sarakeyksikön. Oppitunti: vaihda yksikkö aina lyhyeksi olettaen, että tekoäly on kallista.

Yleisiä virheitä

  • Sanalliseen numeroon luottaen. Pyydä ja suorita aina koodia mielenlaskennan sijaan.
  • Yksikköä ei määritetä. Sekoittaminen mg/L kanssa g/l, ml L:n kanssa aiheuttaa 1000-kertaisen virheen.
  • Ei testata koodia. Isoon dataan soveltaminen ilman testausta pienellä esimerkillä, jossa vastaus tiedetään.
  • Ottaen huomioon R²:n ainoana kriteerinä. Luotetaan epälineaarisuuspisteisiin näkemättä niitä graafisesti.
  • Ohita testerireagenssi. Lasketaan teoreettinen saanto ilman rajoittavaa reagenssia stoikiometrisesti.
  • Merkittävä askeltulva. Tuloksen ilmoittaminen 8-numeroiseksi, kun mittaus on 3 merkitsevää numeroa.
Varoitus: Jopa AI:n kirjoittama koodi voi olla viallinen (väärä sarakkeen nimi, väärä kaava). Koodin suorittaminen tekee tuloksesta deterministisen, mutta sinun on vahvistettava tunnetulla esimerkillä, että koodi laskee oikein.

Yhteenvetona

  • Jätä numeeriset tulokset suoritettuun Python-koodiin, älä kielimallin sanalliseen arvaukseen.
  • Tekoäly kirjoittaa nopeasti koodin stoikiometriaa, kalibrointia, tietojen puhdistusta ja visualisointia varten kemiallisten tietojen analysoinnissa.
  • Laita yksiköt aina päälle; Yksikön sekaannus on kallein virhe.
  • Tarkasta jäännökset ja kuvaaja R²:n lisäksi kalibroinnissa.
  • Testaa koodia yksinkertaisella esimerkillä tunnetulla vastauksella; Ihminen tarkistaa koodin tarkkuuden.

Sovellustehtävä

Käytä kalibrointi- tai stoikiometriatietojoukkoa (jos ei, käytä yllä olevia Beer-Lambert-tietoja). Pyydä tekoälyltä Python-koodi, joka tekee analyysin (koodi, ei tulos). Suorita koodi; sitten testaa sitä pienellä otoksella tunnettuja vastauksia. Pyydä tekoälyltä suullisesti sama laskelma ja vertaa kahta tulosta: onko eroa? Tulkitse R²:n ja jäännöksen käyrä kalibroinnissa. Laita koodi, tulos ja lyhyt kommentti dokumenttiin.

tarkistuslista

  • [ ] Saan numeeriset tulokset koodista, en sanallisesta arvauksesta.
  • [ ] Ilmoitan selvästi kunkin tietosarakkeen yksikön.
  • [ ] Testaan ​​koodia pienellä näytteellä, jonka vastaus on tiedossa.
  • [ ] Teen jäännös-/kaavioanalyysin R²:n vieressä kalibroinnissa.
  • [ ] Määritän rajoittavan reagenssin stoikiometriassa.
  • [ ] Ilmoitan tulokset sopivalla merkitsevällä numerolla.