의사결정 트리(DT)는 분류 및 회귀에 사용되는 비지도 학습 방법입니다.
장점: 계산 복잡도가 높지 않고, 출력 결과가 이해하기 쉽고, 누락된 중간 값에 둔감하며, 관련 없는 특성 데이터를 처리할 수 있습니다.
단점: 과일치 문제가 발생할 수 있습니다
적용 가능 데이터 유형: 숫자 및 명목 소스 코드 다운로드 https://www.manning.com/books/machine-learning-in-action
데모 실행
키 알고리즘
찾기 데이터 세트
함수
createBranch를 분할하고 반환 결과를 분기 노드에 추가하는 최고의 기능
반환 분기 노드해당 코드
def createTree(dataSet,labels):
class
List
= [example[-1] for example in dataSet]가 데이터세트[-1]이 아닙니다. 데이터 세트}}이며 이때 데이터 세트의 각 요소의 마지막 요소 중 첫 번째 요소는 if classList.
count(classList[0]) == len(classList): 반환된 분류된 경우 목록 개수 유형이 동일합니다. 이 유형을 반환하세요! 하위 노드를 분류할 수 있는지 여부, 그렇다면 하나의 유형을 반환합니다. 그렇지 않으면 recurse 하향 분류 == 1: #dataSet에 더 이상 기능이 없으면 분할을 중지합니다. 요소가 하나만 있는 경우
대다수Cnt(classList) 반환 ~ return majorCnt(classList) ] 이 라벨은 표면이 없는 것인가요? myTree = {bestFeatLabel:{}} 그런 다음 가장 좋은 카테고리의 하위 트리를 만듭니다 del(labels[bestFeat]) 최고의 카테고리 삭제 featValues = [example[bestFeat] for example in dataSet] UniqueVals = set(featValues) set은 분류입니다. UniqueVals의 값에
얼마나 많은 유형이 있는지 확인하세요.
subLabels = labels[:] # 모든 레이블을 복사하므로 tree는 기존 레이블을 엉망으로 만듭니다.
MyTree [BestFeatlabel] [value] = Createtree (SPLITDATASET (DataSET, Bestfeat, Value), Sublabels
Retu RN MyTree
데이터 분할 집합 전후의 정보 변화를 정보 이득이라고 합니다. 데이터 집합을 분할하는 가장 큰 원칙은 무질서한 데이터를 보다 질서있게 만드는 것입니다. 이는 파이 커팅 원리로 이해됩니다.
단위 엔트로피를 사용하여 정보의 복잡성과 양을 설명합니다. 케이크의 밀도에 맞춰, 같은 밀도로 세로로 자른 케이크라면
각 부분의 무게 g = 총 G * 대원 안의 비율! 유사하게, 분할 후 정보 엔트로피가 동일하면 데이터의 각 작은 부분의 작은 h = pro * total H, 합계 h[i] = H입니다.
디버그프로세스
calcShannonEnt
log(prob,2) log(1,2) = 0;2^0=1, prob
dataSet의 featVec에 대한 25줄: prop에 대한 빈도 계산
chooseBestFeatureToSplit()
0.9709505944546686 = calcShannonEnt(dataSet)
# 탐지 데이터 세트의 각 하위 항목이 동일한 카테고리에 속하는지 여부: 값이 모두 a이고 결과가 모두 y 또는 n이면 카테고리입니다. 따라서 두 개의 매개변수 입력만
0.5509775004326937 = += prob * calcShannonEnt(subDataSet) 별도로 부분 집합화 후 확률 * Shannon 드롭, 얻은 합계, 원래 전체 Shannon 드롭 비율
# 数据越接近,香浓熵值越少,越接近0 ,越不同,越多分逻辑,香浓熵就越大 # 只计算 其dataSet的featVec[-1] 结果标签 def calcShannonEnt(dataSet):
0.4199730940219749 infoGain = baseEntropy - newEntropy
요약:
처음에는 코드도 이해가 안 되고, 무슨 일을 하는지도 이해가 안 됐어요! 분류, 우리의 목표는 많은 데이터를 분류하고 레이블을 지정하는 것입니다.
k-nearby classify([0, 0], group, labels, 3)처럼 새로운 데이터 [0,0]이 k=3 이웃 알고리즘에 따라 그룹, 레이블 데이터에 분류된다는 의미입니다! 그룹은 라벨에 해당합니다!
나중에
을 봤는데 데이터 세트가 차원의 값을 의미하고 마지막이 물고기 여부, 결과 라벨
테스트는 처음 n 차원으로 나누어야 합니다. 값, 벡터 입력, 출력이 yes 또는 아니요!
처음에는 어지러울 수도 있지만, 생각을 정리하고 코드를 보면 더 이해하기 쉽습니다!대상과 초기 데이터를 이해하고 나면 classList가 결과 라벨이라는 것을 알게 될 것입니다! , 는 분류할 데이터 세트에 해당하는 해당 결과 라벨
이고, labels는 시작 데이터 세트의 차원에 해당하는 특성 이름, 특성 이름 strnamebestFeatLabel은 가장 좋은 차원 이름입니다. 분류 기능은 첫 번째 차원이든 두 번째 차원이든 관계없이 N
featValues는 bestFeatLabel 차원 아래의 값 배열입니다. 새로운 분류 비교를 수행하는 데 사용되는 것은 이 차원 아래의 그룹입니다.
uniqueVals는 set을 사용하여 동일한 카테고리인지 확인합니다.
예:
dataSet = [[1, 1, 'yes'],[0, 1, 'yes'],[1, 0, 'no' ],[1, 0, 'no'],[0, 0, 'no']]
labels = ['no surfacing','flippers',]
createTree는 다음과 같습니다. {'flippers': {0: 'no', 1: 'yes'}}는 표면 없음 차원을 직접 생략합니다
마지막으로 단락을 사용해 보겠습니다. 의사결정 트리에 대해 이야기하자면:
의사결정 트리의 핵심은 효율성을 높이는 것입니다! '최대 최적'을 사용하여 첫 번째 부정적인 라벨을 나누고, 긍정적인 라벨은 계속해서 나누어야 합니다! 그리고 음수이면 리프 노드 응답을 직접 반환합니다! 해당하는 다른 차원은 계속해서 심사되지 않습니다!
이론적으로는 의사결정나무 알고리즘을 사용하지 않더라도 모든 데이터를 맹목적으로 소진할 수 있습니다. 즉, 매번 데이터의 모든 차원을 통과하게 됩니다! 그리고 마지막 라벨 답변이 있습니다! 차원 수 * 데이터 수! 복잡성을 위해! 이것이 기억력에 대한 일치하는 답변입니다! 적합한 전문가 시스템! 일어나지 않는 상황을 예측하는 능력이 부족해요! 하지만 데이터 볼륨이 크고 속도가 빠르며 지능적인 느낌도 받을 수 있습니다! 과거 경험의 반복이니까! 그런데 죽었나요? 아니요, 죽지 않았습니다! 피로는 사라졌지만 의사결정 트리는 역동적입니다! 배우다! 나무를 바꿔라! 최소한 역동적으로 만들어졌습니다! 데이터가 불완전하면 불완전할 수도 있습니다! 판단이 해결되면 하나의 판단을 사용하고, 그렇지 않으면 또 다른 판단이 필요합니다! 크기가 증가했습니다!
위 내용은 Python 기계 학습 의사 결정 트리에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

하루에 2 시간 동안 파이썬을 배우는 것으로 충분합니까? 목표와 학습 방법에 따라 다릅니다. 1) 명확한 학습 계획을 개발, 2) 적절한 학습 자원 및 방법을 선택하고 3) 실습 연습 및 검토 및 통합 연습 및 검토 및 통합,이 기간 동안 Python의 기본 지식과 고급 기능을 점차적으로 마스터 할 수 있습니다.

