NumPy a SciPy sú doplnkové knižnice, ktoré dobre spolupracujú pri úlohách strojového učenia. Takto sa dopĺňajú:
Numerické operácie
- NumPy: Poskytuje efektívne viacrozmerné objekty polí a kolekciu rutín na prácu s týmito poliami, vrátane matematických, logických, tvarových manipulácií, triedenia, výberu, I/O, diskrétnych Fourierových transformácií, základnej lineárnej algebry, základných štatistické operácie, náhodná simulácia a mnohé ďalšie.- SciPy: Stavia na NumPy a poskytuje mnoho užívateľsky prívetivých a efektívnych numerických rutín, ako sú rutiny pre numerickú integráciu, interpoláciu, optimalizáciu, lineárnu algebru a štatistiku.
Algoritmy strojového učenia
- NumPy: Poskytuje základné dátové štruktúry a matematické funkcie potrebné na implementáciu základných algoritmov strojového učenia od začiatku, ako je lineárna regresia, logistická regresia, rozhodovacie stromy atď.- SciPy: Poskytuje pokročilejšie algoritmy strojového učenia a dolovania údajov, ako je klastrovanie (k-means, hierarchické atď.), klasifikácia (SVM, náhodné lesy atď.), regresia (ridge, laso atď.). ) a redukciou rozmerov (PCA, ICA atď.).
Predspracovanie údajov
- NumPy: Užitočné pre operácie, ako je zmena tvaru, indexovanie a manipulácia s poľami, čo sú bežné úlohy predbežného spracovania údajov.- SciPy: Poskytuje funkcie na čítanie/zápis dátových súborov, interpoláciu, spracovanie signálu a optimalizáciu, ktoré sú tiež dôležité pre predspracovanie dát.
Vizualizácia
- NumPy: Poskytuje základné dátové štruktúry (polia), ktoré používajú vizualizačné knižnice ako Matplotlib.- SciPy: Poskytuje funkcie na generovanie grafov, histogramov a iných vizualizácií, ktoré možno použiť na preskúmanie a pochopenie údajov.
Optimalizácia a lineárna algebra
- NumPy: Poskytuje efektívne operácie lineárnej algebry a optimalizované rutiny pre numerické výpočty.- SciPy: Stavia na module lineárnej algebry NumPy a poskytuje pokročilejšie optimalizačné algoritmy a rutiny pre numerickú lineárnu algebru.
Stručne povedané, NumPy poskytuje základné numerické operácie a operácie založené na poli, zatiaľ čo SciPy stavia na NumPy a poskytuje širšiu škálu vedeckých a technických výpočtových modulov, vrátane mnohých, ktoré sú užitočné pre úlohy strojového učenia. Ich spoločné používanie vám umožňuje využiť silné stránky oboch knižníc na vytvorenie výkonných a efektívnych modelov strojového učenia.
Citácie:
[1] https://www.youtube.com/watch?v=gYcrEZW-xek
[2] https://www.slideshare.net/slideshow/numpy-and-scipy-for-data-mining-and-data-analysis-include-ipython-scikits-and-matplotlib/9215295
[3] https://www.linkedin.com/advice/3/what-differences-between-pandas-numpy-scipy-data-manipulation-eyvke
[4] https://www.freelancinggig.com/blog/2018/12/09/what-is-the-difference-between-numpy-and-scipy/
[5] https://data-flair.training/blogs/numpy-vs-scipy/
ako SciPy zvyšuje výkon modelov strojového učenia v porovnaní s používaním iba NumPy
SciPy zvyšuje výkon modelov strojového učenia v porovnaní s používaním iba NumPy niekoľkými kľúčovými spôsobmi:
1. Advanced Algorithms: SciPy poskytuje prístup k širšej škále pokročilých numerických algoritmov a optimalizačných postupov, ktoré sú vysoko optimalizované pre výkon. To zahŕňa veci ako operácie s riedkymi maticami, nelineárne riešiče, funkcie spracovania signálov a špecializované algoritmy strojového učenia, ako sú SVM, k-means a PCA. Tieto pokročilé algoritmy môžu často prekonať základnejšie operácie lineárnej algebry dostupné v samotnom NumPy.
2. Efektívne dátové štruktúry: SciPy využíva efektívnejšie dátové štruktúry, ako sú riedke matice, ktoré môžu poskytnúť výrazné zlepšenie výkonu pre určité typy problémov strojového učenia, najmä tie, ktoré zahŕňajú veľké, riedke množiny dát.
3. Paralelizácia: Zatiaľ čo samotný NumPy neposkytuje priame paralelné implementácie, SciPy môže využívať výhody paralelizmu prostredníctvom základných knižníc, ktoré používa, ako napríklad OpenBLAS alebo Intel MKL. To umožňuje SciPy využiť viacjadrové CPU a GPU na urýchlenie výpočtov.
4. Špecializované moduly: SciPy obsahuje špecializované moduly ako `scipy.stats` a `scipy.optimize`, ktoré poskytujú vysoko optimalizované implementácie bežných štatistických a optimalizačných rutín používaných v strojovom učení, ako sú rozdelenia pravdepodobnosti, testy hypotéz, root hľadanie a numerická integrácia.
5. Ekosystémová integrácia: SciPy je úzko integrované so širším ekosystémom vedy o údajoch Pythonu, vrátane knižníc ako NumPy, Pandas a Scikit-learn. To umožňuje modelom strojového učenia vytvoreným pomocou SciPy bezproblémovo využívať funkčnosť a výkon týchto iných knižníc.
Stručne povedané, zatiaľ čo NumPy poskytuje základné numerické operácie, SciPy stavia na tomto základe a poskytuje komplexnejšiu sadu vysoko optimalizovaných rutín a dátových štruktúr, ktoré môžu výrazne zlepšiť výkon modelov strojového učenia, najmä pre zložitejšie alebo rozsiahlejšie problémy. Kombinácia NumPy a SciPy je výkonný nástroj pre efektívne a vysoko výkonné strojové učenie v Pythone.
Citácie:[1] https://edbennett.github.io/high-performance-python/06-numpy-scipy/index.html
[2] https://www.youtube.com/watch?v=gYcrEZW-xek
[3] https://realpython.com/numpy-tensorflow-performance/
[4] https://data-flair.training/blogs/numpy-vs-scipy/
[5] https://github.com/numpy/numpy/issues/23829