Lagi

Pemrosesan gambar menggunakan Python, GDAL dan Scikit-Image

Pemrosesan gambar menggunakan Python, GDAL dan Scikit-Image


Saya berjuang dengan pemrosesan dan semoga saya dapat menyelesaikannya di sini.

Saya bekerja dengan Penginderaan Jauh yang diterapkan pada Kehutanan, terutama bekerja dengan data LiDAR. Idenya adalah menggunakan Scikit-image untuk deteksi puncak pohon. Karena saya baru di Python, saya menganggap kemenangan pribadi yang hebat untuk melakukan hal berikut:

  1. Impor CHM (dengan matplotlib);
  2. Jalankan filter gaussian (dengan paket scikit-image);
  3. Jalankan filter maxima (dengan paket scikit-image);
  4. Jalankan peak_local_max (dengan paket scikit-image);
  5. Tunjukkan CHM dengan maxima lokal (dengan matplotlib);

Sekarang masalah saya. Ketika saya mengimpor dengan matplot, gambar kehilangan koordinat geografisnya. Jadi koordinat yang saya miliki hanyalah koordinat gambar dasar (yaitu 250.312). Yang saya butuhkan adalah mendapatkan nilai piksel di bawah titik maxima lokal pada gambar (titik merah pada gambar). Di sini, di forum saya melihat satu orang menanyakan hal yang sama (Mendapatkan nilai piksel raster GDAL di bawah titik OGR tanpa NumPy?), tetapi dia sudah memiliki poin di shapefile. Dalam kasus saya, poin dihitung dengan scikit-image (Ini adalah array dengan koordinat setiap puncak pohon). Jadi saya tidak memiliki shapefile.

Kesimpulannya, yang saya inginkan pada akhirnya adalah file txt dengan koordinat masing-masing maxima lokal dalam koordinat geografis, misalnya:

525412 62980123 1150…


Pertama, selamat datang di situs!

Array numpy tidak memiliki konsep sistem koordinat bawaan ke dalam array. Untuk raster 2D mereka diindeks oleh kolom dan baris.

Catatan Saya berasumsi bahwa Anda membaca format raster yang didukung oleh GDAL.

Dengan Python cara terbaik untuk mengimpor data raster spasial adalah dengan rasterio kemasan. Data mentah yang diimpor oleh rasterio masih berupa larik numpy tanpa akses ke sistem koordinat, tetapi rasterio juga memberi Anda akses ke metode affine pada larik sumber yang dapat Anda gunakan untuk mengubah kolom dan baris raster ke koordinat yang diproyeksikan. Sebagai contoh:

import rasterio # Cara terbaik untuk membuka raster dengan rasterio adalah melalui manajer konteks # sehingga menutup secara otomatis dengan rasterio.open(path_to_raster) sebagai sumber: data = source.read(1) # Baca raster band 1 sebagai array numpy affine = source.affine #… lakukan beberapa pekerjaan dengan scikit-image dan dapatkan serangkaian lokasi maxima lokal # mis # maxima = numpy.array([[0, 0], [1, 1], [2, 2]]) # Perhatikan juga bahwa konvensi dalam array numy untuk array 2d adalah baris (y), kolom (x) untuk point in maxima: #Loop pada setiap pasangan koordinat kolom = titik[1] baris = titik[0] x, y = affine * (kolom, baris) print x, y # Atau bisa juga sekaligus: kolom = maxima[:, 1] rows = maxima[:, 0] xs, ys = affine * (kolom, baris)

Dan dari sana Anda dapat menulis hasil Anda ke file teks sesuka Anda (saya sarankan untuk melihat inbuiltcsvmodul misalnya).


Dari tampilan cepat di matplotlib, menurut saya Anda harus mengubah skala sumbu setelah impor.


Silakan coba dengan potongan kode berikut. Ini dapat digunakan untuk membaca data gambar dari raster dan menulis data yang diproses ke raster (file .geotiff).

dari PIL import Gambar,ImageOps import numpy sebagai np dari osgeo import gdal #from osgeo import gdal_array #from osgeo import osr #from osgeo.gdalconst import * #import matplotlib.pylab sebagai plt #from PIL import Gambar, ImageOps #import gdal #from PIL import Image gdal.AllRegister() ################# Baca Raster ################ inRaster="C: pythonResultsDatabaseRisat1CRSCRS_LEVEL2_GEOTIFFscene_HHimagery_HH.tif" inDS=gdal.Open(inRaster,1) geoTransform = inDS.GetGeoTransform() band=inDS.GetRasterBand(1) datatype=band.DataType proj = inDS .GetProjection() rows = inDS.RasterYSize cols=inDS.RasterXSize data=band.ReadAsArray(0,0,cols,rows)#ekstraksi data yang akan diproses# ############tulis raster ########## driver=inDS.GetDriver() outRaster="C:pythonResultsDatabaseTemporary data baseclipped_26July2017demo11.tif" outDS = driver.Create (outRaster, cols,rows, 1,datatype) geoTransform = inDS.GetGeoTransform() outDS.SetGeoTransform(geoTransform) proj = inDS.GetProjection() outDS.Set Proyeksi(proj) outBand = outDS.GetRasterBand(1) outBand.WriteArray(data1,0,0) #data adalah larik keluaran untuk ditulis dalam file tiff outDS=None im2=Image.open('C:python ResultsDatabaseDatabase sementaraclipped_26July2017demo11.tif'); im2.show()

Deteksi Tepi Gambar Besar Python Menggunakan Scikit-image dan GDAL

Saya memiliki file besar 9600x7000 piksel file jpg Saya mencoba untuk melihat apakah saya dapat melakukan deteksi tepi. Saya mencoba memuat file besar (25Mb) menggunakan:

Namun juru bahasa python akan macet. Saya menggunakan Pycharm menjalankan Python 2.7.

Jadi, saya menggunakan GDAL (digunakan untuk besar file referensi GEO) untuk memuat file. Ini akan memuat file ke dalam memori tanpa masalah.

Ini akan memuat file. Namun, saya mencoba menjalankan deteksi tepi berikut di atasnya:

Ini akan berfungsi jika saya menghasilkan gambar menggunakan kode berikut:

Masalah saya adalah saya tidak terlalu memahami Python tentang format data dari variabel 'gambar' versus variabel kumpulan data yang dihasilkan oleh GDAL. Tujuan akhir saya adalah untuk dapat menjalankan deteksi tepi pada gambar jpg piksel besar (10000x7000) menggunakan pustaka gambar scikit Python. Jika ada cara yang lebih baik dari GDAL untuk membaca gambar jpg besar, saya terbuka untuk itu.

dan jalankan, saya mendapatkan kesalahan berikut:

Pesan kesalahan ini menunjukkan bahwa saya tidak memahami tipe data antara dataset dan variabel gambar.


1. Pengantar pemrosesan gambar

Pemrosesan gambar adalah metode untuk melakukan beberapa operasi pada gambar, untuk mendapatkan gambar yang disempurnakan atau untuk mengekstrak beberapa informasi yang berguna darinya. Ini adalah jenis pemrosesan sinyal di mana input adalah gambar dan output dapat berupa gambar atau karakteristik / fitur yang terkait dengan gambar itu. Saat ini, pengolahan citra adalah salah satu teknologi yang berkembang pesat. Ini membentuk area penelitian inti dalam disiplin ilmu teknik dan ilmu komputer juga.

Pemrosesan gambar pada dasarnya mencakup tiga langkah berikut:

  • Mengimpor gambar melalui alat akuisisi gambar
  • Menganalisis dan memanipulasi gambar
  • Keluaran yang hasilnya dapat berupa gambar atau laporan yang diubah berdasarkan analisis gambar.