웹 개발에서 Python의 주요 응용 프로그램에는 Django 및 Flask 프레임 워크 사용, API 개발, 데이터 분석 및 시각화, 머신 러닝 및 AI 및 성능 최적화가 포함됩니다. 1. Django 및 Flask 프레임 워크 : Django는 복잡한 응용 분야의 빠른 개발에 적합하며 플라스크는 소형 또는 고도로 맞춤형 프로젝트에 적합합니다. 2. API 개발 : Flask 또는 DjangorestFramework를 사용하여 RESTFULAPI를 구축하십시오. 3. 데이터 분석 및 시각화 : Python을 사용하여 데이터를 처리하고 웹 인터페이스를 통해 표시합니다. 4. 머신 러닝 및 AI : 파이썬은 지능형 웹 애플리케이션을 구축하는 데 사용됩니다. 5. 성능 최적화 : 비동기 프로그래밍, 캐싱 및 코드를 통해 최적화

Python은 개발 효율에서 C보다 낫지 만 C는 실행 성능이 높습니다. 1. Python의 간결한 구문 및 풍부한 라이브러리는 개발 효율성을 향상시킵니다. 2.C의 컴파일 유형 특성 및 하드웨어 제어는 실행 성능을 향상시킵니다. 선택할 때는 프로젝트 요구에 따라 개발 속도 및 실행 효율성을 평가해야합니다.

