NumPy un SciPy ir viena otru papildinošas bibliotēkas, kas labi darbojas kopā mašīnmācīšanās uzdevumos. Lūk, kā tie viens otru papildina:
Skaitliskās darbības
- NumPy: nodrošina efektīvus daudzdimensiju masīvu objektus un rutīnu kolekciju darbam ar šiem masīviem, tostarp matemātisko, loģisko, formu manipulāciju, šķirošanu, atlasi, I/O, diskrētās Furjē transformācijas, pamata lineāro algebru, pamata. statistikas operācijas, nejauša simulācija un daudz kas cits.- SciPy: balstās uz NumPy un nodrošina daudzas lietotājam draudzīgas un efektīvas skaitliskās darbības, piemēram, rutīnas skaitliskai integrācijai, interpolācijai, optimizācijai, lineārajai algebrai un statistikai.
Mašīnmācīšanās algoritmi
- NumPy: nodrošina pamata datu struktūras un matemātiskās funkcijas, kas nepieciešamas, lai no jauna ieviestu pamata mašīnmācīšanās algoritmus, piemēram, lineāro regresiju, loģistikas regresiju, lēmumu kokus utt.- SciPy: nodrošina modernākus mašīnmācīšanās un datu ieguves algoritmus, piemēram, klasterizāciju (vidēji k-vidēji, hierarhiskus utt.), klasifikāciju (SVM, nejauši meži utt.), regresiju (kores, laso utt.). ) un izmēru samazināšana (PCA, ICA utt.).
Datu priekšapstrāde
- NumPy: noder tādām darbībām kā masīvu pārveidošana, indeksēšana un manipulēšana, kas ir izplatīti datu pirmapstrādes uzdevumi.- SciPy: nodrošina funkcijas datu failu lasīšanai/rakstīšanai, interpolācijai, signālu apstrādei un optimizācijai, kas ir svarīgas arī datu pirmapstrādei.
Vizualizācija
- NumPy: nodrošina pamata datu struktūras (masīvus), ko izmanto vizualizācijas bibliotēkas, piemēram, Matplotlib.- SciPy: nodrošina diagrammu, histogrammu un citu vizualizāciju ģenerēšanas funkcijas, ko var izmantot datu izpētei un izpratnei.
Optimizācija un lineārā algebra
- NumPy: nodrošina efektīvas lineārās algebras darbības un optimizētas rutīnas skaitliskiem aprēķiniem.- SciPy: balstās uz NumPy lineārās algebras moduli un nodrošina progresīvākus optimizācijas algoritmus un rutīnas skaitliskajai lineārajai algebrai.
Rezumējot, NumPy nodrošina pamata skaitļu un masīvu darbības, savukārt SciPy balstās uz NumPy un nodrošina plašāku zinātnisko un tehnisko skaitļošanas moduļu klāstu, tostarp daudzus, kas ir noderīgi mašīnmācīšanās uzdevumiem. Izmantojot tos kopā, varat izmantot abu bibliotēku stiprās puses, lai izveidotu jaudīgus un efektīvus mašīnmācīšanās modeļus.
Citāts:
[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/
kā SciPy uzlabo mašīnmācīšanās modeļu veiktspēju salīdzinājumā ar tikai NumPy izmantošanu
SciPy uzlabo mašīnmācīšanās modeļu veiktspēju, salīdzinot ar tikai NumPy izmantošanu vairākos galvenajos veidos:
1. Uzlabotie algoritmi: SciPy nodrošina piekļuvi plašākam uzlaboto skaitlisko algoritmu un optimizācijas procedūru klāstam, kas ir ļoti optimizēti veiktspējai. Tas ietver tādas lietas kā retās matricas darbības, nelineārie risinātāji, signālu apstrādes funkcijas un specializēti mašīnmācīšanās algoritmi, piemēram, SVM, k-means un PCA. Šie uzlabotie algoritmi bieži var pārspēt pamata lineārās algebras darbības, kas pieejamas tikai NumPy.
2. Efektīvas datu struktūras: SciPy izmanto efektīvākas datu struktūras, piemēram, retas matricas, kas var nodrošināt ievērojamus veiktspējas uzlabojumus noteikta veida mašīnmācīšanās problēmām, īpaši tādām, kas saistītas ar lielām, retām datu kopām.
3. Paralizācija: lai gan pats NumPy nenodrošina tiešu paralēlu ieviešanu, SciPy var izmantot paralēlisma priekšrocības, izmantojot tā izmantotās pamatā esošās bibliotēkas, piemēram, OpenBLAS vai Intel MKL. Tas ļauj SciPy izmantot daudzkodolu CPU un GPU, lai paātrinātu aprēķinus.
4. Specializētie moduļi: SciPy ietver specializētus moduļus, piemēram, scipy.stats un scipy.optimize, kas nodrošina ļoti optimizētu mašīnmācībā izmantoto parasto statistikas un optimizācijas rutīnu, piemēram, varbūtības sadalījumu, hipotēžu testu, saknes ieviešanu. atrašana un skaitliskā integrācija.
5. Ekosistēmu integrācija: SciPy ir cieši integrēta plašākā Python datu zinātnes ekosistēmā, tostarp tādās bibliotēkās kā NumPy, Pandas un Scikit-learn. Tas ļauj mašīnmācīšanās modeļiem, kas izveidoti, izmantojot SciPy, nemanāmi izmantot šo citu bibliotēku funkcionalitāti un veiktspēju.
Rezumējot, lai gan NumPy nodrošina pamata skaitliskās darbības, SciPy balstās uz šo pamatu, lai nodrošinātu visaptverošāku augsti optimizētu rutīnu un datu struktūru kopumu, kas var ievērojami uzlabot mašīnmācīšanās modeļu veiktspēju, īpaši sarežģītāku vai liela mēroga problēmu gadījumā. NumPy un SciPy kombinācija ir spēcīgs rīks efektīvai un augstas veiktspējas mašīnmācībai Python.
Citāts:[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