Ada dua jenis metode yang digunakan untuk pengolahan citra yaitu, pengolahan citra analog dan digital. Pemrosesan gambar analog dapat digunakan untuk hard copy seperti cetakan dan foto. Analis gambar menggunakan berbagai dasar interpretasi saat menggunakan teknik visual ini. Teknik pemrosesan gambar digital membantu manipulasi gambar digital dengan menggunakan komputer. Tiga fase umum yang harus dilalui semua jenis data saat menggunakan teknik digital adalah pra-pemrosesan, peningkatan, dan tampilan, ekstraksi informasi.

Dalam kuliah ini kita akan berbicara tentang beberapa definisi mendasar seperti citra, citra digital, dan pengolahan citra digital. Berbagai sumber gambar digital akan dibahas dan contoh untuk setiap sumber akan diberikan. Kontinum dari pengolahan citra ke visi komputer akan dibahas dalam kuliah ini. Akhirnya kita akan berbicara tentang akuisisi gambar dan berbagai jenis sensor gambar.

Penjelasan lebih lanjut tentang mengapa kita membutuhkan pengolahan citra digital telah dibahas dalam presentasi lain yang diadakan pada Januari 2014. Untuk mengakses video presentasi tersebut, silakan klik di sini.


Ubah ukuran Gambar

Untuk mengubah ukuran gambar, Anda dapat menggunakan metode resize() dari openCV. Dalam metode pengubahan ukuran, Anda dapat menentukan nilai sumbu x dan y atau jumlah baris dan kolom yang menunjukkan ukuran gambar.

Impor dan baca gambar:

Sekarang menggunakan metode pengubahan ukuran dengan nilai sumbu:

Hasilnya akan seperti berikut:

Sekarang gunakan nilai baris dan kolom untuk mengubah ukuran gambar:

Kami mengatakan kami ingin 550 kolom (lebar) dan 350 baris (tinggi).


Isi

Banyak teknik pemrosesan gambar digital, atau pemrosesan gambar digital seperti yang sering disebut, dikembangkan pada tahun 1960-an, di Bell Laboratories, Jet Propulsion Laboratory, Massachusetts Institute of Technology, University of Maryland, dan beberapa fasilitas penelitian lainnya, dengan aplikasi pada citra satelit, konversi standar foto kawat, pencitraan medis, telepon video, pengenalan karakter, dan peningkatan foto. [3] Tujuan pengolahan citra awal adalah untuk meningkatkan kualitas citra. Itu ditujukan untuk manusia untuk meningkatkan efek visual orang. Dalam pengolahan citra, inputnya adalah citra dengan kualitas rendah, dan outputnya adalah citra dengan kualitas yang lebih baik. Pemrosesan gambar umum termasuk peningkatan gambar, restorasi, pengkodean, dan kompresi. Aplikasi pertama yang berhasil adalah American Jet Propulsion Laboratory (JPL). Mereka menggunakan teknik pemrosesan gambar seperti koreksi geometrik, transformasi gradasi, penghilangan noise, dll. pada ribuan foto bulan yang dikirim kembali oleh Space Detector Ranger 7 pada tahun 1964, dengan mempertimbangkan posisi matahari dan lingkungan bulan. Dampak keberhasilan pemetaan peta permukaan bulan oleh komputer telah sukses besar. Kemudian, pemrosesan gambar yang lebih kompleks dilakukan pada hampir 100.000 foto yang dikirim kembali oleh pesawat ruang angkasa, sehingga diperoleh peta topografi, peta warna, dan mosaik panorama bulan, yang mencapai hasil luar biasa dan meletakkan dasar yang kokoh untuk pendaratan manusia di Bumi. bulan. [4]

Namun, biaya pemrosesan cukup tinggi, dengan peralatan komputasi pada zaman itu. Itu berubah pada 1970-an, ketika pemrosesan gambar digital berkembang biak sebagai komputer yang lebih murah dan perangkat keras khusus tersedia. Hal ini menyebabkan gambar diproses secara real-time, untuk beberapa masalah khusus seperti konversi standar televisi. Ketika komputer tujuan umum menjadi lebih cepat, mereka mulai mengambil alih peran perangkat keras khusus untuk semua kecuali operasi yang paling khusus dan intensif komputer. Dengan komputer cepat dan prosesor sinyal yang tersedia di tahun 2000-an, pemrosesan gambar digital telah menjadi bentuk pemrosesan gambar yang paling umum, dan umumnya digunakan karena tidak hanya metode yang paling serbaguna, tetapi juga yang termurah.

Sensor gambar Sunting

Dasar untuk sensor gambar modern adalah teknologi metal-oxide-semiconductor (MOS), [5] yang berasal dari penemuan MOSFET (MOS field-effect transistor) oleh Mohamed M. Atalla dan Dawon Kahng di Bell Labs pada tahun 1959.[ 6] Hal ini menyebabkan pengembangan sensor gambar semikonduktor digital, termasuk perangkat charge-coupled (CCD) dan kemudian sensor CMOS. [5]

Perangkat charge-coupled ditemukan oleh Willard S. Boyle dan George E. Smith di Bell Labs pada tahun 1969. [7] Saat meneliti teknologi MOS, mereka menyadari bahwa muatan listrik adalah analogi dari gelembung magnetik dan dapat disimpan pada kapasitor MOS kecil. Karena cukup mudah untuk membuat serangkaian kapasitor MOS berturut-turut, mereka menghubungkan tegangan yang sesuai dengannya sehingga muatan dapat dipindahkan dari satu ke yang berikutnya. [5] CCD adalah sirkuit semikonduktor yang kemudian digunakan dalam kamera video digital pertama untuk penyiaran televisi. [8]

Sensor piksel aktif (APS) NMOS ditemukan oleh Olympus di Jepang pada pertengahan 1980-an. Ini dimungkinkan oleh kemajuan dalam fabrikasi perangkat semikonduktor MOS, dengan penskalaan MOSFET mencapai mikron yang lebih kecil dan kemudian level sub-mikron. [9] [10] NMOS APS dibuat oleh tim Tsutomu Nakamura di Olympus pada tahun 1985. [11] Sensor piksel aktif CMOS (sensor CMOS) kemudian dikembangkan oleh tim Eric Fossum di NASA Jet Propulsion Laboratory pada tahun 1993. [ 12] Pada tahun 2007, penjualan sensor CMOS telah melampaui sensor CCD. [13]

Kompresi gambar Edit

Perkembangan penting dalam teknologi kompresi gambar digital adalah transformasi kosinus diskrit (DCT), teknik kompresi lossy yang pertama kali diusulkan oleh Nasir Ahmed pada tahun 1972. Kompresi DCT menjadi dasar untuk JPEG, yang diperkenalkan oleh Joint Photographic Experts Group di 1992. [15] JPEG kompres gambar ke ukuran file yang jauh lebih kecil, dan telah menjadi format file gambar yang paling banyak digunakan di Internet. [16] Algoritma kompresi DCT yang sangat efisien sebagian besar bertanggung jawab atas proliferasi luas gambar digital dan foto digital, [17] dengan beberapa miliar gambar JPEG diproduksi setiap hari pada tahun 2015. [18]

Prosesor sinyal digital (DSP) Edit