Python의 실제 응용 프로그램에는 데이터 분석, 웹 개발, 인공 지능 및 자동화가 포함됩니다. 1) 데이터 분석에서 Python은 Pandas 및 Matplotlib를 사용하여 데이터를 처리하고 시각화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크는 웹 응용 프로그램 생성을 단순화합니다. 3) 인공 지능 분야에서 Tensorflow와 Pytorch는 모델을 구축하고 훈련시키는 데 사용됩니다. 4) 자동화 측면에서 파이썬 스크립트는 파일 복사와 같은 작업에 사용할 수 있습니다.

Python은 데이터 과학, 웹 개발 및 자동화 스크립팅 필드에 널리 사용됩니다. 1) 데이터 과학에서 Python은 Numpy 및 Pandas와 같은 라이브러리를 통해 데이터 처리 및 분석을 단순화합니다. 2) 웹 개발에서 Django 및 Flask 프레임 워크를 통해 개발자는 응용 프로그램을 신속하게 구축 할 수 있습니다. 3) 자동 스크립트에서 Python의 단순성과 표준 라이브러리가 이상적입니다.

Python의 유연성은 다중 파리가 지원 및 동적 유형 시스템에 반영되며, 사용 편의성은 간단한 구문 및 풍부한 표준 라이브러리에서 나옵니다. 유연성 : 객체 지향, 기능 및 절차 프로그래밍을 지원하며 동적 유형 시스템은 개발 효율성을 향상시킵니다. 2. 사용 편의성 : 문법은 자연 언어에 가깝고 표준 라이브러리는 광범위한 기능을 다루며 개발 프로세스를 단순화합니다.

Python은 초보자부터 고급 개발자에 이르기까지 모든 요구에 적합한 단순성과 힘에 호의적입니다. 다목적 성은 다음과 같이 반영됩니다. 1) 배우고 사용하기 쉽고 간단한 구문; 2) Numpy, Pandas 등과 같은 풍부한 라이브러리 및 프레임 워크; 3) 다양한 운영 체제에서 실행할 수있는 크로스 플랫폼 지원; 4) 작업 효율성을 향상시키기위한 스크립팅 및 자동화 작업에 적합합니다.

예, 하루에 2 시간 후에 파이썬을 배우십시오. 1. 합리적인 학습 계획 개발, 2. 올바른 학습 자원을 선택하십시오. 3. 실습을 통해 학습 된 지식을 통합하십시오. 이 단계는 짧은 시간 안에 Python을 마스터하는 데 도움이 될 수 있습니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
