AI (open AI, Gemini, stb.) használata adatelemzésre

Sziasztok!

Tapasztalatokra lennék kíváncsi, főleg azokéra akik statisztikával foglalkoznak. 
Mennyire tekinthetők pontosnak az AI modellek statisztikai számításoknál. Főként arról van szó, hogy megkap egy pl. Excel táblázatot adatokkal és abból neki statisztikai számításokat kell elvégeznie. Fel kell ismernie a csoportosításokat, összefüggést kell találnia egyes csoportok között, prevalencia kalkuláció, stb. Ebben jól számol (sajnos fogalmi kérdésben vannak problémák...a butaságot is olyan meggyőződéssel előadja, hogy félelmetes :))

Vagy ha nem openAI (chatGPT) akkor melyik modell a legalkalmasabb erre a feladatra?

Köszönöm előre is! 

Hozzászólások

Erre szerintem nem lesz egzakt válasz, csinálj néhány próbát, és kérd meg, hogy az elemzéshez használt kódot is adja oda.

Vagy előre definiált feladatok vannak? Mert akkor te add neki a te kódodat :)

Adatelemzéshez nem használnék publikus LLM modellt, nem erre vannak kitenyésztve.

Pythonban, R-ben rengetek adatelemzéshez hasznos modellt találsz, nézz utána, hogy a Te adataidhoz hasonlóakra milyen modellt ajánlanak.

Az mindeképp szükséges, hogy értelmezni tudd az adataidat olyan szinten, hogy miket tartalmaz, milyen formában, milyen összefüggésekre vagy kiváncsi, mert különben nagyon félremehet az elemzés és észre sem veszed, hogy butaság az eredmény.

Szüksége lehet az adatok normalizálására, közös alapra hozására ahhoz, hogy a valódi összefüggések érdemben megjelenjenek.

Itt találsz pár alapfogalmat, ha még nem foglalkoztál ilyennel mélyebben: https://realpython.com/python-for-data-analysis/

De ez is alaposnak tűnik, ennyit időt megér, hogy utána hónapokat spórolhass: https://www.youtube.com/watch?v=wUSDVGivd-8

Persze , hogy végül milyen modellt használsz, az a feladattól függ, de jó, ha mérni tudod a jóságát és ha újra tanítani nem is érdemes (idő és erőforrás), az utolsó pár réteget érdemes finomhangolni.

Kb. annyi ido alatt, amig begepelem a promptot - ertelemszeruen en is LLM-mel csinalnam. Viszont te is megadtad, hogy most klaszterezest szeretnel, vagy hogy illesszen a megadott pontokra adott gorbet. Az eredetiben meg arrol volt szo, hogy beont a gepbe egy halom szamot, es majd magatol kitalalja, hogy mit kell csinalni. Ez jelenleg nem megy.

A strange game. The only winning move is not to play. How about a nice game of chess?

beont a gepbe egy halom szamot, es majd magatol kitalalja, hogy mit kell csinalni. Ez jelenleg nem megy

Ezt csak óvatosan mondom, mert most nem tudom hirtelen bizonyítékkal megcáfolni, de szerintem akár mehetne is. Elég sokféle thinking model van már, ami simán tud ötletelni meg Pythonnal elemzéseket futtatni

Igen, talán a kis , közepes cégeknek is lehetősége lesz ilyesmiket kipróbálni. Persze tudniuk kell ezekről a fogalmakról. Más kérdés hogy sok minden ezekből ott van már igen régóta az excelben.  De kódoláshoz is programozáshoz is jó. PL a pandast nem ismerem, pikk pakk megírta a kódot. Az eredményeket persze értelmezni kell, aki nem ismeri az alapfogalmakat annak marad a összeadom az éves forgalmat és elosztom 12-vel. Mint a legtöbb esetben. 

Szerkesztve: 2025. 08. 19., k – 22:36

hat tenyleges szamolast semmikepp nem biznek llm-re. inkabb arra jok, hogy kigyujtson adatokat rendezett formaba, de ha jol ertem ez mar megvan (xls), tehat csak szamolni kell. arra meg vannak celszoftverek, pl spss