Pemrosesan sinyal elektronik direvolusi oleh adopsi luas teknologi MOS pada 1970-an. [19] Teknologi sirkuit terpadu MOS adalah dasar untuk mikroprosesor dan mikrokontroler chip tunggal pertama pada awal 1970-an, [20] dan kemudian chip prosesor sinyal digital (DSP) chip tunggal pertama pada akhir 1970-an. [21] [22] Chip DSP sejak itu telah banyak digunakan dalam pemrosesan gambar digital. [21]

Algoritma kompresi gambar discrete cosine transform (DCT) telah diterapkan secara luas dalam chip DSP, dengan banyak perusahaan mengembangkan chip DSP berdasarkan teknologi DCT. DCT banyak digunakan untuk encoding, decoding, video coding, audio coding, multiplexing, control signal, signaling, analog-to-digital conversion, formatting luminance dan perbedaan warna, dan format warna seperti YUV444 dan YUV411. DCT juga digunakan untuk operasi pengkodean seperti estimasi gerakan, kompensasi gerakan, prediksi antar-bingkai, kuantisasi, pembobotan persepsi, pengkodean entropi, pengkodean variabel, dan vektor gerakan, dan operasi decoding seperti operasi terbalik antara format warna yang berbeda (YIQ, YUV dan RGB) untuk keperluan tampilan. DCT juga biasa digunakan untuk chip encoder/decoder televisi definisi tinggi (HDTV). [23]

Pencitraan medis Sunting

Pada tahun 1972, insinyur dari perusahaan Inggris EMI Housfield menemukan perangkat tomografi komputer sinar-X untuk diagnosis kepala, yang biasanya disebut CT (computer tomography). Metode inti CT didasarkan pada proyeksi bagian kepala manusia dan diproses oleh komputer untuk merekonstruksi gambar penampang, yang disebut rekonstruksi gambar. Pada tahun 1975, EMI berhasil mengembangkan perangkat CT untuk seluruh tubuh, yang memperoleh gambar tomografi yang jelas dari berbagai bagian tubuh manusia. Pada tahun 1979, teknik diagnostik ini memenangkan Hadiah Nobel. [4] Teknologi pemrosesan gambar digital untuk aplikasi medis dilantik ke dalam Hall of Fame Teknologi Ruang Angkasa Yayasan Luar Angkasa pada tahun 1994. [24]

Pemrosesan citra digital memungkinkan penggunaan algoritma yang jauh lebih kompleks, dan karenanya, dapat menawarkan kinerja yang lebih canggih pada tugas-tugas sederhana, dan penerapan metode yang tidak mungkin dilakukan dengan cara analog.

Secara khusus, pengolahan citra digital adalah aplikasi konkret, dan teknologi praktis berdasarkan:

Beberapa teknik yang digunakan dalam pengolahan citra digital antara lain:

Pemfilteran Sunting

Filter digital digunakan untuk mengaburkan dan mempertajam gambar digital. Penyaringan dapat dilakukan dengan:

    dengan kernel yang dirancang khusus (array filter) dalam domain spasial [25]
  • menutupi wilayah frekuensi tertentu dalam domain frekuensi (Fourier)

Contoh berikut menunjukkan kedua metode: [26]

F = Transformasi Fourier dari bayangan

Tampilkan Gambar: log(1+Nilai Absolut(F))

Pengisi gambar dalam pemfilteran domain Fourier Edit

Gambar biasanya diisi sebelum ditransformasikan ke ruang Fourier, gambar yang difilter highpass di bawah ini menggambarkan konsekuensi dari teknik padding yang berbeda:

Nol empuk Tepi berulang empuk

Perhatikan bahwa filter highpass menunjukkan tepi ekstra ketika bantalan nol dibandingkan dengan bantalan tepi berulang.

Contoh kode pemfilteran Sunting

Contoh MATLAB untuk penyaringan highpass domain spasial.

Transformasi affine Sunting

Transformasi affine memungkinkan transformasi gambar dasar termasuk skala, putar, terjemahkan, cermin dan geser seperti yang ditunjukkan pada contoh berikut: [26]

Nama Transformasi Matriks Afin Contoh
Identitas [ 1 0 0 0 1 0 0 0 1 ] 1&0&0&1&0&0&1end>>
Cerminan [ 1 0 0 0 1 0 0 0 1 ] -1&0&0&1&0&0&1end>>
Skala [ c x = 2 0 0 0 c y = 1 0 0 0 1 ] C_=2&0&0&c_=1&0&0&1end>>
Memutar [ cos ( ) sin ( ) 0 − sin ( ) cos ( ) 0 0 0 1 ] cos( heta )&sin( heta )&0-sin( heta )&cos( heta )&0&0&1end>> di mana θ = / 6 =30°
Mencukur [ 1 c x = 0,5 0 c y = 0 1 0 0 0 1 ] 1&c_=0,5&0c_=0&1&0&0&1end>>

Untuk menerapkan matriks affine ke gambar, gambar diubah menjadi matriks di mana setiap entri sesuai dengan intensitas piksel di lokasi itu. Kemudian lokasi setiap piksel dapat direpresentasikan sebagai vektor yang menunjukkan koordinat piksel tersebut dalam citra, [x, y], di mana x dan y adalah baris dan kolom piksel dalam matriks citra. Ini memungkinkan koordinat dikalikan dengan matriks transformasi affine, yang memberikan posisi nilai piksel yang akan disalin ke dalam gambar keluaran.

Namun, untuk memungkinkan transformasi yang memerlukan transformasi translasi, diperlukan koordinat homogen 3 dimensi. Dimensi ketiga biasanya diatur ke konstanta bukan nol, biasanya 1, sehingga koordinat baru adalah [x, y, 1]. Hal ini memungkinkan vektor koordinat dikalikan dengan matriks 3 dengan 3, memungkinkan pergeseran translasi. Jadi dimensi ketiga, yang merupakan konstanta 1, memungkinkan translasi.

Karena perkalian matriks bersifat asosiatif, transformasi affine berganda dapat digabungkan menjadi transformasi affine tunggal dengan mengalikan matriks dari setiap transformasi individu sesuai urutan transformasi yang dilakukan. Ini menghasilkan matriks tunggal yang, ketika diterapkan pada vektor titik, memberikan hasil yang sama seperti semua transformasi individu yang dilakukan pada vektor [x, y, 1] secara berurutan. Jadi urutan matriks transformasi affine dapat direduksi menjadi matriks transformasi affine tunggal.

Misalnya, koordinat 2 dimensi hanya memungkinkan rotasi di sekitar titik asal (0, 0). Tetapi koordinat homogen 3 dimensi dapat digunakan untuk terlebih dahulu menerjemahkan sembarang titik ke (0, 0), kemudian melakukan rotasi, dan terakhir menerjemahkan titik asal (0, 0) kembali ke titik semula (kebalikan dari terjemahan pertama). 3 transformasi affine ini dapat digabungkan menjadi satu matriks, sehingga memungkinkan rotasi di sekitar titik mana pun dalam gambar. [27]

Gambar kamera digital Edit

Kamera digital umumnya menyertakan perangkat keras pemrosesan gambar digital khusus - baik chip khusus atau sirkuit tambahan pada chip lain - untuk mengubah data mentah dari sensor gambar mereka menjadi gambar yang dikoreksi warna dalam format file gambar standar.

Edit Film

dunia barat (1973) adalah film fitur pertama yang menggunakan pemrosesan gambar digital ke fotografi pixellate untuk mensimulasikan sudut pandang android. [28]

Ada kemajuan yang signifikan dalam teknologi pemantauan kelelahan dekade terakhir. Solusi teknologi inovatif ini sekarang tersedia secara komersial dan menawarkan manfaat keselamatan nyata bagi pengemudi, operator, dan pekerja shift lainnya di semua industri. [29]

