Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
river — 데이터 스트림에 대한 증분 학습을 위한 Python용 스트리밍 머신러닝 라이브러리로, 온라인 추정기, 드리프트 및 이상 탐지, 파이프라인, 메트릭, 내장 데이터셋을 제공합니다. | Kitploit
도구/GitHubGitHub/online-ml/river
Utilities & FrameworksMachine LearningAnomaly DetectionAnomaly Detection #10위
GitHubonline-ml/river

river

데이터 스트림에 대한 증분 학습을 위한 Python용 스트리밍 머신러닝 라이브러리로, 온라인 추정기, 드리프트 및 이상 탐지, 파이프라인, 메트릭, 내장 데이터셋을 제공합니다.

저장소 보기
6.1k8349419시간 9분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River는 온라인 머신러닝을 위한 Python 라이브러리입니다. 스트리밍 데이터에 대한 머신러닝을 수행하기 위한 가장 사용자 친화적인 라이브러리를 목표로 합니다. River는 creme과 scikit-multiflow의 합병으로 탄생했습니다.

⚡️ 빠른 시작

간단한 예시로, 웹사이트 피싱 데이터셋을 분류하기 위해 로지스틱 회귀를 학습시켜 보겠습니다. 다음은 데이터셋의 첫 번째 관측값입니다.

>>> from pprint import pprint
>>> from river import datasets

>>> dataset = datasets.Phishing()

>>> for x, y in dataset:
...     pprint(x)
...     print(y)
...     break
{'age_of_domain': 1,
 'anchor_from_other_domain': 0.0,
 'empty_server_form_handler': 0.0,
 'https': 0.0,
 'ip_in_url': 1,
 'is_popular': 0.5,
 'long_url': 1.0,
 'popup_window': 0.0,
 'request_from_other_domain': 0.0}
True

이제 데이터셋에 대해 스트리밍 방식으로 모델을 실행해 보겠습니다. 예측과 모델 업데이트를 순차적으로 교차 수행합니다. 그동안 성능 지표를 업데이트하여 모델이 얼마나 잘 수행되는지 확인합니다.

>>> from river import compose
>>> from river import linear_model
>>> from river import metrics
>>> from river import preprocessing

>>> model = compose.Pipeline(
...     preprocessing.StandardScaler(),
...     linear_model.LogisticRegression()
... )

>>> metric = metrics.Accuracy()

>>> for x, y in dataset:
...     y_pred = model.predict_one(x)      # make a prediction
...     metric.update(y, y_pred)           # update the metric
...     model.learn_one(x, y)              # make the model learn

>>> metric
Accuracy: 89.28%

물론 이것은 단지 인위적인 예시일 뿐입니다. 더 자세한 튜토리얼은 문서의 소개 섹션을 확인해 보시기 바랍니다.

🛠 설치

River는 Python 3.11 이상에서 작동하도록 설계되었습니다. 설치는 pip로 할 수 있습니다:

pip install river

Linux, MacOS, Windows용 휠이 제공됩니다. 따라서 대부분의 경우 River를 소스에서 빌드할 필요가 없습니다.

River의 핵심 온라인 인터페이스(learn_one / predict_one)는 pandas 의존성이 없습니다. 미니배치 인터페이스(learn_many, predict_many, predict_proba_many, transform_many)는 pandas를 기반으로 하며 선택적으로 사용할 수 있습니다:

pip install "river[pandas]"

다음과 같이 GitHub에서 최신 개발 버전을 설치할 수 있습니다:

pip install git+https://github.com/online-ml/river --upgrade
pip install git+ssh://[email protected]/online-ml/river.git --upgrade  # using SSH

이 방법을 사용하려면 머신에 Cython과 Rust가 설치되어 있어야 합니다.

🔮 기능

River는 다음과 같은 알고리즘 계열의 온라인 구현을 제공합니다:

  • 다양한 옵티마이저를 갖춘 선형 모델
  • 결정 트리와 랜덤 포레스트
  • (근사) 최근접 이웃
  • 이상 탐지
  • 드리프트 탐지
  • 추천 시스템
  • 시계열 예측
  • 밴딧
  • 팩토리제이션 머신
  • 불균형 학습
  • 클러스터링
  • 배깅/부스팅/스태킹
  • 능동 학습

River는 또한 다음과 같은 온라인 유틸리티를 제공합니다:

  • 특징 추출 및 선택
  • 온라인 통계 및 지표
  • 전처리
  • 내장 데이터셋
  • 점진적 모델 검증
  • 모델 파이프라인

포괄적인 개요는 API를 확인해 보세요

🤔 River를 사용해야 할까요?

온라인 머신러닝이 필요한지 스스로에게 물어봐야 합니다. 답은 아마도 아니오일 것입니다. 대부분의 경우 배치 학습으로 충분합니다. 다음과 같은 경우에는 온라인 접근 방식이 적합할 수 있습니다:

  • 과거 데이터를 다시 살펴볼 필요 없이 새로운 데이터로부터 학습할 수 있는 모델을 원하는 경우.
  • 개념 드리프트에 강건한 모델을 원하는 경우.
  • 일반적으로 이벤트 기반인 프로덕션 환경에서 발생하는 것에 더 가까운 방식으로 모델을 개발하고 싶은 경우.

River의 몇 가지 특징은 다음과 같습니다:

  • 성능보다 명확성과 사용자 경험에 중점을 둡니다.
  • 한 번에 하나의 샘플을 처리하는 속도가 매우 빠릅니다. 직접 사용해 보세요, 알게 될 것입니다.
  • Python 생태계의 나머지 부분과 잘 어울립니다.

🔗 유용한 링크

  • 문서
  • 패키지 릴리스
  • awesome-online-machine-learning
  • 2022년 GAIA 발표
  • Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking from KDD'22.

👐 기여

어떤 방식으로든 자유롭게 기여해 주세요, 우리는 항상 새로운 아이디어와 접근 방식을 환영합니다.

  • 질문이나 문의 사항이 있으면 토론을 열어주세요. 비공개 이메일을 보내는 것보다 공개적으로 질문하는 것이 더 유용합니다. 또한 기여하기 전에 토론을 열어 모든 사람이 같은 방향을 향하고 불필요한 작업을 피할 수 있도록 권장합니다.
  • 버그나 성능 문제를 발견했다고 생각되면 이슈를 열어주세요.
  • 우리의 로드맵은 공개되어 있습니다. 눈에 띄는 것이 있으면 자유롭게 작업하거나 제안해 주세요.

코드 베이스에 수정을 가하고 싶다면 기여 가이드라인을 확인해 주세요.

🤝 소속

affiliations

💬 인용

River가 유용하게 사용되었고 과학 출판물에 인용하고 싶다면, JMLR에 게재된 논문을 참조해 주세요:

@article{montiel2021river,
  title={River: machine learning for streaming data in Python},
  author={Montiel, Jacob and Halford, Max and Mastelini, Saulo Martiello
          and Bolmier, Geoffrey and Sourty, Raphael and Vaysse, Robin and Zouitine, Adil
          and Gomes, Heitor Murilo and Read, Jesse and Abdessalem, Talel and others},
  year={2021}
}

📝 라이선스

River는 3-clause BSD 라이선스에 따라 라이선스가 부여된 무료 오픈소스 소프트웨어입니다.

도구 다운로드