Ünite 6 / 11

Kimyasal Veri Analizi ve Python: pandas, Stokiyometri ve Kalibrasyon

Kazanimlar:

  • Sayısal sonuçları dil modelinin sözlü tahminine değil çalıştırılmış Python koduna dayandırabilme
  • Stokiyometri, kalibrasyon ve veri temizleme kodunu yapay zekaya yazdırıp cevabı bilinen örneklerle test edebilme
  • Birimleri her zaman açık vererek ve mertebe kontrolü yaparak veri analizi hatalarını önleyebilme

Kimya sayılarla doludur: tartımlar, hacimler, absorbans değerleri, verimler, konsantrasyonlar. Bu verileri elle işlemek yavaş ve hataya açıktır. YZ burada iki büyük hizmet sunar: (1) veriyi işleyen Python kodu yazar, (2) o kodu (kod çalıştırabilen bir ortamda) çalıştırıp deterministik sonuç verir. Kritik ilke şudur: hesabı dil modelinin "sözlü tahminine" değil, çalıştırılmış kodun çıktısına bırakın. Dil modeli "142 × 0,05 kaçtır?" sorusuna bazen yanlış cevap verebilir; ama yazdığı Python satırı her zaman doğru hesaplar. Bu ünitede YZ ile kimyasal veri analizini bu felsefeyle öğreneceğiz.

Neden kod, sözlü tahminden iyi?

Bir dil modeli aritmetiği "olası sonucu tahmin ederek" yapar; bu yüzden büyük sayılarda veya çok adımlı hesapta yanılabilir. Oysa Python'da 142 * 0.05 ifadesi deterministiktir: her zaman 7,1 verir. Bu yüzden strateji: YZ'ye hesabı yaptırma, hesabın KODUNU yazdır ve kodu çalıştır. Böylece YZ'nin yaratıcılığını (kodu kurma) kullanır, güvenilmez yanını (kafadan aritmetik) devre dışı bırakırsınız.

İpucu: Bir YZ'den sayısal sonuç aldığınızda "bunu bir Python satırıyla göster" deyin. Kodun kendisi hem hesabı doğrular hem de sizin çalıştırıp teyit etmenizi sağlar. Kod görmüyorsanız, sayıya güvenmeyin.

Kimyada tipik veri analizi görevleri

  • Stokiyometri: mol, kütle, sınırlayıcı reaktif, teorik verim, yüzde verim hesabı.
  • Konsantrasyon: molarite, seyreltme (M1V1 = M2V2), ppm dönüşümleri.
  • Kalibrasyon: Beer-Lambert yasasıyla (absorbans ∝ konsantrasyon) kalibrasyon doğrusu çizme ve bilinmeyeni hesaplama.
  • Veri temizleme: pandas ile ölçüm tablolarını okuma, aykırı değerleri işaretleme, ortalama/standart sapma.
  • Görselleştirme: kalibrasyon eğrisi, kinetik grafiği, titrasyon eğrisi çizme.

Adım adım: YZ ile güvenli veri analizi

  1. Veriyi tanımla: Sütunları, birimleri, örnek satırları açıkça verin. Birim yoksa YZ varsayım yapar.
  2. Kod iste, sonuç değil: "Bunu hesaplayan pandas/NumPy kodunu yaz" deyin.
  3. Kodu çalıştır: Kendiniz veya kod çalıştırabilen ortamda çalıştırın.
  4. Basit durumla test et: Cevabı bildiğiniz küçük bir örnekle kodu sınayın.
  5. Birim ve mertebe kontrolü: Sonucun birimi ve büyüklüğü fiziksel olarak makul mü?
  6. Belgelendir: Kodu ve çıktıyı deney defterine ekleyin (8. ünite).

Dört kopyalanabilir şablon

1) Stokiyometri ve yüzde verim:

Reaksiyon: salisilik asit (MA 138,12) + asetik anhidrit -> aspirin (MA 180,16).Veri: 2,00 g salisilik asit kullanıldı, asetik anhidrit fazlada.Elde edilen aspirin: 2,15 g.Görev: Teorik verimi ve yüzde verimi hesaplayan Python kodunu yaz.Molekül ağırlıklarını değişken olarak tanımla, sonucu birimiyle yazdır.Kafadan hesap yapma; sadece çalıştırılabilir kod ver.

2) Beer-Lambert kalibrasyon:

Kalibrasyon verisi (konsantrasyon mol/L -> absorbans):0.00->0.02, 0.02->0.21, 0.04->0.40, 0.06->0.62, 0.08->0.79.Bilinmeyen örnek absorbansı: 0.50.Görev: numpy.polyfit ile doğrusal kalibrasyon yap,eğim/kesişimi ve R^2'yi hesapla, bilinmeyen konsantrasyonu bul.matplotlib ile veri + uyum doğrusunu çiz.

3) pandas ile ölçüm tablosu:

Elimde bir CSV var: sütunlar = numune, tartim_g, hacim_mL, absorbans.Görev: pandas ile oku, her numune için konsantrasyon (g/L) hesapla,absorbans < 0 olan satırları hatalı olarak işaretle,grupların ortalama ve std sapmasını yazdıran kod ver.Birimleri yorum satırıyla belirt.

4) Seyreltme hesabı doğrulama:

0,5 M stok çözeltiden 100 mL, 0,05 M çözelti hazırlamak istiyorum.Görev: M1V1=M2V2 ile gereken stok hacmini hesaplayan Python satırını yaz.Sonucu mL cinsinden yazdır ve mantık kontrolü için 10 kat seyreltmebeklendiğini yorum olarak doğrula.