Pengembang perangkat lunak, insinyur dan ilmuwan mengembangkan perangkat lunak pendeteksi kelelahan menggunakan berbagai isyarat fisiologis untuk menentukan keadaan kelelahan atau kantuk. Pengukuran aktivitas otak (electroencephalogram) diterima secara luas sebagai standar dalam pemantauan kelelahan. Teknologi lain yang digunakan untuk menentukan gangguan terkait kelelahan termasuk pengukuran gejala perilaku seperti perilaku mata, arah pandangan, koreksi mikro dalam penggunaan kemudi dan throttle serta variabilitas detak jantung. [ kutipan diperlukan ]


Menggunakan RasterIO

RasterIO diimplementasikan oleh Mapbox dan menyediakan python API untuk membaca dataset geo-referensi. Selain itu, dokumentasi menyebutkan bahwa tidak seperti ikatan python GDAL, ia tidak mengalami masalah penunjuk C yang menggantung dan masalah penunjuk lainnya yang dapat membuat program Anda mogok.

Jangan bingung dengan nilai skala sumbu x dan y, itu hanya nilai garis bujur dan garis lintang. Jika Anda ingin membaca masing-masing band gunakan kode di bawah ini.


Jenis gambar

  1. GAMBAR BINER– Gambar biner seperti namanya, hanya berisi dua elemen piksel yaitu 0 & 1, di mana 0 mengacu pada hitam dan 1 mengacu pada putih. Gambar ini juga dikenal sebagai Monokrom.
  2. GAMBAR HITAM PUTIH– Gambar yang hanya terdiri dari warna hitam putih disebut GAMBAR HITAM PUTIH.
  3. FORMAT WARNA 8 bit– Ini adalah format gambar yang paling terkenal. Ini memiliki 256 nuansa warna yang berbeda di dalamnya dan umumnya dikenal sebagai Gambar Skala Abu-abu. Dalam format ini, 0 singkatan Hitam, dan 255 singkatan putih, dan 127 singkatan abu-abu.
  4. FORMAT WARNA 16 bit– Ini adalah format gambar berwarna. Ini memiliki 65.536 warna berbeda di dalamnya. Ini juga dikenal sebagai Format Warna Tinggi. Pada format ini distribusi warna tidak sama dengan citra Grayscale.

Format 16 bit sebenarnya dibagi menjadi tiga format lebih lanjut yaitu Merah, Hijau dan Biru. Format RGB yang terkenal itu.


Pemrosesan gambar menggunakan Python, GDAL dan Scikit-Image - Sistem Informasi Geografis

Ilmu Data Luar Biasa dengan Python

Daftar sumber daya luar biasa yang dikuratori untuk mempraktikkan ilmu data menggunakan Python, termasuk tidak hanya perpustakaan, tetapi juga tautan ke tutorial, cuplikan kode, posting blog, dan pembicaraan.

pandas - Struktur data dibangun di atas numpy.
scikit-learn - Pustaka ML inti.
matplotlib - Merencanakan perpustakaan.
seaborn - Pustaka visualisasi data berdasarkan matplotlib.
pandas_summary - Statistik dasar menggunakan DataFrameSummary(df).summary() .
pandas_profile - Statistik deskriptif menggunakan ProfileReport .
sklearn_pandas - Kelas DataFrameMapper yang membantu.
missingno - Visualisasi data tidak ada.
rainbow-csv - Plugin untuk menampilkan file .csv dengan warna yang bagus.

Trik Umum Jupyter
Memperbaiki lingkungan: tautan
Python debugger (pdb) - posting blog, video, lembar contekan
cookiecutter-data-science - Template proyek untuk proyek ilmu data.
nteract - Buka Notebook Jupyter dengan klik dua kali.
papermill - Parameterisasi dan jalankan notebook Jupyter, tutorial.
nbdime - Bedakan dua file notebook, Aplikasi GitHub Alternatif: ReviewNB.
RISE - Ubah buku catatan Jupyter menjadi presentasi.
qgrid - Penyortiran DataFrame Pandas.
pivottablejs - Seret dan lepas Tabel dan Bagan Pivot untuk notebook jupyter.
itables - Tabel interaktif di Jupyter.
jupyter-datatables - Tabel interaktif di Jupyter.
debugger - Debugger visual untuk Jupyter.
nbcommands - Lihat dan cari buku catatan dari terminal.
handcalcs - Cara yang lebih nyaman untuk menulis persamaan matematika di Jupyter.

Trik Panda, Alternatif dan Tambahan

Trik Panda
Menggunakan df.pipe() (video)
pandasvault - Koleksi besar trik panda.
modin - Pustaka paralelisasi untuk panda DataFrame yang lebih cepat.
vaex - DataFrames Out-of-Core.
pandarallel - Sejajarkan operasi panda.
xarray - Memperluas panda ke array n-dimensi.
swifter - Terapkan fungsi apa pun ke kerangka data panda lebih cepat.
pandas_flavor - Tulis pengakses khusus seperti .str dan .dt .
pandas-log - Temukan masalah logika bisnis dan masalah kinerja di pandas.
pandapy - Fitur tambahan untuk panda.

drawdata - Gambar beberapa titik dengan cepat dan ekspor sebagai csv, situs web.
tqdm - Progress bar untuk for-loop. Juga mendukung panda apply().
icecream - Output debugging sederhana.
loguru - Pencatatan Python.
pyprojroot - Bermanfaat di sini () perintah dari R.
intake - Memuat kumpulan data menjadi lebih mudah, bicara.

texttract - Ekstrak teks dari dokumen apa pun.
camelot - Ekstrak teks dari PDF.

spark - DataFrame untuk data besar, lembar contekan, tutorial.
sparkit-learn, spark-deep-learning - Kerangka kerja ML untuk percikan.
koala - Pandas API di Apache Spark.
dask, dask-ml - Pandas DataFrame untuk data besar dan perpustakaan pembelajaran mesin, sumber daya, talk1, talk2, notebook, video.
dask-gateway - Mengelola cluster dask.
turicreate - Kelas SFrame yang berguna untuk kerangka data yang kehabisan memori.
h2o - Kelas H2OFrame yang berguna untuk kerangka data yang kehabisan memori.
datatable - Tabel Data untuk dukungan data besar.
cuDF - Pustaka DataFrame GPU, Pendahuluan.
ray - Kerangka kerja eksekusi terdistribusi yang fleksibel dan berkinerja tinggi.
mars - Kerangka kerja terpadu berbasis Tensor untuk komputasi data skala besar.
bottleneck - Fungsi array NumPy Cepat ditulis dalam C.
bolz - Wadah data berbentuk kolom yang dapat dikompresi.
cupy - API seperti NumPy dipercepat dengan CUDA.
petastorm - Pustaka akses data untuk file parket oleh Uber.
zarr - Array numpy terdistribusi.

ni - Alat baris perintah untuk data besar.
xsv - Alat baris perintah untuk mengindeks, mengiris, menganalisis, memisahkan, dan menggabungkan file CSV.
csvkit - Alat baris perintah lain untuk file CSV.
csvsort - Mengurutkan file csv besar.
tsv-utils - Alat untuk bekerja dengan file CSV oleh ebay.
cheat - Buat lembar contekan untuk perintah baris perintah.

Tes dan Paket Statistik

Analisis Interim / Analisis Sekuensial / Penghentian

Analisis Squential - Wikipedia.
Pemantauan Efek Pengobatan - Desain dan Analisis Uji Klinis PennState.
sekuensial - Analisis Sekuensial Tepat untuk Poisson dan Data Binomial (paket R).
confseq - Batas seragam, urutan kepercayaan, dan nilai-p yang selalu valid.

