마인드 맵 갤러리 기계 학습 알고리즘 선형 회귀 결정 트리 노트 자율 학습 마인드 맵
머신러닝 알고리즘 선형회귀 결정번호 노트 자율학습 완전 공유! 내용은 K-최근접 이웃 알고리즘, 선형 회귀, 로지스틱 회귀, 의사결정 트리, 앙상블 학습 및 클러스터링을 다룹니다.
2023-02-25 09:44:36에 편집됨이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
이것은 (III) 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제에 대한 마인드 맵이며, 주요 함량은 다음을 포함한다 : 저산소증-유도 인자 프롤릴 하이드 록 실라 제 억제제 (HIF-PHI)는 신장 빈혈의 치료를위한 새로운 소형 분자 경구 약물이다. 1. HIF-PHI 복용량 선택 및 조정. Rosalasstat의 초기 용량, 2. HIF-PHI 사용 중 모니터링, 3. 부작용 및 예방 조치.
이것은 Kuka Industrial Robots의 개발 및 Kuka Industrial Robot의 모션 제어 지침에 대한 마인드 맵입니다. 주요 내용에는 쿠카 산업 로봇의 역사, 쿠카 산업 로봇의 특성, 쿠카 산업 로봇의 응용 분야, 2. 포장 프로세스에서 쿠카 로봇은 빠르고 일관된 포장 작업을 달성하고 포장 효율성을 높이며 인건비를 줄입니다. 2. 인건비 감소 : 자동화는 운영자에 대한 의존성을 줄입니다. 3. 조립 품질 향상 : 정확한 제어는 인간 오류를 줄입니다.
408 컴퓨터 네트워크가 너무 어렵습니까? 두려워하지 마세요! 나는 피를 구토하고 지식 맥락을 명확히하는 데 도움이되는 매우 실용적인 마인드 맵을 분류했습니다. 컨텐츠는 매우 완전합니다. 네트워크 아키텍처에서 응용 프로그램 계층, TCP/IP 프로토콜, 서브넷 디비전 및 기타 핵심 포인트에 이르기까지 원칙을 철저히 이해하는 데 도움이 될 수 있습니다. 📈 명확한 논리 : Mindmas 보물, 당신은 드문 기회가 있습니다. 서둘러! 이 마인드 맵을 사용하여 408 컴퓨터 네트워크의 학습 경로에서 바람과 파도를 타고 성공적으로 해변을 얻으십시오! 도움이 필요한 친구들과 공유해야합니다!
기계 학습 알고리즘 선형 회귀 결정 트리 노트 자율 학습 마인드 맵
K-최근접 이웃 알고리즘
알고리즘 원리 및 API
K-최근접 이웃 알고리즘의 개념과 원리
개념
샘플의 가장 유사한 k개의 샘플(즉, 특징 공간에서 가장 가까운 이웃) 샘플의 대부분이 특정 범주에 속하는 경우 샘플도 이 범주에 속합니다.
특징 공간
모든 특징을 좌표축으로 사용하여 설정된 공간 특징 공간에서 각 샘플은 점입니다.
[핵심사항] 원리 및 실행단계
1. 알려진 카테고리 데이터 세트의 지점과 현재 지점 사이의 거리를 계산합니다.
2. 이 거리를 오름차순으로 정렬하세요.
3. 현재 지점으로부터 거리가 가장 짧은 k개 지점을 선택합니다.
4. 처음 k개의 포인트가 위치한 카테고리의 발생빈도를 센다. (K개의 카테고리의 최빈값을 찾아라)
5. 모드 카테고리를 현재 포인트의 카테고리로 사용
K-최근접 이웃 알고리즘 API
Scikit-learn 소개
수많은 기계 학습 알고리즘을 구현하는 기계 학습 도구
API
sklearn.neighbors.KNeighborsclassfier(n_neighbors)
알고리즘 계산 및 최적화
거리의 척도
유클리드 거리
맨해튼 거리(블록 거리)
체비쇼프 거리
민코프스키 거리(Minkovsky distance)
정규화된 유클리드 거리
코사인 거리
해밍 거리
문자열 길이가 동일함
문자열의 거리 계산
자카드 거리
두 세트 사이의 거리
마할라노비스 거리
K 값 선택이 모델에 미치는 영향
과소적합과 과적합의 성능
근사 오류
훈련 세트의 모델 오류
추정 오류
테스트 세트의 모델 오류
과소적합
근사 오류가 크고 추정 오류가 큽니다. 직설적으로 말하면 모델은 훈련 세트와 테스트 세트 모두에서 성능이 좋지 않습니다.
과적합
근사 오류는 작고 추정 오류는 큽니다. 직설적으로 말하면 모델은 훈련 세트에서는 잘 수행되지만 테스트 세트에서는 잘 수행되지 않습니다.
K 값이 너무 작습니다.
이상값의 영향을 많이 받음
모델이 복잡하고 학습 능력이 강하며 과적합되기 쉽습니다.
K 값이 너무 큽니다.
표본 불균형의 영향이 크다
모델은 단순하고 학습 능력이 약하며 과소적합되기 쉽습니다.
kd 트리
kd 트리 소개
트리 개념
루트 노드
하위 노드만 있고 상위 노드는 없는 노드
내부 노드
자식 노드와 부모 노드가 있는 노드
리프 노드
상위 노드만 있고 하위 노드는 없는 노드
이진 트리
최대 2개의 분기 노드가 있는 트리
kd 트리의 역할
샘플 거리 계산 횟수를 줄이고 가장 가까운 이웃 지점을 빠르게 찾습니다.
KD 트리 구축 방법
1. 특징을 무작위로 선택하고 이 특징의 중앙값을 분할점으로 사용하여 데이터를 두 개의 동일한 부분으로 나눕니다. 선택된 피처는 현재 노드의 분할 피처이며 중앙값이 현재 노드로 사용됩니다. 이 특성에서는 중앙값보다 작은 포인트를 왼쪽 노드로, 중앙값보다 큰 포인트를 오른쪽 노드로 분류합니다. 마디;
2. 왼쪽 노드와 오른쪽 노드의 데이터에 대해 각각 첫 번째 단계를 반복합니다.
3. 모든 샘플이 노드에 배치될 때까지
kd 트리에서 가장 가까운 지점을 찾는 방법
1. 쿼리 점 M을 kd 트리의 각 노드의 분할 특성 및 해당 중앙값과 비교하고 리프 노드에 도달할 때까지 계속 하향 비교합니다. 전체 프로세스를 통해 노드가 이동한 순서대로 기록합니다. search_path;
2. search_path 끝에 있는 노드는 N입니다. N을 빼지 말고 dist=M과 N 사이의 거리를 기록합니다. 가장 가까운=N입니다.
3. search_path 끝에서 노드 L을 꺼내고, 이 노드의 분할 축은 x이고, 점 M에서 x 축까지의 거리 a를 계산한 후 두 가지 경우에 처리합니다.
a<dist이면 노드 L로 나눈 반대편 공간의 모든 점과 현재 가장 가까운 점을 조사 범위에 포함시키고, 조사 범위의 모든 점에서 점 M까지의 거리를 계산하여 가장 가까운 점은 발견되고 해당 지점은 가장 가까운 것으로 기록됩니다. 이 지점에서 M까지의 거리는 dist이고 노드 L을 버리고 단계가 종료됩니다.
a>=dist이면 노드 L을 버리고 단계가 종료됩니다.
4. search_path가 비어 있을 때까지 3단계를 반복합니다.
5. Nearest는 검색 지점에 가장 가까운 지점을 의미하며, 가장 가까운 거리는 dist입니다.
사례 1
scikit-learn의 데이터세트 API 소개
sklearn 작은 데이터 세트
API: load_* 예: load_iris()
sklearn 빅 데이터 세트
API: fetch_* 예: fetch_20newsgroups(sub_set='train')
매개변수 설명: sub_set='train'은 획득할 데이터 세트의 유형을 지정합니다.
sklearn 데이터 세트 반환 값 소개
데이터 유형:datasets.base.Bunch(사전 형식)
데이터: 피처 데이터 배열
target: 라벨 배열(목표 값)
feature_names: 기능 이름
target_names: 태그 이름
키()는 사전의 모든 속성(필드)을 가져옵니다.
데이터의 산점도를 그리고 이상값을 찾습니다.
sns.lmplot(col1, col2, 데이터, 색조, fit_reg)
데이터 세트의 파티션
x_train, x_test, y_train, y_test = trian_test_split(x, y, test_size)
sklearn을 사용한 기능 전처리
정규화됨
정규화의 단점: 이상값의 영향을 많이 받음
API: MinMaxScaler(기능_범위)
기능: 데이터를 0과 1 사이로 변환
표준화
API:표준스칼라()
기능: 데이터를 평균=0, 표준=1로 변환
아이리스 꽃종 예측
사례 2
교차 검증 및 그리드 검색
교차 검증
훈련 세트를 N개 부분으로 균등하게 나누고, 다른 부분을 검증 세트로, 다른 부분을 훈련 세트로 취하고, 모델 성능을 훈련 및 검증한 후, 모델 성능의 N회 평균을 성능으로 사용합니다. 이 훈련 세트에 대한 모델을 만듭니다.
그리드 검색
하이퍼파라미터의 최적 조합 찾기
API
sklearn.model_selection.GridSearchCV(추정기, param_grid, cv)
Facebook 체크인 위치 예측
선형 회귀
선형 회귀 소개
선형 회귀의 수학적 공식(수학적 모델)
h(w) = w1*x1 w2*x2 w3*x3 ... wn*xn b
초평면의 개념
n차원 공간의 n-1차원 선형 관계를 n차원 공간의 초평면이라고 합니다.
API
sklearn.linear_model.LinearRegression()
선형 회귀의 손실 및 최적화
손실 함수
1. 손실 함수는 훈련 가능한 매개변수의 함수입니다.
2. 손실함수의 값이 작을수록 모델의 예측값이 참값에 가까워집니다.
선형 회귀의 최적화 방법
정규방정식
최적의 매개변수를 직접 계산
참고: 최소 제곱 손실이 있는 선형 회귀 모델에만 적용 가능
경사하강법
최적의 학습 가능한 매개변수를 찾기 위해 지속적으로 그라디언트를 반복합니다.
일반적인 최적화 방법
손실 함수 경사하강법은 가장 일반적인 모델 최적화 방법입니다.
경사하강법
전체 경사 하강 알고리즘(FG)
확률적 경사하강 알고리즘(SG)
확률적 평균 경사 하강 알고리즘(SAG)
미니배치 경사하강법 알고리즘(mini-batch)
케이스-보스턴 주택 가격 예측
회귀 성능 평가 API: sklearn.metrics.mean_squared_error(y_true, y_pred)
정규 방정식 최적화 선형 회귀 API: sklearn.linear_model.LinearRegression()
확률적 경사하강법으로 선형 회귀 최적화: sklearn.linear_model.SGDRegressor()
과적합과 과소적합
과소적합
정의: 모델은 훈련 세트와 테스트 세트 모두에서 성능이 좋지 않습니다.
해결책: 모델 복잡성 증가
데이터의 특징 수를 늘립니다.
다항식 항 추가
과적합
정의: 모델이 훈련 세트에서는 잘 수행되지만 테스트 세트에서는 잘 수행되지 않습니다.
해결책: 모델 복잡성 감소
데이터를 다시 정리하세요.
훈련 데이터의 양을 늘리세요
정규화
L1 정규화: W 값 중 일부를 직접 0으로 만들어 이 기능의 영향을 제거할 수 있습니다. 기능 선택에 사용할 수 있습니다.
L2 정규화: 일부 W를 매우 작고 0에 가깝게 만들어 특정 기능의 영향력을 약화시킬 수 있습니다.
기능 수 줄이기
정규화된 선형 모델
능선 회귀
선형 회귀 L2 정규화
올가미 반환
선형 회귀 L1 정규화
탄력적 네트워크
선형 회귀 L1 L2
능선 회귀
L2 정규화를 사용한 선형 회귀
API: 리지(알파)
모델 저장 및 로드
저장: joblib.dump(추정자, 경로)
로드 중: joblib.load(경로)
로지스틱 회귀
로지스틱 회귀의 원리
수학적 모델: 선형 회귀 활성화 함수(시그모이드)
활성화 함수의 역할: 모델의 비선형 피팅 능력 향상
손실 함수: 로그 우도 손실
최적화 방법: 경사하강법
API: sklearn.linear_model.LogisticRegression()
분류 모델을 평가하는 방법
분류 평가 보고서 API: classification_report(y_true, y_pred, label, target_names)
ROC 곡선
TPR = TP / (TP FN)
FPR = FP / (FP TN)
임계값을 조정하여 여러(FPR, TPR) 포인트를 얻고 ROC 곡선을 그립니다.
AUC 표시기
의미: 양성 샘플과 음성 샘플 쌍을 무작위로 선택합니다. 양성 샘플의 점수가 음성 샘플의 점수보다 높을 확률입니다.
API: roc_auc_score(y_true, y_score), 참고: y_true는 거짓 사례와 긍정적 사례를 표시하려면 0, 1을 사용해야 합니다.
결정 트리
의사결정 트리 알고리즘 소개
의사결정트리는 트리 구조이다.
각 내부 노드는 기능에 대한 판단을 나타냅니다.
각 분기는 판정 결과의 출력을 나타냅니다.
각 리프 노드는 분류 결과를 나타냅니다.
의사결정나무의 원리
의사결정트리 노드의 특징 선택 및 분할 기준
엔트로피
'혼돈'의 척도
엔트로피 = -p1logp1 - p2logp2 ... pn*log(pn)
정보 획득
데이터 세트를 특정 특성으로 분할하기 전과 후의 엔트로피 차이
정보 획득 = 진입(이전) - 진입(후)
정보 획득이 클수록 이 기능의 분류 방법이 더 좋습니다.
정보 획득률
정보 획득/분리된 정보 측정항목
분리 정보 측정값 = 특징의 각 범주 발생 확률로부터 계산된 엔트로피
지니게인
지니 값: 데이터 세트 D에서 무작위로 선택된 두 개의 샘플이 일치하지 않는 목표 값(라벨)을 가질 확률입니다.
지니 값이 작을수록 데이터 세트의 순도가 높아집니다.
지니게인 = 지니값(이전) - 지니값(이후)
지니 가치 이득이 클수록 이 분할 방법은 더 좋습니다.
의사결정나무를 구축하는 단계
1. 모든 샘플을 전체적으로 살펴보기 시작합니다.
2. 각 특징의 분할 방법을 탐색하여 최적의 분할을 찾습니다(정보 획득률, 정보 획득률 및 지니 가치 획득 기준).
3. 최적 분할 방법에 따라 모든 샘플을 N1과 N2의 두 부분, 즉 두 개의 가지로 나눕니다.
4. 각 노드가 충분히 "순수"해질 때까지 N1 및 N2에 대해 2-3단계를 계속합니다.
다양한 노드 선택 및 분할 기준에 따라 의사결정 트리는 다음과 같이 나뉩니다.
ID3 결정 트리: 정보 획득
C4.5 의사결정나무: 정보 획득률
CART 의사결정 트리: 지니 가치 이득(또는 지니 지수)
카트 가지치기
목적: 의사결정트리 노드 수 감소 -> 의사결정트리의 복잡성 감소 -> 의사결정트리의 과적합 방지
방법
사전 가지치기: 의사결정 트리 생성 시 가지치기
각 노드에 포함된 최소 샘플 수(예: 10)입니다. 노드의 총 샘플 수가 10 미만인 경우 분류가 수행되지 않습니다.
나무의 높이 또는 깊이를 지정합니다. 예를 들어 나무의 최대 깊이는 4입니다.
지정된 노드의 엔트로피가 특정 값보다 작으면 더 이상 분할되지 않습니다.
사후 가지치기(Post-pruning): 의사결정나무 생성 후 가지치기
방법은 미리 잘라내는 것과 유사합니다.
특성 엔지니어링: 특성 추출
사전 특징 추출
sklearn.feature_extraction.DictVectorizer(sparse=True)
참고: 이 방법은 자동으로 개별 데이터를 one_hot 인코딩합니다.
텍스트 특징 추출
단어 발생 횟수
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
Tf-idf 텍스트 특징 추출
TF: 단어 빈도
특정 단어가 문서에 나타나는 빈도를 나타냅니다.
IDF: 역 문서 빈도
전체 문서 수를 해당 단어가 포함된 문서 수로 나눈 다음 몫의 밑이 10인 로그를 취하여 다음을 얻습니다.
TF-IDF
TF-IDF = TF*IDF
기능: 문서 세트 또는 말뭉치의 문서에 대한 단어의 중요성을 평가합니다.
API:sklearn.feature_extraction.text.TfidfVectorizer(stop_works)
참고: 중국어 기사에서 특징을 추출하려면 먼저 단어 분할을 수행해야 합니다.
말더듬 분사: jieba.cut
사례: 타이타닉 승객 생존 예측
의사결정 트리 API: sklearn.tree.DecisionTreeClassifier(criterion='gini', max_length=None,random_state=None)
의사결정 트리 시각화: sklearn.tree.export_graphviz()
요약하다
의사결정 트리의 장점: 단순성, 해석성, 시각화 가능
의사결정나무의 단점: 과적합되기 쉽다
해결책
전정
랜덤 포레스트
앙상블 학습
앙상블 학습 알고리즘 소개
각각 독립적으로 학습하고 예측하는 여러 분류자/모델을 생성합니다. 이러한 예측은 궁극적으로 결합된 예측으로 결합되므로 단일 분류 예측보다 낫습니다.
부스팅 -> 과소적합
배깅 -> 과적합
배깅 앙상블 학습
원리: 여러 모델을 병렬로 구축하고 모델은 서로 독립적입니다.
1. 샘플링: N개의 데이터를 무작위 교체로 샘플링
2. 학습: N개의 데이터를 사용하여 N개의 다른 모델을 학습합니다.
3. 통합: N개 모델의 동등한 투표를 통해 가장 많은 표를 얻은 모델이 최종 결과가 됩니다.
랜덤 포레스트
랜덤 포레스트란 무엇인가: 배깅 결정 트리
API:sklearn.ensemble.RandomForestClassifier(n_estimators, max_length)
이점
두 방법 모두 원래 알고리즘보다 일반화 정확도를 약 2% 향상시킬 수 있습니다.
간단하고 편리하며 다재다능함
부스팅 통합 원리: 여러 모델을 직렬로 구축하면 나중에 구축된 모델이 이전에 구축된 모델의 영향을 받습니다.
1. 훈련 가중치를 초기화하고 가중치를 동일하게 만든 후 첫 번째 학습자(모델)를 훈련시킵니다.
2. 학습 데이터에서 학습자의 오류율을 계산합니다.
3. 오류율을 기준으로 학습자의 가중치를 계산합니다.
4. 학습자의 가중치에 따라 훈련 데이터의 가중치를 다시 부여합니다.
5. 1~4분 간격으로 반복하세요.
6. 최종 결과를 얻기 위해 m개 모델의 결과에 대한 가중치 투표
클러스터링
클러스터링 알고리즘 소개
클러스터링 알고리즘은 일반적인 비지도 학습 알고리즘으로, 유사한 샘플을 자동으로 카테고리로 분류하는 데 주로 사용됩니다.
클러스터링 알고리즘과 분류 알고리즘의 가장 큰 차이점은 클러스터링 알고리즘은 비지도 학습 알고리즘이고 분류 알고리즘은 지도 학습 알고리즘입니다.
클러스터링 알고리즘 API 초기 사용
sklearn.cluster.KMeans(n_clusters=8)
예측 방법: 분류 결과를 얻기 위해 fit_predict(X)를 호출합니다.
클러스터링 알고리즘 구현 과정(원리)
1. K개 샘플을 K개 카테고리의 중심으로 무작위로 선택합니다.
2. 모든 샘플에서 중심까지의 거리를 계산합니다.
3. 샘플이 중심에 가장 가까운 카테고리는 무엇입니까?
4. K개의 카테고리를 나눈 후 중심의 좌표를 다시 계산합니다. 계산 방법은 카테고리 내 샘플의 각 특징값의 평균값을 새 중심의 해당 좌표로 사용하는 것입니다.
5. 중심 좌표가 더 이상 변경되지 않을 때까지 2, 3, 4단계를 반복합니다.
클러스터링을 위한 모델 평가
제곱 오차의 합: 해당 범주 중심까지의 모든 샘플의 제곱 거리(유클리드 거리)의 합
"엘보우(Elbow)" 방법: 감소율이 갑자기 느려지는 경우 이를 최적의 k 값으로 간주합니다.
SC 실루엣 계수: 값이 [-1, 1]입니다. 값이 클수록 음수일 경우 표본이 잘못 분류될 수 있습니다.
CH 계수: 점수가 높을수록 클러스터링 효과가 더 좋습니다.
알고리즘 최적화
초기 클러스터링을 사용한 캐노피 알고리즘
K-평균
이분 k-평균
ISODATA
커널 kmeans
미니배치 K-평균
특징 차원 축소
기능 선택
낮은 분산 기능 제거
피어슨 상관 계수
Spearman 상관계수
주성분 분석 PCA
사례: 항목 카테고리, 세분화 및 차원 축소에 대한 사용자 선호도 탐색