Jadual Kandungan
1. Optuna
2. ITMO_FS
3. shap-hypetune
4. PyCaret
5. floWeaver
6、Gradio
7、Terality
8、torch-handle
Rumah pembangunan bahagian belakang Tutorial Python Lapan perpustakaan Python yang boleh meningkatkan produktiviti sains data anda dan menjimatkan masa yang berharga

Lapan perpustakaan Python yang boleh meningkatkan produktiviti sains data anda dan menjimatkan masa yang berharga

Apr 12, 2023 pm 05:01 PM
python membangun sains data

Apabila melakukan sains data, anda boleh membuang banyak masa pengekodan dan menunggu komputer anda menjalankan sesuatu. Jadi saya telah memilih beberapa perpustakaan Python yang boleh membantu anda menjimatkan masa berharga anda.

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 mencubanya, menjimatkan masa yang sebaliknya akan dibelanjakan untuk mencuba alternatif tanpa harapan (dan mungkin juga membuahkan hasil 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, kacukan, terbenam, ensembel (walaupun ia tertumpu terutamanya pada penapis 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 tidak stabil, tetapi saya masih mengesyorkan agar anda memberi ia satu percubaan.

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 Ini adalah peranan shap-hypetune.

Mari kita mulakan dengan memahami apa itu “SHAP”:

“SHAP (SHapley Additive exPlanations) ialah kaedah teori permainan untuk mentafsir output mana-mana model pembelajaran mesin.”

SHAP ialah salah satu perpustakaan yang paling banyak digunakan untuk mentafsir model, 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 ingin menggabungkannya bersama-sama Memilih ciri dan menala hiperparameter secara bebas boleh membawa kepada pilihan suboptimum kerana tanpa mengambil kira interaksi antara mereka. Melakukan kedua-duanya pada masa yang sama 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 dengan 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 yang boleh meningkatkan produktiviti sains data anda dan menjimatkan masa yang berharga

Dengan hanya beberapa baris kod, Anda boleh mencuba berbilang model dan membandingkannya merentas metrik klasifikasi 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, saya cadangkan anda memuat turunnya sekarang dan mula menggunakannya untuk mempelajari sedikit sebanyak tentang cara ia berfungsi dalam keupayaan 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 yang boleh meningkatkan produktiviti sains data anda dan menjimatkan masa yang berharga

Ia sangat berguna apabila menunjukkan data untuk corong penukaran, perjalanan pemasaran atau peruntukan belanjawan (contoh di atas). Data portal hendaklah dalam format berikut: "sumber x sasaran x nilai" Ia hanya memerlukan satu baris kod untuk mencipta plot sedemikian (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 BaseContext
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 = BaseContext(model=model,
criterion=criterion,
optimizer=optimizer,
scheduler=scheduler,
context_tag="ex01")
train = c.make_train_session(device, dataloader=loaders)
train.train(epochs=10)

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

Atas ialah kandungan terperinci Lapan perpustakaan Python yang boleh meningkatkan produktiviti sains data anda dan menjimatkan masa yang berharga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Panduan pemula ' s ke Rimworld: Odyssey
1 bulan yang lalu By Jack chen
Skop pembolehubah PHP dijelaskan
3 minggu yang lalu By 百草
Mengulas kod dalam php
3 minggu yang lalu By 百草
Petua untuk menulis komen php
3 minggu yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1508
276
Contoh Python Shutil Rmtree Contoh Python Shutil Rmtree Aug 01, 2025 am 05:47 AM

shutil.rmtree () adalah fungsi dalam python yang secara rekursif memadam seluruh pokok direktori. Ia boleh memadam folder yang ditentukan dan semua kandungan. 1. Penggunaan Asas: Gunakan shutil.rmtree (Path) untuk memadam direktori, dan anda perlu mengendalikan fileNotFoundError, PermissionError dan pengecualian lain. 2. Aplikasi Praktikal: Anda boleh membersihkan folder yang mengandungi subdirektori dan fail dalam satu klik, seperti data sementara atau direktori cache. 3. Nota: Operasi penghapusan tidak dipulihkan; FileNotFoundError dilemparkan apabila jalan tidak wujud; Ia mungkin gagal kerana kebenaran atau pekerjaan fail. 4.

Cara mewujudkan persekitaran maya di python Cara mewujudkan persekitaran maya di python Aug 05, 2025 pm 01:05 PM

Untuk mewujudkan persekitaran maya Python, anda boleh menggunakan modul VENV. Langkah-langkahnya adalah: 1. Masukkan direktori projek untuk melaksanakan persekitaran python-mvenvenv untuk mewujudkan persekitaran; 2. Gunakan Sourceenv/Bin/Aktifkan ke Mac/Linux dan Env \ Scripts \ Aktifkan ke Windows; 3. Gunakan Pakej Pemasangan Pipinstall, PipFreeze> Keperluan.txt untuk mengeksport kebergantungan; 4. Berhati -hati untuk mengelakkan menyerahkan persekitaran maya ke Git, dan mengesahkan bahawa ia berada dalam persekitaran yang betul semasa pemasangan. Persekitaran maya boleh mengasingkan kebergantungan projek untuk mencegah konflik, terutamanya sesuai untuk pembangunan pelbagai projek, dan editor seperti pycharm atau vscode juga

Bagaimana untuk melaksanakan pertanyaan SQL di Python? Bagaimana untuk melaksanakan pertanyaan SQL di Python? Aug 02, 2025 am 01:56 AM

Pasang pemacu pangkalan data yang sepadan; 2. Gunakan Connect () untuk menyambung ke pangkalan data; 3. Buat objek kursor; 4. Gunakan melaksanakan () atau executemany () untuk melaksanakan SQL dan menggunakan pertanyaan parameter untuk mengelakkan suntikan; 5. Gunakan Fetchall (), dan sebagainya untuk mendapatkan hasil; 6. komit () diperlukan selepas pengubahsuaian; 7. Akhirnya, tutup sambungan atau gunakan pengurus konteks untuk mengendalikannya secara automatik; Proses lengkap memastikan operasi SQL selamat dan cekap.

Bagaimana untuk berkongsi data antara pelbagai proses dalam Python? Bagaimana untuk berkongsi data antara pelbagai proses dalam Python? Aug 02, 2025 pm 01:15 PM

Gunakan multiprocessing.queue untuk selamat lulus data antara pelbagai proses, sesuai untuk senario pelbagai pengeluar dan pengguna; 2. Gunakan multiprocessing.pipe untuk mencapai komunikasi berkelajuan tinggi dua arah antara dua proses, tetapi hanya untuk sambungan dua mata; 3. Gunakan nilai dan array untuk menyimpan jenis data mudah dalam memori bersama, dan perlu digunakan dengan kunci untuk mengelakkan keadaan persaingan; 4. Pengurus Gunakan untuk berkongsi struktur data yang kompleks seperti senarai dan kamus, yang sangat fleksibel tetapi mempunyai prestasi yang rendah, dan sesuai untuk senario dengan keadaan kongsi yang kompleks; Kaedah yang sesuai harus dipilih berdasarkan saiz data, keperluan prestasi dan kerumitan. Baris dan pengurus paling sesuai untuk pemula.

Contoh muat naik Python Boto3 S3 Contoh muat naik Python Boto3 S3 Aug 02, 2025 pm 01:08 PM

Gunakan BOTO3 untuk memuat naik fail ke S3 untuk memasang BOTO3 terlebih dahulu dan mengkonfigurasi kelayakan AWS; 2. Buat pelanggan melalui boto3.client ('s3') dan hubungi kaedah upload_file () untuk memuat naik fail tempatan; 3. Anda boleh menentukan S3_Key sebagai laluan sasaran, dan menggunakan nama fail tempatan jika tidak ditentukan; 4. Pengecualian seperti FileNotFoundError, Nocredentialserror dan ClientError harus dikendalikan; 5. ACL, ContentType, StorageClass dan Metadata boleh ditetapkan melalui parameter extraargs; 6. Untuk data memori, anda boleh menggunakan Bytesio untuk membuat perkataan

Bagaimana untuk melaksanakan struktur data stack menggunakan senarai di Python? Bagaimana untuk melaksanakan struktur data stack menggunakan senarai di Python? Aug 03, 2025 am 06:45 AM

PythonListScani pelaksanaan tambahan () penouspop () popopoperations.1.useappend () dua -belief stotetopofthestack.2.usep op () toremoveandreturnthetop elemen, memastikantocheckifthestackisnoteptoavoidindexerror.3.pesensteHatoTeHateSerror.3.pasarceHatoTePelement.

Apakah rujukan lemah dalam Python dan kapan anda harus menggunakannya? Apakah rujukan lemah dalam Python dan kapan anda harus menggunakannya? Aug 01, 2025 am 06:19 AM

LemahReferencesexisttoallowreferencingobjectswithoutpreventingtheirgarbagecollection, hantsavoidmemoryleaksandcircularararreferences.1.useweakkeydictionaryorweakvaledictionaryforcachesformappingstoletoletunusedObjectsbecrected.2.useReweakReferenceseSinCherenceSourseStoStoStoStoSbected.2.usreakReferenceseSinesinCherenceSinsenceStoStoSbected.2

Contoh Perpustakaan Jadual Python Contoh Perpustakaan Jadual Python Aug 04, 2025 am 10:33 AM

Gunakan perpustakaan Pythonschedule untuk melaksanakan tugas masa dengan mudah. Pertama, pasang perpustakaan melalui PipinstallSchedule, kemudian import modul jadual dan masa, tentukan fungsi yang perlu dilaksanakan dengan kerap, kemudian gunakan jadual.every () untuk menetapkan selang masa dan mengikat fungsi tugas. Akhirnya, panggilan jadual.run_pending () dan time.sleep (1) dalam beberapa gelung untuk terus menjalankan tugas; Sebagai contoh, jika anda melaksanakan tugas setiap 10 saat, anda boleh menulisnya sebagai jadual. Setiap (10) .seconds.do (pekerjaan), yang menyokong penjadualan oleh minit, jam, hari, minggu, dan lain -lain, dan anda juga boleh menentukan tugas tertentu.

See all articles