Zayıf prompt / Güçlü prompt

Zayıf:

2 gram salisilik asitten ne kadar aspirin çıkar?

YZ kafadan bir sayı verir; molekül ağırlıklarını yanlış hatırlarsa sonuç bozulur ve nasıl hesaplandığı görünmez.

Güçlü:

salisilik asit MA=138,12, aspirin MA=180,16, kütle=2,00 g, verim %100 varsay.Görev: Teorik aspirin kütlesini hesaplayan Python kodunu yaz;her adımı yorumla (mol -> mol -> kütle), sonucu g cinsinden yazdır.

Fark: molekül ağırlıkları verildi, kod istendi, adımlar yorumlandı, birim belirtildi. Sonuç hem doğru hem denetlenebilir.

Sözlü tahmin vs. çalıştırılmış kod

Boyut

Dil modeli sözlü tahmin

Çalıştırılmış Python

Aritmetik doğruluk

Değişken, hata olabilir

Deterministik, kesin

Denetlenebilirlik

Düşük (nasıl çıktığı belirsiz)

Yüksek (kod görünür)

Tekrarlanabilirlik

Düşük

Yüksek

Birim takibi

Zayıf

Kod içinde açık tutulabilir

Uygun kullanım

Fikir, yapı kurma

Nihai sayısal sonuç

Mini vakalar

Vaka 1 — Sözlü aritmetik hatası. Bir öğrenci YZ'ye "0,0145 mol × 180,16 g/mol?" diye sordu; YZ "2,72 g" dedi. Doğrusu 2,61 g. Öğrenci "bunu Python'da göster" deyince YZ 0.0145 * 180.16 yazdı ve 2,612 çıktı; ilk sözlü cevap yanlıştı. Ders: çok basit çarpımda bile kodu tercih edin.

Vaka 2 — Kalibrasyonda R² kontrolü. Bir kullanıcı Beer-Lambert kalibrasyonu yaptırdı; R² = 0,981 çıktı. YZ "doğrusal, güvenilir" dedi ama en yüksek konsantrasyondaki nokta doğrunun altındaydı (doygunluk). Kullanıcı grafiği görünce en yüksek noktayı doğrusal aralık dışı bıraktı, R² 0,999'a çıktı. Ders: R² tek başına yeterli değil; artıkları/grafiği görün.

Vaka 3 — Birim karışıklığı. Bir analizde konsantrasyon mg/L mi g/L mi belirsizdi; YZ g/L varsaydı ve sonuçlar 1000 kat yanlış çıktı. Kullanıcı sütun birimini açıkça belirtince düzeldi. Ders: birimi her zaman açık verin, YZ varsayımı pahalıya patlar.

Sık yapılan hatalar

  • Sözlü sayıya güvenmek. Kafadan aritmetik yerine her zaman kod isteyin ve çalıştırın.
  • Birim belirtmemek. mg/L ile g/L, mL ile L karışması 1000 kat hataya yol açar.
  • Kodu test etmemek. Cevabı bilinen küçük bir örnekle sınamadan büyük veriye uygulamak.
  • R²'yi tek ölçüt saymak. Doğrusallık dışına çıkan noktaları grafikle görmeden güvenmek.
  • Sınayıcı reaktifi atlamak. Stokiyometride sınırlayıcı reaktifi belirlemeden teorik verim hesaplamak.
  • Anlamlı basamak taşkınlığı. Ölçüm 3 anlamlı basamakken sonucu 8 basamakla raporlamak.
Dikkat: YZ'nin yazdığı kod bile hatalı olabilir (yanlış sütun adı, yanlış formül). Kodu çalıştırmak sonucu deterministik yapar ama kodun doğru şeyi hesapladığını cevabı bilinen bir örnekle siz teyit etmelisiniz.

Özetle

  • Sayısal sonuçları dil modelinin sözlü tahminine değil, çalıştırılmış Python koduna bırakın.
  • YZ kimyasal veri analizinde stokiyometri, kalibrasyon, veri temizleme ve görselleştirme kodunu hızla yazar.
  • Birimleri her zaman açık verin; birim karışıklığı en pahalı hatadır.
  • Kalibrasyonda R²'ye ek olarak artıkları ve grafiği inceleyin.
  • Kodu cevabı bilinen basit bir örnekle test edin; kodun doğruluğunu insan onaylar.

Uygulama görevi

Bir kalibrasyon veya stokiyometri veri setiniz olsun (yoksa yukarıdaki Beer-Lambert verisini kullanın). YZ'den analizi yapan Python kodunu isteyin (sonucu değil, kodu). Kodu çalıştırın; sonra cevabı bilinen küçük bir örnekle test edin. Aynı hesabı bir de YZ'ye sözlü sorun ve iki sonucu karşılaştırın: fark var mı? Kalibrasyonda R² ve artık grafiğini yorumlayın. Kod, çıktı ve kısa yorumu bir belgeye koyun.

Kontrol listesi

  • [ ] Sayısal sonuçları koddan alıyorum, sözlü tahminden değil.
  • [ ] Her veri sütununun birimini açıkça belirtiyorum.
  • [ ] Kodu cevabı bilinen küçük bir örnekle test ediyorum.
  • [ ] Kalibrasyonda R² yanında artık/grafik incelemesi yapıyorum.
  • [ ] Stokiyometride sınırlayıcı reaktifi belirliyorum.
  • [ ] Sonuçları uygun anlamlı basamakla raporluyorum.