Nagyjából semennyire. Számításokat, OpenAI-nál maradva, function calling-al (vagy tool callingnak is nevezik ugyanaz) delegálni kellene egy célalkalmazásnak (matlab, spss stb) azt kell a modellnek elmondani hogyan kell igénybe vennie, azt majd neki kell "tudni" munka közben hogy használni kell
https://platform.openai.com/docs/guides/function-calling?lang=python

Viszont van az a megjegyzésed, hogy "Fel kell ismernie a csoportosításokat, összefüggést kell találnia egyes csoportok között" nagy (szám)adatsorokban mintákat egy llm nem tudom felismer-e, ez nem erről szól hanem szöveggenerálásról (ha úgy alakul simán bekamuzza a generált szövegben hogy felismert valamit, lehet még tudományos hátteret is költ hozzá, de ez ne tévesszen meg). Arra vagy kíváncsi, hogy MI módszerek pl. felügyelet néküli tanulás az adatelemzési célodra használhatók-e? Mert igen, de ez nem egy llm.  Gépi tanulás =/= generatív mi. 

igazatok van. Ezért kérdeztem mert leteszteltem és bekamuzott dolgokat. Ismerkedem a python+pandas kombóval :) Lehet hamarabb megtanulom a nekem szükséges dolgokat minthogy megkeresem az AI tévedéseit...

Szerkesztve: 2025. 08. 26., k – 15:47

Adatelemzéshez nem használnék publikus LLM modellt,

Én sem , mert macerás, de tud számolni , megnéztem, jó az eredmény:

Csinálj egy regressziós görbét  az alábbi adatokból a legkisebb négyzetek módszerével. Az adatok 1 , 5 , 3,5

Az eredmény kivonatolva:

 

 

📊 Kiinduló adatok

Feltételezzük, hogy az adatok egy idősort jelentenek, tehát az x értékek az időt (vagy sorszámot) jelölik:

  • x = [1, 2, 3]

  • y = [1, 5, 3.5]

Meredekség (a):

a=3×21.5−6×9.53×14−62=64.5−5742−36=7.56=1.25a = \frac{3×21.5 - 6×9.5}{3×14 - 6^2} = \frac{64.5 - 57}{42 - 36} = \frac{7.5}{6} = 1.25

Metszéspont (b):

b=9.5−1.25×63=9.5−7.53=23≈0.6667b = \frac{9.5 - 1.25×6}{3} = \frac{9.5 - 7.5}{3} = \frac{2}{3} ≈ 0.6667

✅ Eredmény

A legkisebb négyzetek módszerével illesztett lineáris trendvonal:

y = 1.25·x + 0.6667

 

******************************************************************************

*******************************************************************************

*********************************************************************************

 

 

Mekkora a lináris görbe korellációs eggyütthatója?

Nagyszerű kérdés! Nézzük meg, hogyan számoljuk ki a lineáris korrelációs együtthatót (r), amely megmutatja, mennyire erős a kapcsolat az x és y értékek között 📈

📊 Kiinduló adatok

Korábbi feltételezés alapján:

  • x = [1, 2, 3]

  • y = [1, 5, 3.5]

🧮 Korrelációs együttható képlete

A Pearson-féle korrelációs együttható képlete:

r=n∑xy−∑x∑y(n∑x2−(∑x)2)(n∑y2−(∑y)2)r = \frac{n \sum xy - \sum x \sum y}{\sqrt{(n \sum x^2 - (\sum x)^2)(n \sum y^2 - (\sum y)^2)}}

📐 Számítások

  • n = 3

  • ∑x = 6

  • ∑y = 9.5

  • ∑x² = 14

  • ∑y² = 1² + 5² + 3.5² = 1 + 25 + 12.25 = 38.25

  • ∑xy = 1×1 + 2×5 + 3×3.5 = 1 + 10 + 10.5 = 21.5

Most behelyettesítjük:

Számláló:

