cari
Rumahpembangunan bahagian belakangTutorial PythonLapan perpustakaan Python untuk meningkatkan produktiviti sains data!

Lapan perpustakaan Python untuk meningkatkan produktiviti sains data!

1. Optuna

Optuna ialah rangka kerja pengoptimuman hiperparameter sumber terbuka yang boleh mencari hiperparameter terbaik untuk model pembelajaran mesin secara automatik.

Alternatif paling asas (dan mungkin terkenal) ialah GridSearchCV sklearn, yang akan mencuba gabungan hiperparameter berbilang dan memilih yang terbaik berdasarkan pengesahan silang.

GridSearchCV akan mencuba gabungan dalam ruang yang ditentukan sebelum ini. Sebagai contoh, untuk pengelas hutan rawak, anda mungkin mahu menguji kedalaman maksimum beberapa pokok yang berbeza. GridSearchCV menyediakan semua nilai yang mungkin untuk setiap hiperparameter dan melihat semua kombinasi.

Optuna menggunakan sejarah percubaannya sendiri dalam ruang carian yang ditentukan untuk menentukan nilai yang hendak dicuba seterusnya. Kaedah yang digunakan ialah algoritma pengoptimuman Bayesian yang dipanggil "Penanggaran Parzen Berstruktur Pokok".

Pendekatan berbeza ini bermakna bahawa bukannya mencuba setiap nilai secara sia-sia, ia mencari calon terbaik sebelum mencuba, yang menjimatkan masa yang akan dibelanjakan untuk mencuba. Tiada harapan untuk alternatif (dan yang mungkin juga menghasilkan keputusan yang lebih baik).

Akhir sekali, ia adalah rangka kerja agnostik, yang bermaksud anda boleh menggunakannya dengan TensorFlow, Keras, PyTorch atau mana-mana rangka kerja ML yang lain.

2. ITMO_FS

ITMO_FS ialah perpustakaan pemilihan ciri yang boleh melakukan pemilihan ciri untuk model ML. Semakin sedikit pemerhatian yang anda miliki, semakin berhati-hati anda perlu menggunakan terlalu banyak ciri untuk mengelak daripada pemasangan berlebihan. Dengan "berhemat" saya maksudkan anda harus menyeragamkan model anda. Biasanya model yang lebih ringkas (ciri yang lebih sedikit) lebih mudah difahami dan ditafsir.

Algoritma ITMO_FS dibahagikan kepada 6 kategori berbeza: penapis diselia, penapis tidak diselia, pembalut, hibrid, terbenam, ensembel (walaupun ia tertumpu terutamanya pada penapis yang diselia).

Contoh mudah algoritma "penapis diselia" adalah untuk memilih ciri berdasarkan korelasinya dengan pembolehubah sasaran. Dengan "pemilihan ke belakang", anda boleh cuba mengalih keluar ciri satu demi satu dan mengesahkan cara ciri ini mempengaruhi keupayaan ramalan model.

Berikut ialah contoh remeh tentang cara menggunakan ITMO_FS dan kesannya pada skor model:

>>> from sklearn.linear_model import SGDClassifier
>>> from ITMO_FS.embedded import MOS
>>> X, y = make_classification(n_samples=300, n_features=10, random_state=0, n_informative=2)
>>> sel = MOS()
>>> trX = sel.fit_transform(X, y, smote=False)
>>> cl1 = SGDClassifier()
>>> cl1.fit(X, y)
>>> cl1.score(X, y)
0.9033333333333333
>>> cl2 = SGDClassifier()
>>> cl2.fit(trX, y)
>>> cl2.score(trX, y)
0.9433333333333334

ITMO_FS ialah perpustakaan yang agak baharu, jadi ia masih agak baharu Stabil, tetapi Saya masih mengesyorkan mencubanya.

3. shap-hypetune

Setakat ini kami telah melihat perpustakaan untuk pemilihan ciri dan penalaan hiperparameter, tetapi mengapa tidak menggunakan kedua-duanya pada masa yang sama ? Inilah yang dilakukan oleh shap-hypetune.

Mari kita mulakan dengan memahami apa itu “SHAP”:

“SHAP (SHapley Additive exPlanations) ialah kaedah teori permainan untuk menerangkan sebarang model pembelajaran mesin Output daripada ”

SHAP ialah salah satu perpustakaan yang paling banyak digunakan untuk mentafsir model, dan ia berfungsi dengan menjana kepentingan setiap ciri kepada ramalan akhir model.

Sebaliknya, shap-hypertune mendapat manfaat daripada pendekatan ini untuk memilih ciri terbaik tetapi juga hiperparameter terbaik. Mengapa anda mahu menggabungkan mereka bersama-sama? Memilih ciri dan menala hiperparameter secara bebas boleh membawa kepada pilihan suboptimum kerana interaksinya tidak dipertimbangkan. Melakukan kedua-duanya secara serentak bukan sahaja mengambil kira perkara ini, tetapi juga menjimatkan masa pengekodan (walaupun masa jalan mungkin meningkat disebabkan ruang carian yang meningkat).

