Re: 격리 포리스트 및 격리 트리좋은 제안 @FN .
고립의 숲 외에도
"정규" Isolation Forest 알고리즘 대신 Extended Isolation Forest를 고려하는 것도 흥미로울 수 있습니다. 결정 경계 방향(수평 또는 수직뿐만 아니라)에서 더 많은 유연성을 제공하기 때문입니다.
다음은 Extended Isolation Forest의 작동 방식과 사용 방법을 설명하는 문서입니다. https://link.medium.com/TL1Lxirf9pb
Re: 격리 포리스트 및 격리 트리확장 된 나무 나 숲은 실제로 더 나을 것입니다.
귀하의 링크를 따라 확장된 원본 문서는 다음과 같습니다. https://arxiv.org/pdf/1811.02141.pdf
고립림과 고립나무Isolation Forest는 다양한 벤치마크에 걸친 일반적인 효과성과 강력한 확장성으로 인해 최근 몇 년 동안 가장 인기 있는 이상 탐지기 중 하나로 떠올랐습니다. 계산 효율이 높고 이상 탐지에 매우 효과적인 것으로 입증되었습니다.

다른 곳과 비교한 고립림 ( 출처 )
이 알고리즘은 무작위로 특징을 선택한 다음 선택된 특징의 최대값과 최소값 사이에서 분할 값을 무작위로 선택하여 관찰을 분리합니다. 따라서 구현은 대상 함수가 균일해야 한다는 점(상수 Y 값으로 변수를 분할하려고 시도)을 제외하고는 분할 트리와 부트스트랩 트리와 동일합니다.
하지만 JMP에서 이것을 시도하면 작동하지 않습니다.
JMP에 Isolation Forest를 포함함으로써, 유사한 tu 예측자 스크리닝을 통해 사용자는 데이터에서 이상을 탐지하는 강력한 도구에 액세스할 수 있습니다. 이를 통해 추가 조사가 필요할 수 있는 비정상적인 패턴이나 동작을 식별하는 데 도움이 될 수 있습니다.
이 논문에서는 IForest가 어떻게 작동하는지 연구하고 몇 가지 제한 사항(예: 확장된 고립 포리스트)을 개선합니다.
https://hal.science/hal-03537102/document
Scikit-learn 문서
https://scikit-learn.org/stable/modules/outlier_Detection.html
기본 데이터 분석 및 모델링예측 모델링 및 머신 러닝Re: 격리 포리스트 및 격리 트리 - 상태가 다음으로 변경됨: 조사 중요청해 주셔서 감사합니다. @FN . 현재 조사 중입니다.
Re: 격리 포리스트 및 격리 트리고마워, 미아. 격리 트리의 구현은 파티션 트리와 동일합니다.
"유일한" 차이점은 파티션이 무작위로 발생한다는 것입니다.
JMP에서 가변성이 없는 Y(예: 모두 0)를 도입하면 JMP는 분할을 수행하지 않습니다(예상된 것, 그렇지 않으면 솔루션이 특정 지점에서 확률적일 것임).
문헌에서 이것은 Extratrees로 알려져 있습니다.
https://en.wikipedia.org/wiki/Random_forest#ExtraTrees
Re: 격리 포레스트 및 격리 트리안녕하세요 @mia_stephens님 , 이에 대한 업데이트가 있나요? 감사해요
Re: 격리 포리스트 및 격리 트리안녕하세요 @FN 님 , 우리는 JSL을 사용하여 JMP에서 대화 상자 창을 생성하는 Python 'isotree' 패키지와 함께 JMP 18의 Python 통합을 사용하는 방법에 대한 연구를 수행했습니다. 유망해 보이지만 현재로서는 공유할 내용이 없습니다. 이 접근 방식을 살펴보았는지 궁금하십니까?
Re: 격리 포리스트 및 격리 트리고마워요, 미아.
이전 의견에서 공유한 것처럼 이 접근 방식은 전역 이상값이 있는 다른 이상 탐지 알고리즘보다 성능이 뛰어나기 때문에 JMP에서 매우 유용합니다.
KNN 거리는(JMP의 이상값 분석 메뉴 내) 로컬 이상값에 대해 잘 작동합니다.
예를 추가합니다. Isolation Forest는 대규모 데이터 세트에서 모든 유형의 이상값을 신속하게 식별하고 제거하는 데 유용합니다.
실제 데이터에 대한 비지도 이상 탐지 알고리즘: 얼마나 많이 필요합니까?
Y가 지정되지 않은 경우 데이터를 무작위로 분할하도록 파티션 트리를 수정할 수도 있습니다.
Re: 고립 숲과 고립 나무이 요청으로 돌아와서 업데이트가 있는지 확인해 보겠습니다.
이 논문에서는 JMP에서 이 기능을 구현해야 하는 이유를 요약합니다.
“52개의 실제 다변량 표형 데이터 세트에 대한 33개의 비지도 이상 탐지 알고리즘은 지금까지 가장 큰 비지도 이상 탐지 알고리즘 비교를 수행합니다. 이 데이터 세트 모음에서 EIF(Extended Isolation Forest) 알고리즘은 다른 대부분의 알고리즘보다 상당히 우수한 성능을 보입니다.”
Re: 고립 숲과 고립 나무방금 Ross M의 JMP-Python 통합 웨비나를 봤는데(정말 좋았어요) Python에서 이 접근 방식을 강조했지만 JMP에서 네이티브로 비교적 쉽게 할 수 있는 것 같습니다. JMP가 이미 하는 분할 트리와 다변량 이상치 분석과 같은 기술을 혼합한 것 같습니다.
Re: 고립된 숲과 고립된 나무 - 상태가 다음으로 변경됨: 예, 계속 지켜봐 주세요!Pythonic 추가 기능으로 개발 중입니다.
Re: 고립 숲과 고립 나무좋은 소식이에요! 고마워요 미아:)
Re: 고립 숲과 고립 나무Add-in은 지금 마켓플레이스에서 이용 가능합니다! https://marketplace.jmp.com/appdetails/Isolation+Forest
@russ_wolfinger 님, 정보를 제공해 주셔서 감사합니다.
Re: 고립 숲과 고립 나무네, 실제로 추가 기능이 이제 사용 가능합니다. 시작하게 해주셔서 감사합니다 @수학통계화학 !
Re: 고립 숲과 고립 나무 - 상태가 다음으로 변경됨: 배달됨Re: 고립된 숲과 고립된 나무@미아_스테펜스 , 이 애드온을 개발하는 데 들인 노고에 감사드립니다!
그런데, Python 라이브러리에 의존하기 때문에 적어도 Windows 컴퓨터에서는 사용하기가 꽤 어렵다는 걸 알게 됐습니다.
JMP에서 이 기능을 기본적으로 구현할 계획이 없다면(내 생각에는 환상적일 것입니다):smiling_face_with_smiling_eyes: ), 이 애드온을 오픈소스로 공개하는 것을 고려해 보시겠습니까? 이렇게 하면 커뮤니티가 향후 애드온을 유지 관리하고 개선하는 데 도움을 줄 수 있습니다.
---
예를 들어, isotree를 설치할 수 없습니다.
Python Install Packages("isotree");
JMP 18에서 다음 오류가 발생합니다.
Traceback (most recent call last):
File "
", line 198, in _run_module_as_main
File "
", line 88, in _run_code File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\__main__.py", line 22, in
from pip._internal.cli.main import main as _main File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\cli\main.py", line 10, in
from pip._internal.cli.autocompletion import autocomplete File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\cli\autocompletion.py", line 10, in
from pip._internal.cli.main_parser import create_main_parser File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\cli\main_parser.py", line 9, in
from pip._internal.build_env import get_runnable_pip File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\build_env.py", line 19, in
from pip._internal.cli.spinners import open_spinner File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\cli\spinners.py", line 9, in
from pip._internal.utils.logging import get_indentation File "C:\Users\user\AppData\Roaming\JMP\JMP\Python\Python311\site-packages\pip\_internal\utils\logging.py", line 4, in
import logging.handlers File "logging\handlers.py", line 26, in
File "socket.py", line 51, in
ModuleNotFoundError: No module named '_socket'
그리고 JMP 19 Pro에서는 컴파일러 오류가 발생합니다.
//:*/
import jmputils
jmputils.jpip('install', 'isotree')
/*:
Collecting isotree
Using cached isotree-0.6.1.post8.tar.gz (300 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: isotree
Building wheel for isotree (pyproject.toml): started
Building wheel for isotree (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error
Building wheel for isotree (pyproject.toml) did not run successfully.
exit code: 1
[14 lines of output]
C:\Users\user\AppData\Local\Temp\pip-build-env-e669figd\overlay\Lib\site-packages\setuptools\_distutils\extension.py:150: UserWarning: Unknown Extension options: 'install_requires'
warnings.warn(msg)
C:\Users\user\AppData\Local\Temp\pip-build-env-e669figd\overlay\Lib\site-packages\setuptools\dist.py:332: InformationOnly: Normalizing '0.6.1-8' to '0.6.1.post8'
self.metadata.version = self._normalize_version(self.metadata.version)
running bdist_wheel
running build
running build_py
creating build\lib.win-amd64-cpython-313\isotree
copying isotree\__init__.py -> build\lib.win-amd64-cpython-313\isotree
running build_ext
Compiling isotree/cpp_interface.pyx because it changed.
[1/1] Cythonizing isotree/cpp_interface.pyx
building 'isotree._cpp_interface' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for isotree
Failed to build isotree
error: failed-wheel-build-for-install
Failed to build installable wheels for some pyproject.toml based projects
isotree
0
Re: 고립된 숲과 고립된 나무_socket 오류입니다. 18.0을 제거하고 최신 18.x로 업데이트해야 합니다. 수정/복원이 아닌 삭제해야 합니다. 소켓 공유 라이브러리가 올바른 설치 위치에 없습니다.
18과 19 모두에서 isotree는 까다로운 패키지 중 하나입니다. 일반적으로 효과적인 해결 방법은 JMP 18의 경우 Python.org 3.11.x, JMP 19의 경우 3.13.x를 표준 설치하고 기본 환경에서 일반 pip install을 실행하는 것입니다. 이렇게 하면 대개 제대로 빌드됩니다. 그런 다음 JMP 내에서 jpip install을 실행하면 JMP가 로컬 캐시된 패키지 빌드를 가져와서 JMP의 개인 site-packages 디렉터리에 설치할 수 있습니다.
Re: 고립된 숲과 고립된 나무@Paul_Nelson 님 , 답변해주셔서 감사합니다.
Re: 고립된 숲과 고립된 나무error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
Python에서 C/C++ 기반 패키지를 빌드해야 하는 경우, C/C++ 개발 환경이 설치되어 있어야 합니다. Visual Studio Code만 있으면 충분합니다. 이는 Python만 설치하고 isotree를 설치하려는 경우와 마찬가지입니다.