3×21.5−6×9.5=64.5−57=7.53×21.5 - 6×9.5 = 64.5 - 57 = 7.5

Nevező:

(3×14−62)(3×38.25−9.52)=(42−36)(114.75−90.25)=6×24.5=147≈12.124\sqrt{(3×14 - 6^2)(3×38.25 - 9.5^2)} = \sqrt{(42 - 36)(114.75 - 90.25)} = \sqrt{6×24.5} = \sqrt{147} ≈ 12.124

Korrelációs együttható:

r=7.512.124≈0.6189r = \frac{7.5}{12.124} ≈ 0.6189

✅ Eredmény

A korrelációs együttható r ≈ 0.619, ami azt jelenti, hogy közepesen erős pozitív kapcsolat van az x és y értékek között

Szerkesztve: 2025. 08. 26., k – 15:41

Szándékosan ránézésre megoldható:

csinálj hierarchikus klasztert  az alábbi két halmazból 1, 2 , 3 a másik 4 , 5, 6
 

Az a baj hogy bonyolultabb eseteknél soha nem lehetsz biztos az eredményben, igy szerintem nehezen hasznélható jelenleg 
megbizhatóan.  Weblapok, képek OK. 

deepseek válasza
 

tt van a hierarchikus klaszterelemzés az adott halmazoknak:

Adatok:

  • Halmaz 1: {1, 2, 3}

  • Halmaz 2: {4, 5, 6}

Távolságmátrix (Euklideszi távolság):

text

    1    2    3    4    5    6
1  0.0  1.0  2.0  3.0  4.0  5.0
2  1.0  0.0  1.0  2.0  3.0  4.0
3  2.0  1.0  0.0  1.0  2.0  3.0
4  3.0  2.0  1.0  0.0  1.0  2.0
5  4.0  3.0  2.0  1.0  0.0  1.0
6  5.0  4.0  3.0  2.0  1.0  0.0

Hierarchikus klaszterelemzés lépései (egyesítő módszer = single linkage):

  1. Kezdeti állapot: 6 különálló klaszter: {1}, {2}, {3}, {4}, {5}, {6}

  2. 1. egyesítés: A legkisebb távolság (1.0) van:

    • {1} és {2} között → egyesítés {1,2} (távolság: 1.0)

    • {2} és {3} között → egyesítés {2,3} (távolság: 1.0)

    • {4} és {5} között → egyesítés {4,5} (távolság: 1.0)

    • {5} és {6} között → egyesítés {5,6} (távolság: 1.0)

    (Egy lépésben több minimális távolság is van, de hierarchikusan egyesítjük)

  3. 2. egyesítés: Most a klaszterek: {1,2}, {3}, {4,5}, {6}

    • Legkisebb távolság (1.0) van:

      • {1,2} és {3} között → egyesítés {1,2,3} (távolság: 1.0)

      • {4,5} és {6} között → egyesítés {4,5,6} (távolság: 1.0)

  4. 3. egyesítés: Most két klaszter: {1,2,3} és {4,5,6}

    • A két klaszter közötti legkisebb távolság:

      • 3 és 4 között = 1.0 → egyesítés {1,2,3,4,5,6} (távolság: 1.0)

Dendrogram:

text

Távolság
  |
5.0|
4.0|
3.0|
2.0|
1.0|  |---| |---|     |---| |---|
    |  |   |   |     |   | |   |
    {1,2} {3}       {4,5} {6}
      |___|           |___|
         |               |
      {1,2,3}        {4,5,6}
           |___________|
               |
        {1,2,3,4,5,6}

Eredmény:
A hierarchikus klaszterelemzés teljesen egyértelműen elkülöníti a két halmazt:

  • {1, 2, 3} alkot egy klasztert

  • {4, 5, 6} alkot egy klasztert

A két klaszter csak viszonylag magas távolsági szinten (1.0) egyesül, ami megfelel a két diszjunkt halmaz elvárt viselkedésének.

Megjegyzés: A single linkage (egyes összekapcsolás) módszert használtam, amely a legközelebbi szomszédok távolságát veszi figyelembe a klaszterek közötti hasonlóság mérésére.