R Epidemics Consortium - Rangkaian alat besar untuk bekerja dengan data epidemiologi (paket R). Github
insiden2 - Komputasi, penanganan, visualisasi dan pemodelan kejadian sederhana (paket R).
EpiEstim - Perkirakan waktu memvariasikan nomor reproduksi seketika R selama epidemi (paket R) kertas.
researchpy - Fungsi summary_cont() yang berguna untuk statistik ringkasan (Tabel 1).
zEpid - Paket analisis epidemiologi, Tutorial.

Daftar periksa.
cleanlab - Data pencitraan: Pembelajaran mesin dengan label berisik dan menemukan data yang salah label.
pandasgui - GUI untuk melihat, merencanakan, dan menganalisis Pandas DataFrames.
petugas kebersihan - Bersihkan nama kolom yang berantakan.
impyute - Imputasi.
fancyimpute - Penyelesaian matriks dan algoritma imputasi.
balanced-learn - Resampling untuk dataset yang tidak seimbang.
tspreprocess - Preprocessing deret waktu: Denoising, Compression, Resampling.
Kaggler - Fungsi utilitas ( OneHotEncoder(min_obs=100) )
pyupset - Memvisualisasikan set berpotongan.
pyemd - Jarak Penggerak Bumi / Jarak Wasserstein, kesamaan antar histogram. Implementasi OpenCV, implementasi POT
littleballoffur - Pengambilan sampel dari grafik.

iterative-stratification - Stratifikasi data multilabel.

Bicara
sklearn - Pipeline, contoh.
pdpipe - Pipa untuk DataFrames.
scikit-lego - Trafo khusus untuk saluran pipa.
skoot - Fungsi pembantu pipa.
pengkodean kategorikal - Pengkodean kategoris variabel, vtreat (paket R).
kotor_cat - Mengkodekan variabel kategoris kotor.
patsy - sintaks seperti R untuk model statistik.
mlxtend - LDA.
featuretools - Rekayasa fitur otomatis, misalnya.
tsfresh - Rekayasa fitur deret waktu.
pypeln - Pipa data serentak.
feature_engine - Encoder, transformer, dll.

Gambar Rekayasa Fitur

skimage - Regionprops: area, eksentrisitas, luas.
mahotas - fitur Zernike, Haralick, LBP, dan TAS.
pyradiomics - Fitur radiomik dari pencitraan medis.
pyefd - deskriptor fitur elips, mendekati kontur dengan deret Fourier.

Bicara
Seri posting blog - 1, 2, 3, 4
Tutorial - 1, 2
sklearn - Pemilihan fitur.
eli5 - Pemilihan fitur menggunakan kepentingan permutasi.
scikit-feature - Algoritma pemilihan fitur.
pemilihan stabilitas - Pemilihan stabilitas.
scikit-rebate - Algoritme pemilihan fitur berbasis bantuan.
scikit-genetik - Seleksi fitur genetik.
boruta_py - Pemilihan fitur, penjelasan, contoh.
linselect - Paket pemilihan fitur.
mlxtend - Pilihan fitur yang lengkap.
BoostARoota - Algoritma pemilihan fitur Xgboost.
INVASE - Pemilihan Variabel Instance-bijaksana menggunakan Neural Networks.

Periksa juga bagian Pengelompokan untuk ide!
Tinjauan

PCA - tautan
Autoencoder - tautan
Isomap - tautan
LLE - tautan
Gambar grafik yang diarahkan secara paksa - tautan
MDS - tautan
Peta Difusi - tautan
t-SNE - tautan
NeRV - tautan, kertas
MDR - tautan
UMAP - tautan
Ivis - tautan

Bicara, tsne intro. sklearn.manifold dan sklearn.decomposition - PCA, t-SNE, MDS, Isomaps dan lain-lain.
pangeran - Pengurangan dimensi, analisis faktor (PCA, MCA, CA, FAMD).
Implementasi t-SNE yang lebih cepat: lvdmaaten, MulticoreTSNE, FIt-SNE umap - Uniform Manifold Approximation and Projection, talk, explorer, penjelasan, versi paralel.
sleepwalk - Jelajahi embeddings, visualisasi interaktif (paket R).
somoclu - Peta yang mengatur sendiri.
scikit-tda - Analisis Data Topologi, paper, talk, talk, paper.
giotto-tda - Analisis Data Topologi.
ivis - Pengurangan dimensi menggunakan Jaringan Siam.
trimap - Pengurangan dimensi menggunakan triplet.
scanpy - Gambar grafik yang diarahkan secara paksa, Peta Difusi.
direpack - Pengejaran proyeksi, Pengurangan dimensi yang memadai, Penduga-M yang tangguh.
DBS - DatabionicSwarm (paket R).

iterative-stratification - Validator silang dengan stratifikasi untuk data multilabel.
livelossplot - Plot kehilangan pelatihan langsung di Jupyter Notebook.

Semua grafik, monumen Austria.
manset - Pustaka visualisasi dinamis, pembungkus untuk plotly, medium, contoh.
physt - Histogram, talk, notebook yang lebih baik.
histogram cepat - Histogram cepat.
matplotlib_venn - Diagram Venn, alternatif.
joypy - Gambar plot kepadatan bertumpuk (= plot punggungan), plot punggungan di seaborn.
plot mosaik - Visualisasi variabel kategoris, contoh.
scikit-plot - Kurva ROC dan visualisasi lainnya untuk model ML.
yellowbrick - Visualisasi untuk model ML (mirip dengan scikit-plot).
bokeh - Pustaka visualisasi interaktif, Contoh, Contoh.
memungkinkan-plot - Plotting perpustakaan.
animatplot - Plot animasi dibangun di atas matplotlib.
plotnine - ggplot untuk Python.
altair - Pustaka visualisasi statistik deklaratif.
bqplot - Merencanakan perpustakaan untuk Notebook IPython/Jupyter.
hvplot - Pustaka plot tingkat tinggi yang dibangun di atas holoview.
dtreeviz - Visualisasi pohon keputusan dan interpretasi model.
chartify - Menghasilkan grafik.
VivaGraphJS - Visualisasi grafik (paket JS).
pm - Visualisasi grafik 3D yang dapat dinavigasi (paket JS), contoh.
python-ternary - Plot segitiga.
falcon - Visualisasi interaktif untuk data besar.
hiplot - Plotting Interaktif dimensi tinggi.
visdom - Visualisasi Langsung.
mpl-scatter-density - Plot kepadatan pencar. Alternatif untuk 2d-histogram.

palettable - Palet warna dari colorbrewer2.
colorcet - Kumpulan peta warna yang seragam secara persepsi.

superset - Solusi dasbor oleh Apache.
streamlit - Solusi dasbor. Sumber Daya, Komponen Galeri, peristiwa bokeh.
dash - Solusi dasbor oleh plot.ly. Sumber daya.
visdom - Dasbor perpustakaan oleh facebook.
panel - Solusi dasbor.
contoh altair - Video.
voila - Ubah notebook Jupyter menjadi aplikasi web mandiri.

sampel - Teknik pengambilan sampel untuk desain survei yang kompleks.

