목차
1. Optuna
2. ITMO_FS
3. shap-hypetune
4. PyCaret
5. floWeaver
6、Gradio
7、Terality
8、torch-handle
백엔드 개발 파이썬 튜토리얼 데이터 과학 생산성을 높이고 귀중한 시간을 절약할 수 있는 8개의 Python 라이브러리

데이터 과학 생산성을 높이고 귀중한 시간을 절약할 수 있는 8개의 Python 라이브러리

Apr 12, 2023 pm 05:01 PM
python 개발하다 데이터 과학

데이터 과학을 할 때 코딩하고 컴퓨터가 무언가를 실행할 때까지 기다리는 데 많은 시간을 낭비할 수 있습니다. 그래서 저는 여러분의 소중한 시간을 절약하는 데 도움이 될 수 있는 몇 가지 Python 라이브러리를 선택했습니다.

1. Optuna

Optuna는 머신러닝 모델에 가장 적합한 하이퍼파라미터를 자동으로 찾을 수 있는 오픈 소스 하이퍼파라미터 최적화 프레임워크입니다.

가장 기본적인(아마도 잘 알려진) 대안은 sklearn의 GridSearchCV로, 여러 하이퍼파라미터 조합을 시도하고 교차 검증을 기반으로 가장 적합한 조합을 선택합니다.

GridSearchCV는 이전에 정의된 공간 내에서 조합을 시도합니다. 예를 들어, 임의 포리스트 분류기의 경우 여러 다른 트리의 최대 깊이를 테스트할 수 있습니다. GridSearchCV는 각 하이퍼파라미터에 대해 가능한 모든 값을 제공하고 모든 조합을 살펴봅니다.

Optuna는 정의된 검색 공간 내에서 자체 시도 기록을 사용하여 다음에 시도할 값을 결정합니다. 사용하는 방법은 "Tree-structured Parzen Estimator"라는 베이지안 최적화 알고리즘입니다.

이 다른 접근 방식은 모든 가치를 무의미하게 시도하는 대신 시도하기 전에 가장 좋은 후보를 찾아서 유망하지 않은 대안을 시도하는 데 소요되는 시간을 절약한다는 의미입니다(또한 더 나은 결과를 생성할 수도 있음).

마지막으로 프레임워크에 구애받지 않습니다. 즉, TensorFlow, Keras, PyTorch 또는 기타 ML 프레임워크와 함께 사용할 수 있습니다.

2. ITMO_FS

ITMO_FS는 ML 모델에 대한 특징 선택을 수행할 수 있는 특징 선택 라이브러리입니다. 관측치가 적을수록 과적합을 방지하기 위해 너무 많은 특성을 다룰 때 더욱 주의해야 합니다. "신중하다"는 것은 모델을 표준화해야 한다는 의미입니다. 일반적으로 단순한 모델(특징 수가 적음)이 이해하고 해석하기가 더 쉽습니다.

ITMO_FS 알고리즘은 감독 필터, 비지도 필터, 래퍼, 하이브리드, 임베디드, 앙상블의 6가지 범주로 나뉩니다(주로 감독 필터에 중점을 두지만).

"감독 필터" 알고리즘의 간단한 예는 대상 변수와의 상관 관계를 기반으로 기능을 선택하는 것입니다. "역방향 선택"을 사용하면 기능을 하나씩 제거하고 이러한 기능이 모델의 예측 능력에 어떤 영향을 미치는지 확인할 수 있습니다.

다음은 ITMO_FS 사용 방법과 모델 점수에 미치는 영향에 대한 간단한 예입니다.

>>> 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는 비교적 새로운 라이브러리이므로 아직 약간 불안정하지만 시도해 볼 것을 권장합니다.

3. shap-hypetune

지금까지 기능 선택 및 하이퍼파라미터 조정을 위한 라이브러리를 살펴봤지만 두 가지를 동시에 사용하는 것은 어떨까요?

"SHAP"가 무엇인지 이해하는 것부터 시작하겠습니다.

"SHAP(SHapley Additive exPlanations)은 모든 기계 학습 모델의 출력을 해석하는 게임 이론 방법입니다.

SHAP는 모델 해석에 가장 일반적으로 사용되는 방법입니다. 널리 사용되는 라이브러리 중 하나인 이 라이브러리는 모델의 최종 예측에 대한 각 기능의 중요성을 생성하여 작동합니다.

반면에 shap-hypertune은 최고의 기능과 최고의 하이퍼파라미터를 선택하는 이 접근 방식의 이점을 누리고 있습니다. 기능을 함께 결합하려는 이유는 무엇입니까? 기능을 선택하고 하이퍼 매개변수를 독립적으로 조정하면 기능 간의 상호 작용을 고려하지 않고 차선책을 선택할 수 있습니다. 두 가지를 동시에 수행하면 이를 고려할 뿐만 아니라 코딩 시간도 절약됩니다(단, 검색 공간이 늘어나 런타임이 늘어날 수 있음).

검색은 그리드 검색, 무작위 검색, 베이지안 검색(또한 병렬화 가능)의 3가지 방법으로 수행할 수 있습니다.

그러나 shap-hypertune은 그래디언트 부스팅 모델에서만 작동합니다!

4. PyCaret