Carian boleh dilakukan dalam 3 cara: carian grid, carian rawak atau carian Bayesian (tambahan, ia boleh disejajarkan).

Walau bagaimanapun, shap-hypertune hanya berfungsi pada model penggalak kecerunan!

4. PyCaret

PyCaret ialah perpustakaan pembelajaran mesin kod rendah sumber terbuka yang mengautomasikan aliran kerja pembelajaran mesin. Ia meliputi analisis data penerokaan, prapemprosesan, pemodelan (termasuk kebolehtafsiran), dan MLOps.

Mari kita lihat beberapa contoh praktikal di tapak web mereka untuk melihat cara ia berfungsi:

# load dataset
from pycaret.datasets import get_data
diabetes = get_data('diabetes')
# init setup
from pycaret.classification import *
clf1 = setup(data = diabetes, target = 'Class variable')
# compare models
best = compare_models()

Lapan perpustakaan Python untuk meningkatkan produktiviti sains data!

Hanya beberapa Dengan hanya beberapa baris kod, anda boleh mencuba berbilang model dan membandingkannya merentas metrik pengelasan utama.

Ia juga membenarkan penciptaan aplikasi asas untuk berinteraksi dengan model:

from pycaret.datasets import get_data
juice = get_data('juice')
from pycaret.classification import *
exp_name = setup(data = juice,target = 'Purchase')
lr = create_model('lr')
create_app(lr)

Akhir sekali, fail API dan Docker boleh dibuat dengan mudah untuk model:

from pycaret.datasets import get_data
juice = get_data('juice')
from pycaret.classification import *
exp_name = setup(data = juice,target = 'Purchase')
lr = create_model('lr')
create_api(lr, 'lr_api')
create_docker('lr_api')

Ia tidak menjadi lebih mudah daripada ini, bukan?

PyCaret ialah perpustakaan yang sangat lengkap dan sukar untuk merangkumi segala-galanya di sini, disyorkan agar anda memuat turunnya sekarang dan mula menggunakannya untuk memahami beberapa keupayaannya dalam amalan.

5. floWeaver

FloWeaver boleh menjana gambar rajah Sankey daripada set data penstriman. Jika anda tidak tahu apa itu gambar rajah Sankey, berikut ialah contoh:

Lapan perpustakaan Python untuk meningkatkan produktiviti sains data!

Ia sangat berguna apabila menunjukkan data untuk corong penukaran, perjalanan pemasaran atau belanjawan peruntukan (Contoh di atas). Data portal hendaklah dalam format berikut: "sumber x sasaran x nilai" Plot sedemikian boleh dibuat dengan hanya satu baris kod (sangat khusus, tetapi juga sangat intuitif).

6、Gradio

如果你阅读过敏捷数据科学,就会知道拥有一个让最终用户从项目开始就与数据进行交互的前端界面是多么有帮助。一般情况下在Python中最常用是 Flask,但它对初学者不太友好,它需要多个文件和一些 html、css 等知识。

Gradio 允许您通过设置输入类型(文本、复选框等)、功能和输出来创建简单的界面。尽管它似乎不如 Flask 可定制,但它更直观。

由于 Gradio 现在已经加入 Huggingface,可以在互联网上永久托管 Gradio 模型,而且是免费的!

7、Terality

理解 Terality 的最佳方式是将其视为“Pandas ,但速度更快”。这并不意味着完全替换 pandas 并且必须重新学习如何使用df:Terality 与 Pandas 具有完全相同的语法。实际上,他们甚至建议“import Terality as pd”,并继续按照以前的习惯的方式进行编码。

它快多少?他们的网站有时会说它快 30 倍,有时快 10 到 100 倍。

另一个重要是 Terality 允许并行化并且它不在本地运行,这意味着您的 8GB RAM 笔记本电脑将不会再出现 MemoryErrors!

但它在背后是如何运作的呢?理解 Terality 的一个很好的比喻是可以认为他们在本地使用的 Pandas 兼容的语法并编译成 Spark 的计算操作,使用Spark进行后端的计算。所以计算不是在本地运行,而是将计算任务提交到了他们的平台上。

那有什么问题呢?每月最多只能免费处理 1TB 的数据。如果需要更多则必须每月至少支付 49 美元。1TB/月对于测试工具和个人项目可能绰绰有余,但如果你需要它来实际公司使用,肯定是要付费的。

8、torch-handle

如果你是Pytorch的使用者,可以试试这个库。

torchhandle是一个PyTorch的辅助框架。它将PyTorch繁琐和重复的训练代码抽象出来,使得数据科学家们能够将精力放在数据处理、创建模型和参数优化,而不是编写重复的训练循环代码。使用torchhandle,可以让你的代码更加简洁易读,让你的开发任务更加高效。

torchhandle将Pytorch的训练和推理过程进行了抽象整理和提取,只要使用几行代码就可以实现PyTorch的深度学习管道。并可以生成完整训练报告,还可以集成tensorboard进行可视化。