folium - Plot peta geografis menggunakan perpustakaan Leaflet.js, plugin jupyter.
gmaps - Google Maps untuk notebook Jupyter.
stadiamaps - Plot peta geografis.
datashader - Gambar jutaan titik di peta.
sklearn - BallTree, Contoh.
pynndescent - Keturunan tetangga terdekat untuk perkiraan tetangga terdekat.
geocoder - Geocoding alamat, alamat IP.
Konversi format geo yang berbeda: bicara, repo
geopandas - Alat untuk data geografis
Alat Geospasial Tingkat Rendah (GEOS, GDAL/OGR, PROJ.4)
Data Vektor (Shapely, Fiona, Pyproj)
Data Raster (Rasterio)
Plotting (Descartes, Catropy)
Prediksi indikator ekonomi dari Open Street Map ipynb.
PySal - Pustaka Analisis Spasial Python.
geografi - Ekstrak negara, wilayah, dan kota dari URL atau teks.
cartogram - Peta terdistorsi berdasarkan populasi.

Contoh: 1, 2, 2-ipynb, 3.
surprise - Recommender, talk.
turicreate - Recommender.
implicit - Fast Collaborative Filtering for Implicit Feedback Datasets.
spotlight - Deep recommender models using PyTorch.
lightfm - Recommendation algorithms for both implicit and explicit feedback.
funk-svd - Fast SVD.
pywFM - Factorization.