PyCaret은 기계 학습 작업 흐름을 자동화하는 오픈 소스, 로우 코드 기계 학습 라이브러리입니다. 탐색적 데이터 분석, 전처리, 모델링(해석 가능성 포함) 및 MLOps를 다룹니다.

웹사이트에서 몇 가지 실제 예를 살펴보고 작동 방식을 살펴보겠습니다.

# 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()
로그인 후 복사

데이터 과학 생산성을 높이고 귀중한 시간을 절약할 수 있는 8개의 Python 라이브러리

단 몇 줄의 코드만으로 여러 모델을 시도하고 주요 분류 측정 항목에서 비교할 수 있습니다. 비교가 이루어졌습니다. .

모델과 상호 작용하는 기본 애플리케이션을 생성할 수도 있습니다.

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)
로그인 후 복사

마지막으로 모델에 대한 API 및 Docker 파일을 쉽게 생성할 수 있습니다.

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')
로그인 후 복사

이보다 더 쉬울 수는 없겠죠?

PyCaret 이는 매우 완전한 라이브러리이며 여기에서 모든 내용을 다루기는 어렵습니다. 지금 다운로드하여 실제로 일부 기능을 이해하기 위해 사용을 시작하는 것이 좋습니다.

5. floWeaver

FloWeaver는 스트리밍 데이터 세트에서 Sankey 다이어그램을 생성할 수 있습니다. Sankey 다이어그램이 무엇인지 모르는 경우 예를 들면 다음과 같습니다.

데이터 과학 생산성을 높이고 귀중한 시간을 절약할 수 있는 8개의 Python 라이브러리

전환 유입 경로, 마케팅 여정 또는 예산 할당에 대한 데이터를 표시할 때 매우 유용합니다(위 예). 포털 데이터는 다음 형식이어야 합니다: "소스 x 대상 x 값" 이러한 플롯을 생성하려면 코드 한 줄만 필요합니다(매우 구체적이지만 매우 직관적임).

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差不多了。

위 내용은 데이터 과학 생산성을 높이고 귀중한 시간을 절약할 수 있는 8개의 Python 라이브러리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? 한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? Apr 01, 2025 pm 11:15 PM

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

내 코드가 API에 의해 데이터를 반환 할 수없는 이유는 무엇입니까? 이 문제를 해결하는 방법? 내 코드가 API에 의해 데이터를 반환 할 수없는 이유는 무엇입니까? 이 문제를 해결하는 방법? Apr 01, 2025 pm 08:09 PM

내 코드가 API에 의해 데이터를 반환 할 수없는 이유는 무엇입니까? 프로그래밍에서 우리는 종종 API가 호출 될 때 NULL 값을 반환하는 문제를 겪는 경우가 종종 있습니다.

파이썬 매개 변수 주석이 문자열을 사용할 수 있습니까? 파이썬 매개 변수 주석이 문자열을 사용할 수 있습니까? Apr 01, 2025 pm 08:39 PM

파이썬 프로그래밍에서 Python 매개 변수 주석의 대체 사용법, 매개 변수 주석은 개발자가 기능을 더 잘 이해하고 사용하는 데 도움이되는 매우 유용한 기능입니다 ...

Python 스크립트는 특정 위치에서 Cursor 위치로 출력을 어떻게 제거합니까? Python 스크립트는 특정 위치에서 Cursor 위치로 출력을 어떻게 제거합니까? Apr 01, 2025 pm 11:30 PM

Python 스크립트는 특정 위치에서 Cursor 위치로 출력을 어떻게 제거합니까? Python 스크립트를 작성할 때 이전 출력을 커서 위치로 지우는 것이 일반적입니다 ...

Python Cross-Platform 데스크탑 응용 프로그램 개발 : 어떤 GUI 라이브러리가 가장 적합합니까? Python Cross-Platform 데스크탑 응용 프로그램 개발 : 어떤 GUI 라이브러리가 가장 적합합니까? Apr 01, 2025 pm 05:24 PM

Python 크로스 플랫폼 데스크톱 응용 프로그램 개발 라이브러리 선택 많은 Python 개발자가 Windows 및 Linux 시스템 모두에서 실행할 수있는 데스크탑 응용 프로그램을 개발하고자합니다 ...

파이썬 모래시 그래프 그리기 : 가변적 인 정의되지 않은 오류를 피하는 방법? 파이썬 모래시 그래프 그리기 : 가변적 인 정의되지 않은 오류를 피하는 방법? Apr 01, 2025 pm 06:27 PM

Python : 모래 시계 그래픽 도면 및 입력 검증을 시작 하기이 기사는 모래 시계 그래픽 드로잉 프로그램에서 Python 초보자가 발생하는 변수 정의 문제를 해결합니다. 암호...

파이썬에서 대형 제품 데이터 세트를 효율적으로 계산하고 정렬하는 방법은 무엇입니까? 파이썬에서 대형 제품 데이터 세트를 효율적으로 계산하고 정렬하는 방법은 무엇입니까? Apr 01, 2025 pm 08:03 PM

데이터 변환 및 통계 : 대규모 데이터 세트의 효율적인 처리이 기사는 제품 정보가 포함 된 데이터 목록을 다른 사람으로 변환하는 방법을 자세히 소개합니다 ...

See all articles