Szerkesztve: 2025. 08. 26., k – 16:13

Egy kicsit nehezitve, 

csinálj hierarchikus klasztert az alábbi két halmazból 1, 2 , 3, 222 a másik 4 , 5, 6,7, 333

Várhatóan ezt 3 vagy 4 re kell bontani:

Csak az eredmény :

 

Eredmény:
A klaszterelemzés három jól elkülönülő csoportot mutat:

  1. Kompakt klaszter: {1, 2, 3, 4, 5, 6, 7} - ezek az egymáshoz közel lévő pontok

  2. Különálló pontok: {222} és {333} - ezek a távoli kiugró értékek

  3. A kiugró értékek saját klasztert alkotnak, és csak magas távolsági szinten kapcsolódnak a fő klaszterhez

Szerk : 
copilot is megoldotta , adott egy kis programot, pedig nem kértem, az általad emlitett python+pandas -ban.
Ha ez  a program jó, a statisztikusok is rábasztak AI-ra.

 

import numpy as np
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt

# Adatok
data = np.array([[1], [2], [3], [222], [4], [5], [6], [7], [333]])

# Hierarchikus klaszterezés
linked = linkage(data, method='ward')

# Dendrogram kirajzolása
plt.figure(figsize=(10, 5))
dendrogram(linked, labels=data.flatten())
plt.title('Hierarchikus klaszterezés')
plt.xlabel('Elemek')
plt.ylabel('Távolság')
plt.show()
Szerkesztve: 2025. 08. 28., cs – 16:43

Kipróbáltam sok mindent, nem csak felületesen, szerintem tökéletes voltak az eredmények ha rábiztam ai-ra, de kisebb apró hibákkal, ami ránézésre javítható volt sdott egy python program-ot , ami kicsit bugos volt.

Visszavonom a macerás az ai módszer. Azt hiszen fogom használni jobban mint idáig.

Egy példa ide a végére:

 

EGYütt vásrolt termékek 

***************************************************************************************

csinálj egy python kódot az egyszerre leggyakrabban vásárolt termékekről,

Remek ötlet! Az „egyszerre leggyakrabban vásárolt termékek” feltérképezéséhez leggyakrabban kosár-elemzést használunk, amely az asszociációs szabályok módszerén alapul. Ennek legismertebb algoritmusa az Apriori. Mutatok egy egyszerű példát Pythonban, ahol egy vásárlási adatbázisból kinyerjük a leggyakoribb termékpárokat.

🛒 Példa: Leggyakrabban együtt vásárolt termékek

python

# Először telepítsd a szükséges csomagot (ha még nincs)
# pip install mlxtend

from mlxtend.frequent_patterns import apriori, association_rules
from mlxtend.preprocessing import TransactionEncoder
import pandas as pd

# Vásárlási adatok (minden lista egy vásárlás)
transactions = [
    ['kenyér', 'vaj', 'tej'],
    ['kenyér', 'vaj'],
    ['tej', 'vaj'],
    ['kenyér', 'tej'],
    ['kenyér', 'vaj', 'sajt'],
    ['vaj', 'sajt'],
    ['kenyér', 'vaj', 'tej', 'sajt']
]

# Átalakítás bináris mátrix formába
te = TransactionEncoder()
te_ary = te.fit(transactions).transform(transactions)
df = pd.DataFrame(te_ary, columns=te.columns_)

# Gyakori termékcsoportok keresése
frequent_itemsets = apriori(df, min_support=0.3, use_colnames=True)

# Asszociációs szabályok generálása
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.0)

# Csak azokat a szabályokat mutatjuk, ahol legalább két termék szerepel
rules = rules[rules['antecedents'].apply(lambda x: len(x) >= 1) & rules['consequents'].apply(lambda x: len(x) >= 1)]

# Eredmény kiírása
print("Leggyakrabban együtt vásárolt termékek:")
print(rules[['antecedents', 'consequents', 'support', 'confidence', 'lift']])

📊 Mit csinál ez a kód?

  • Feldolgozza a vásárlási adatokat.

  • Megkeresi a gyakran együtt előforduló termékcsoportokat.

  • Kiszámítja a support, confidence és lift értékeket, amelyek segítenek megérteni, mennyire erős a kapcsolat a termékek között.

Ha van saját adatod (pl. CSV fájl), azt is be tudjuk olvasni és elemezni. Szívesen segítek testreszabni!

['kenyér', 'vaj', 'tej'], ['kenyér', 'vaj'], ['tej', 'vaj'], ['kenyér', 'tej'], ['kenyér', 'vaj', 'sajt'], ['vaj', 'sajt'], ['kenyér', 'vaj', 'tej', 'sajt'] Mik ezekből a leggyakrabban együtt vásárolt termékek

Nagyon jó kérdés! Ezekből az adatokból meg tudjuk határozni, mely termékek fordulnak elő leggyakrabban együtt a vásárlásokban. Nézzük meg lépésről lépésre, statisztikai alapon:

🧮 Vásárlási adatok összesítése

Az adatok alapján 7 vásárlás történt. Most megszámoljuk, hányszor fordul elő együtt egy-egy termékpár:

Termékpár Együtt előfordulás száma
kenyér + vaj 5
vaj + tej 4
kenyér + tej 4
vaj + sajt 3
kenyér + sajt 2
tej + sajt 2
kenyér + vaj + tej 3

🥇 Leggyakoribb együtt vásárolt párosok

  • kenyér + vaj → 5 alkalommal

  • vaj + tej → 4 alkalommal

  • kenyér + tej → 4 alkalommal

🧀 Triplák (három termék együtt)

  • kenyér + vaj + tej → 3 alkalommal

  • vaj + tej + sajt → 2 alkalommal

  • kenyér + vaj + sajt → 2 alkalommal

📊 Következtetés

A kenyér és vaj a leggyakrabban együtt vásárolt termékpár. Ha ehhez még a tejet is hozzávesszük, az a leggyakoribb hármas kombináció. Ezek alapján például egy boltban érdemes lehet ezeket a termékeket egymás közelében elhelyezni, vagy közös akcióban kínálni.

Ha szeretnéd, megmutatom, hogyan lehet ezt Pythonban automatikusan kiszámolni, vagy akár vizualizálni egy grafikonon.

Sajnos túl lelkes voltam, kipróbáltam komplexebb dolgokat, ez még odébb lesz.

Hát úgy néz ki tévedtem. Kapásből berakta az APRIORIT.

Nem gondolom hogy tévedtél. A betanításnál "látta" az apriori algoritmust gyakori elemhalmazokkal kapcsolatban, így ismeri és ha jól van megfogalmazva a prompt akkor a válaszba belegenerálja amit adott kontextusban erről tud. Ez lehengerlő addig, amíg ilyen szövegeket kell generálni, és ezért érdemes a nagy cloud modelleket használni, azokat mindenen is tanítják. Azt viszont ne felejtsed el, hogy ez egy iszonyat kifnomult szöveggenerátor, gondolkodásszimulátor nem is tudom hogy jellemezzem, de nem szakértői rendszer, főleg nem intelligencia, ha ezt az ismeretet nem egyszerűen kontextushelyes folyó szöveg előállítására hanem leleményesen kellene alkalmazni a problémá megoldásában - vagy egy komplex probléma részproblémáján -, mint ahpgy összetett adatbányász feladatokban felmerülhetne, akkor ott esetleg csalódás lesz majd. Azon nem fog tudni túllépni, amit a betanítása során látott, a gondolkodását nem fogja tudni általánosítani, hanem "csak" alkalmazni, ami persze önmagában már épp eléggé elképesztő és lenyűgöző és feladatosztályok sokaságán alkalmazható automatizálási lehetőség. Legalábbis én nagyjából ezt tapasztalom. De persze nem is kell annál többet elvárni tőle mint ami, egy generatív nyelvi modell, ez is megdöbbentő már.