Intro to Decision Trees and Random Forests, Intro to Gradient Boosting
lightgbm - Gradient boosting (GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, doc.
xgboost - Gradient boosting (GBDT, GBRT or GBM) library, doc, Methods for CIs: link1, link2.
catboost - Gradient boosting.
h2o - Gradient boosting and general machine learning framework.
snapml - Gradient boosting and general machine learning framework by IBM, for CPU and GPU. PyPI
pycaret - Wrapper for xgboost, lightgbm, catboost etc.
thundergbm - GBDTs and Random Forest.
h2o - Gradient boosting.
forestci - Confidence intervals for random forests.
scikit-garden - Quantile Regression.
grf - Generalized random forest.
dtreeviz - Decision tree visualization and model interpretation.
Nuance - Decision tree visualization.
rfpimp - Feature Importance for RandomForests using Permuation Importance.
Why the default feature importance for random forests is wrong: link
treeinterpreter - Interpreting scikit-learn's decision tree and random forest predictions.
bartpy - Bayesian Additive Regression Trees.
infiniteboost - Combination of RFs and GBDTs.
merf - Mixed Effects Random Forest for Clustering, video
rrcf - Robust Random Cut Forest algorithm for anomaly detection on streams.

Natural Language Processing (NLP) / Text Processing

talk-nb, nb2, talk.
Text classification Intro, Preprocessing blog post.
gensim - NLP, doc2vec, word2vec, text processing, topic modelling (LSA, LDA), Example, Coherence Model for evaluation.
Embeddings - GloVe ([1], [2]), StarSpace, wikipedia2vec, visualization.
magnitude - Vector embedding utility package.
pyldavis - Visualization for topic modelling.
spaCy - NLP.
NTLK - NLP, helpful KMeansClusterer with cosine_distance .
pytext - NLP from Facebook.
fastText - Efficient text classification and representation learning.
annoy - Approximate nearest neighbor search.
faiss - Approximate nearest neighbor search.
pysparnn - Approximate nearest neighbor search.
infomap - Cluster (word-)vectors to find topics, example.
datasketch - Probabilistic data structures for large data (MinHash, HyperLogLog).
flair - NLP Framework by Zalando.
stanfordnlp - NLP Library.
Chatistics - Turn Messenger, Hangouts, WhatsApp and Telegram chat logs into DataFrames.
textvec - Supervised text vectorization tool.

scanpy - Analyze single-cell gene expression data, tutorial.

mahotas - Image processing (Bioinformatics), example.
imagepy - Software package for bioimage analysis.
CellProfiler - Biological image analysis.
imglyb - Viewer for large images, talk, slides.
microscopium - Unsupervised clustering of images + viewer, talk.
cytokit - Analyzing properties of cells in fluorescent microscopy datasets.

imgaug - More sophisticated image preprocessing.
Augmentor - Image augmentation library.
keras preprocessing - Preprocess images.
albumentations - Wrapper around imgaug and other libraries.
augmix - Image augmentation from Google.
kornia - Image augmentation, feature extraction and loss functions.
augly - Image, audio, text, video augmentation from Facebook.

SegLoss - List of loss functions for medical image segmentation.

ktext - Utilities for pre-processing text for deep learning in Keras.
textgenrnn - Ready-to-use LSTM for text generation.
ctrl - Text generation.

keras - Neural Networks on top of tensorflow, examples.
keras-contrib - Keras community contributions.
keras-tuner - Hyperparameter tuning for Keras.
hyperas - Keras + Hyperopt: Convenient hyperparameter optimization wrapper.
elephas - Distributed Deep learning with Keras & Spark.
tflearn - Neural Networks on top of tensorflow.
tensorlayer - Neural Networks on top of tensorflow, tricks.
tensorforce - Tensorflow for applied reinforcement learning.
fastai - Neural Networks in pytorch.
pytorch-optimizer - Collection of optimizers for pytorch.
ignite - Highlevel library for pytorch.
skorch - Scikit-learn compatible neural network library that wraps pytorch, talk, slides.
autokeras - AutoML for deep learning.
PlotNeuralNet - Plot neural networks.
lucid - Neural network interpretability, Activation Maps.
tcav - Interpretability method.
AdaBound - Optimizer that trains as fast as Adam and as good as SGD, alt.
foolbox - Adversarial examples that fool neural networks.
hiddenlayer - Training metrics.
imgclsmob - Pretrained models.
netron - Visualizer for deep learning and machine learning models.
torchcv - Deep Learning in Computer Vision.
pytorch-lightning - Wrapper around PyTorch.

flexflow - Distributed TensorFlow Keras and PyTorch.

netron - Viewer for neural networks.

Object detection / Instance Segmentation

segmentation_models - Segmentation models with pretrained backbones: Unet, FPN, Linknet, PSPNet.
yolact - Fully convolutional model for real-time instance segmentation.
EfficientDet Pytorch, EfficientDet Keras - Scalable and Efficient Object Detection.
detectron2 - Object Detection (Mask R-CNN) by Facebook.
simpledet - Object Detection and Instance Recognition.
CenterNet - Object detection.
FCOS - Fully Convolutional One-Stage Object Detection.
norfair - Real-time 2D object tracking.

cvat - Image annotation tool.
pigeon - Create annotations from within a Jupyter notebook.

nfnets - Neural network.
efficientnet - Neural network.

Applications and Snippets

CycleGAN and Pix2pix - Various image-to-image tasks.
SPADE - Semantic Image Synthesis.
Entity Embeddings of Categorical Variables, code, kaggle
Image Super-Resolution - Super-scaling using a Residual Dense Network.
Cell Segmentation - Talk, Blog Posts: 1, 2
deeplearning-models - Deep learning models.

Variational Autoencoders (VAE)

disentanglement_lib - BetaVAE, FactorVAE, BetaTCVAE, DIP-VAE.

Graph-Based Neural Networks

How to do Deep Learning on Graphs with Graph Convolutional Networks
Introduction To Graph Convolutional Networks
ogb - Open Graph Benchmark, Benchmark datasets.
networkx - Graph library.
cugraph - RAPIDS, Graph library on the GPU.
pytorch-geometric - Various methods for deep learning on graphs.
dgl - Deep Graph Library.
graph_nets - Build graph networks in Tensorflow, by deepmind.

Other neural network and deep learning frameworks

caffe - Deep learning framework, pretrained models.
mxnet - Deep learning framework, book.

hummingbird - Compile trained ML models into tensor computations (by Microsoft).

cuML - RAPIDS, Run traditional tabular ML tasks on GPUs, Intro.
thundergbm - GBDTs and Random Forest.
thundersvm - Support Vector Machines.
Legate Numpy - Distributed Numpy array multiple using GPUs by Nvidia (not released yet) video.

Understanding SVM Regression: slides, forum, paper

pyearth - Multivariate Adaptive Regression Splines (MARS), tutorial.
pygam - Generalized Additive Models (GAMs), Explanation.
GLRM - Generalized Low Rank Models.
tweedie - Specialized distribution for zero inflated targets, Talk.

metric-learn - Supervised and weakly-supervised metric learning algorithms.
pytorch-metric-learning - Pytorch metric learning.
deep_metric_learning - Methods for deep metric learning.
ivis - Metric learning using siamese neural networks.

Overview of clustering algorithms applied image data (= Deep Clustering).
Clustering with Deep Learning: Taxonomy and New Methods.
hdbscan - Clustering algorithm, talk, blog.
pyclustering - All sorts of clustering algorithms.
FCPS - Fundamental Clustering Problems Suite (R package).
GaussianMixture - Generalized k-means clustering using a mixture of Gaussian distributions, video.
nmslib - Similarity search library and toolkit for evaluation of k-NN methods.
buckshotpp - Outlier-resistant and scalable clustering algorithm.
merf - Mixed Effects Random Forest for Clustering, video
tree-SNE - Hierarchical clustering algorithm based on t-SNE.
MiniSom - Pure Python implementation of the Self Organizing Maps.
distribution_clustering, paper, related paper, alt.
phenograph - Clustering by community detection.

Assessing the quality of a clustering (video)
fpc - Various methods for clustering and cluster validation (R package).

  • Minimum distance between any two clusters
  • Distance between centroids
  • p-separation index: Like minimum distance. Look at the average distance to nearest point in different cluster for p=10% "border" points in any cluster. Measuring density, measuring mountains vs valleys
  • Estimate density by weighted count of close points Other measures
  • Within-cluster average distance
  • Mean of within-cluster average distance over nearest-cluster average distance (silhouette score)
  • Within-cluster similarity measure to normal/uniform
  • Within-cluster (squared) distance to centroid (this is the k-Means loss function)
  • Correlation coefficient between distance we originally had to the distance the are induced by the clustering (Huberts Gamma)
  • Entropy of cluster sizes
  • Average largest within-cluster gap
  • Variation of clusterings on bootstrapped data

Interpretable Classifiers and Regressors

skope-rules - Interpretable classifier, IF-THEN rules.
sklearn-expertsys - Interpretable classifiers, Bayesian Rule List classifier.

Signal Processing and Filtering

statsmodels - Time series analysis, seasonal decompose example, SARIMA, granger causality.
kats - Time series prediction library by Facebook.
prophet - Time series prediction library by Facebook.
pyramid, pmdarima - Wrapper for (Auto-) ARIMA.
pyflux - Time series prediction algorithms (ARIMA, GARCH, GAS, Bayesian).
atspy - Automated Time Series Models.
pm-prophet - Time series prediction and decomposition library.
htsprophet - Hierarchical Time Series Forecasting using Prophet.
nupic - Hierarchical Temporal Memory (HTM) for Time Series Prediction and Anomaly Detection.
tensorflow - LSTM and others, examples: link, link, link, Explain LSTM, seq2seq: 1, 2, 3, 4
tspreprocess - Preprocessing: Denoising, Compression, Resampling.
tsfresh - Time series feature engineering.
thunder - Data structures and algorithms for loading, processing, and analyzing time series data.
gatspy - General tools for Astronomical Time Series, talk.
gendis - shapelets, example.
tslearn - Time series clustering and classification, TimeSeriesKMeans , TimeSeriesKMeans .
pastas - Simulation of time series.
fastdtw - Dynamic Time Warp Distance.
fable - Time Series Forecasting (R package).
CausalImpact - Causal Impact Analysis (R package).
pydlm - Bayesian time series modeling (R package, Blog post)
PyAF - Automatic Time Series Forecasting.
luminol - Anomaly Detection and Correlation library from Linkedin.
matrixprofile-ts - Detecting patterns and anomalies, website, ppt, alternative.
stumpy - Another matrix profile library.
obspy - Seismology package. Useful classic_sta_lta function.
RobustSTL - Robust Seasonal-Trend Decomposition.
seglearn - Time Series library.
pyts - Time series transformation and classification, Imaging time series.
Turn time series into images and use Neural Nets: example, example.
sktime, sktime-dl - Toolbox for (deep) learning with time series.
adtk - Time Series Anomaly Detection.
rocket - Time Series classification using random convolutional kernels.
luminaire - Anomaly Detection for time series.

TimeSeriesSplit - Sklearn time series split.
tscv - Evaluation with gap.

Tutorial on using cvxpy: 1, 2
pandas-datareader - Read stock data.
yfinance - Read stock data from Yahoo Finance.
findatapy - Read stock data from various sources.
ta - Technical analysis library.
backtrader - Backtesting for trading strategies.
surpriver - Find high moving stocks before they move using anomaly detection and machine learning.
ffn - Financial functions.
bt - Backtesting algorithms.
alpaca-trade-api-python - Commission-free trading through API.
eiten - Eigen portfolios, minimum variance portfolios and other algorithmic investing strategies.
tf-quant-finance - Quantitative finance tools in tensorflow, by Google.
quantstats - Portfolio management.

pyfolio - Portfolio and risk analytics.
zipline - Algorithmic trading.
alphalens - Performance analysis of predictive stock factors.
empyrical - Financial risk metrics.
trading_calendars - Calendars for various securities exchanges.

Time-dependent Cox Model in R.
lifelines - Survival analysis, Cox PH Regression, talk, talk2.
scikit-survival - Survival analysis.
xgboost - "objective": "survival:cox" NHANES example
survivalstan - Survival analysis, intro.
convoys - Analyze time lagged conversions.
RandomSurvivalForests (R packages: randomForestSRC, ggRandomForests).
pysurvival - Survival analysis .

Outlier Detection & Anomaly Detection

sklearn - Isolation Forest and others.
pyod - Outlier Detection / Anomaly Detection.
eif - Extended Isolation Forest.
AnomalyDetection - Anomaly detection (R package).
luminol - Anomaly Detection and Correlation library from Linkedin.
Distances for comparing histograms and detecting outliers - Talk: Kolmogorov-Smirnov, Wasserstein, Energy Distance (Cramer), Kullback-Leibler divergence.
banpei - Anomaly detection library based on singular spectrum transformation.
telemanom - Detect anomalies in multivariate time series data using LSTMs.
luminaire - Anomaly Detection for time series.

lightning - Large-scale linear classification, regression and ranking.

SLIM - Scoring systems for classification, Supersparse linear integer models.

Probabilistic Modeling and Bayes

Intro, Guide
PyMC3 - Baysian modelling, intro
pomegranate - Probabilistic modelling, talk.
pmlearn - Probabilistic machine learning.
arviz - Exploratory analysis of Bayesian models.
zhusuan - Bayesian deep learning, generative models.
dowhy - Estimate causal effects.
edward - Probabilistic modeling, inference, and criticism, Mixture Density Networks (MNDs), MDN Explanation.
Pyro - Deep Universal Probabilistic Programming.
tensorflow probability - Deep learning and probabilistic modelling, talk, example.
bambi - High-level Bayesian model-building interface on top of PyMC3.
neural-tangents - Infinite Neural Networks.

Visualization, Article
GPyOpt - Gaussian process optimization.
GPflow - Gaussian processes (Tensorflow).
gpytorch - Gaussian processes (Pytorch).

Stacking Models and Ensembles

Model Stacking Blog Post
mlxtend - EnsembleVoteClassifier , StackingRegressor , StackingCVRegressor for model stacking.
vecstack - Stacking ML models.
StackNet - Stacking ML models.
mlens - Ensemble learning.
combo - Combining ML models (stacking, ensembling).

pycm - Multi-class confusion matrix.
pandas_ml - Confusion matrix.
Plotting learning curve: link.
yellowbrick - Learning curve.

uncertainty-toolbox - Predictive uncertainty quantification, calibration, metrics, and visualization.

Model Explanation, Interpretability, Feature Importance

Book, Examples
shap - Explain predictions of machine learning models, talk.
treeinterpreter - Interpreting scikit-learn's decision tree and random forest predictions.
lime - Explaining the predictions of any machine learning classifier, talk, Warning (Myth 7).
lime_xgboost - Create LIMEs for XGBoost.
eli5 - Inspecting machine learning classifiers and explaining their predictions.
lofo-importance - Leave One Feature Out Importance, talk, examples: 1, 2, 3.
pybreakdown - Generate feature contribution plots.
FairML - Model explanation, feature importance.
pycebox - Individual Conditional Expectation Plot Toolbox.
pdpbox - Partial dependence plot toolbox, example.
partial_dependence - Visualize and cluster partial dependence.
skater - Unified framework to enable model interpretation.
anchor - High-Precision Model-Agnostic Explanations for classifiers.
l2x - Instancewise feature selection as methodology for model interpretation.
contrastive_explanation - Contrastive explanations.
DrWhy - Collection of tools for explainable AI.
lucid - Neural network interpretability.
xai - An eXplainability toolbox for machine learning.
innvestigate - A toolbox to investigate neural network predictions.
dalex - Explanations for ML models (R package).
interpret - Fit interpretable models, explain models (Microsoft).
causalml - Causal inference by Uber.

Automated Machine Learning

AdaNet - Automated machine learning based on tensorflow.
tpot - Automated machine learning tool, optimizes machine learning pipelines.
auto_ml - Automated machine learning for analytics & production.
autokeras - AutoML for deep learning.
nni - Toolkit for neural architecture search and hyper-parameter tuning by Microsoft.
automl-gs - Automated machine learning.
mljar - Automated machine learning.
automl_zero - Automatically discover computer programs that can solve machine learning tasks from Google.

Graph Representation Learning

Karate Club - Unsupervised learning on graphs.
Pytorch Geometric - Graph representation learning with PyTorch.
DLG - Graph representation learning with TensorFlow.

cvxpy - Modeling language for convex optimization problems. Tutorial: 1, 2

Evolutionary Algorithms & Optimization

deap - Evolutionary computation framework (Genetic Algorithm, Evolution strategies).
evol - DSL for composable evolutionary algorithms, talk.
platypus - Multiobjective optimization.
autograd - Efficiently computes derivatives of numpy code.
nevergrad - Derivation-free optimization.
gplearn - Sklearn-like interface for genetic programming.
blackbox - Optimization of expensive black-box functions.
Optometrist algorithm - paper.
DeepSwarm - Neural architecture search.

sklearn - GridSearchCV, RandomizedSearchCV.
sklearn-deap - Hyperparameter search using genetic algorithms.
hyperopt - Hyperparameter optimization.
hyperopt-sklearn - Hyperopt + sklearn.
optuna - Hyperparamter optimization, Talk.
skopt - BayesSearchCV for Hyperparameter search.
tune - Hyperparameter search with a focus on deep learning and deep reinforcement learning.
hypergraph - Global optimization methods and hyperparameter optimization.
bbopt - Black box hyperparameter optimization.
dragonfly - Scalable Bayesian optimisation.

Incremental Learning, Online Learning

sklearn - PassiveAggressiveClassifier, PassiveAggressiveRegressor.
creme-ml - Incremental learning framework, talk.
Kaggler - Online Learning algorithms.
onelearn - Online Random Forests.

Talk
modAL - Active learning framework.

YouTube, YouTube
Intro to Monte Carlo Tree Search (MCTS) - 1, 2, 3
AlphaZero methodology - 1, 2, 3, Cheat Sheet
RLLib - Library for reinforcement learning.
Horizon - Facebook RL framework.

Deployment and Lifecycle Management

dephell - Dependency management.
poetry - Dependency management.
pyup - Dependency management.
pypi-timemachine - Install packages with pip as if you were in the past.

Data Versioning and Pipelines

dvc - Version control for large files.
hangar - Version control for tensor data.
kedro - Build data pipelines.

m2cgen - Transpile trained ML models into other languages.
sklearn-porter - Transpile trained scikit-learn estimators to C, Java, JavaScript and others.
mlflow - Manage the machine learning lifecycle, including experimentation, reproducibility and deployment.
modelchimp - Experiment Tracking.
skll - Command-line utilities to make it easier to run machine learning experiments.
BentoML - Package and deploy machine learning models for serving in production.
dagster - Tool with focus on dependency graphs.
knockknock - Be notified when your training ends.
metaflow - Lifecycle Management Tool by Netflix.
cortex - Deploy machine learning models.

daft - Render probabilistic graphical models using matplotlib.
unyt - Working with units.
scrapy - Web scraping library.
VowpalWabbit - ML Toolkit from Microsoft.

General Python Programming

more_itertools - Extension of itertools.
funcy - Fancy and practical functional tools.
dateparser - A better date parser.
jellyfish - Approximate string matching.
coloredlogs - Colored logging output.


Hough_line_peaks¶

Return peaks in a straight line Hough transform.

Identifies most prominent lines separated by a certain angle and distance in a Hough transform. Non-maximum suppression with different sizes is applied separately in the first (distances) and second (angles) dimension of the Hough space to identify peaks.

Parameter hspace (N, M) array

Hough space returned by the hough_line function.

sudut (M,) array

Angles returned by the hough_line function. Assumed to be continuous. (angles[-1] - angles[0] == PI).

dists (N, ) array

Distances returned by the hough_line function.

min_distance int, optional

Minimum distance separating lines (maximum filter size for first dimension of hough space).

min_angle int, optional

Minimum angle separating lines (maximum filter size for second dimension of hough space).

ambang float, optional

Minimum intensity of peaks. Default is 0.5 * max(hspace).

num_peaks int, optional

Maximum number of peaks. When the number of peaks exceeds num_peaks, return num_peaks coordinates based on peak intensity.

Returns accum, angles, dists tuple of array

Peak values in Hough space, angles and distances.

Examples using skimage.transform.hough_line_peaks ¶


Kesimpulan:

Congratulation! You have just learned a convex hull, an extra tool to work with your data. Data science is not always a linear regression line. Most of the time, you will work with messy data. Thus, knowing what tools are out there will give you the flexibility and power over your data.

If you are curious about how to code this algorithm with Python, you can find and fork the source code in my Github repository. In my notebook, I explain in detail each piece of code as well as provide the functions you need for the algorithm (counter-clockwise, point class, from points to vector, cross product, etc). Maybe gaining the understanding of this code will give you the confidence to try out with other computation geometry algorithms and create your own module in Python?

I like to write about basic data science concepts and play with different algorithms and data science tools. You could connect with me on LinkedIn and Twitter.

Star this repo if you want to check out the codes for all of the articles I have written. Follow me on Medium to stay informed with my latest data science articles like these:


Tonton videonya: 20 - Pengenalan pemrosesan gambar menggunakan scikit-image dengan Python