from collections import OrderedDict
import torch
from torchhandle.workflow import BaseConpython
class Net(torch.nn.Module):
def __init__(self, ):
super().__init__()
self.layer = torch.nn.Sequential(OrderedDict([
('l1', torch.nn.Linear(10, 20)),
('a1', torch.nn.ReLU()),
('l2', torch.nn.Linear(20, 10)),
('a2', torch.nn.ReLU()),
('l3', torch.nn.Linear(10, 1))
]))

def forward(self, x):
x = self.layer(x)
return x

num_samples, num_features = int(1e4), int(1e1)
X, Y = torch.rand(num_samples, num_features), torch.rand(num_samples)
dataset = torch.utils.data.TensorDataset(X, Y)
trn_loader = torch.utils.data.DataLoader(dataset, batch_size=64, num_workers=0, shuffle=True)
loaders = {"train": trn_loader, "valid": trn_loader}
device = 'cuda' if torch.cuda.is_available() else 'cpu'

model = {"fn": Net}
criterion = {"fn": torch.nn.MSELoss}
optimizer = {"fn": torch.optim.Adam,
 "args": {"lr": 0.1},
 "params": {"layer.l1.weight": {"lr": 0.01},
"layer.l1.bias": {"lr": 0.02}}
 }
scheduler = {"fn": torch.optim.lr_scheduler.StepLR,
 "args": {"step_size": 2, "gamma": 0.9}
 }

c = BaseConpython(model=model,
criterion=criterion,
optimizer=optimizer,
scheduler=scheduler,
conpython_tag="ex01")
train = c.make_train_session(device, dataloader=loaders)
train.train(epochs=10)

定义一个模型,设置数据集,配置优化器、损失函数就可以自动训练了,是不是和TF差不多了。

Atas ialah kandungan terperinci Lapan perpustakaan Python untuk meningkatkan produktiviti sains data!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:51CTO.COM. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Python vs C: Lengkung pembelajaran dan kemudahan penggunaanPython vs C: Lengkung pembelajaran dan kemudahan penggunaanApr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python vs C: Pengurusan dan Kawalan MemoriPython vs C: Pengurusan dan Kawalan MemoriApr 19, 2025 am 12:17 AM

Python dan C mempunyai perbezaan yang signifikan dalam pengurusan dan kawalan memori. 1. Python menggunakan pengurusan memori automatik, berdasarkan pengiraan rujukan dan pengumpulan sampah, memudahkan kerja pengaturcara. 2.C memerlukan pengurusan memori manual, memberikan lebih banyak kawalan tetapi meningkatkan risiko kerumitan dan kesilapan. Bahasa mana yang harus dipilih harus berdasarkan keperluan projek dan timbunan teknologi pasukan.

Python untuk pengkomputeran saintifik: rupa terperinciPython untuk pengkomputeran saintifik: rupa terperinciApr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

Python dan C: Mencari alat yang betulPython dan C: Mencari alat yang betulApr 19, 2025 am 12:04 AM

Sama ada untuk memilih Python atau C bergantung kepada keperluan projek: 1) Python sesuai untuk pembangunan pesat, sains data, dan skrip kerana sintaks ringkas dan perpustakaan yang kaya; 2) C sesuai untuk senario yang memerlukan prestasi tinggi dan kawalan asas, seperti pengaturcaraan sistem dan pembangunan permainan, kerana kompilasi dan pengurusan memori manualnya.

Python untuk sains data dan pembelajaran mesinPython untuk sains data dan pembelajaran mesinApr 19, 2025 am 12:02 AM

Python digunakan secara meluas dalam sains data dan pembelajaran mesin, terutamanya bergantung pada kesederhanaannya dan ekosistem perpustakaan yang kuat. 1) PANDAS digunakan untuk pemprosesan dan analisis data, 2) Numpy menyediakan pengiraan berangka yang cekap, dan 3) SCIKIT-Learn digunakan untuk pembinaan dan pengoptimuman model pembelajaran mesin, perpustakaan ini menjadikan Python alat yang ideal untuk sains data dan pembelajaran mesin.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Pembelajaran Python: Adakah 2 jam kajian harian mencukupi?Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python untuk Pembangunan Web: Aplikasi UtamaPython untuk Pembangunan Web: Aplikasi UtamaApr 18, 2025 am 12:20 AM

Aplikasi utama Python dalam pembangunan web termasuk penggunaan kerangka Django dan Flask, pembangunan API, analisis data dan visualisasi, pembelajaran mesin dan AI, dan pengoptimuman prestasi. 1. Rangka Kerja Django dan Flask: Django sesuai untuk perkembangan pesat aplikasi kompleks, dan Flask sesuai untuk projek kecil atau sangat disesuaikan. 2. Pembangunan API: Gunakan Flask atau DjangorestFramework untuk membina Restfulapi. 3. Analisis Data dan Visualisasi: Gunakan Python untuk memproses data dan memaparkannya melalui antara muka web. 4. Pembelajaran Mesin dan AI: Python digunakan untuk membina aplikasi web pintar. 5. Pengoptimuman Prestasi: Dioptimumkan melalui pengaturcaraan, caching dan kod tak segerak

Python vs C: Meneroka Prestasi dan KecekapanPython vs C: Meneroka Prestasi dan KecekapanApr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa