Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

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

river

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

저장소 보기웹사이트
5.9k6572일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


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

⚡️ 빠른 시작

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

root@kitploit:~
>>> 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

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

root@kitploit:~
>>> 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로 할 수 있습니다:

root@kitploit:~
pip install river

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

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

root@kitploit:~
pip install "river[pandas]"

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

root@kitploit:~
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 — KDD'22 발표.

👐 기여하기

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

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

코드베이스에 수정 사항을 적용하려면 기여 지침을 확인해 주세요.

🤝 소속

affiliations

💬 인용

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

root@kitploit:~
@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 라이선스에 따라 배포되는 무료 오픈소스 소프트웨어입니다.

도구 다운로드