본문 바로가기

인공지능(AI)/머신러닝11

[핸즈온 머신러닝] 6장 결정 트리 SVM처럼 분류와 회귀 작업, 다중 출력 작업도 가능한 다재다능한 머신러닝 알고리즘 매우 복잡한 데이터셋도 학습할 수 있는 강력한 알고리즘 최근에 가장 강력한 머신러닝 알고리즘 중 하나인 랜덤 포레스트의 기본 구성 요소이기도함 1. 결정 트리 학습과 시각화 from sklearn.tree import DecisionTreeClassifier tree_clf = DecisionTreeClassifier(max_depth=2) tree_clf.fit(X, y) export_graphviz() 함수를 사용해 그래프 정의를 .dot 파일로 출력하여 훈련된 결정 트리를 시각화할 수 있음 2. 예측하기 노드의 sample 속성: 얼마나 많은 훈련 샘플이 적용되었는지 헤아린 것 node의 gini 속성: 불순도 측정.. 2022. 1. 18.
[핸즈온 머신러닝] 5장 서포트 벡터 머신 ⭐ 매우 강력하고 선형이나 비선형 분류, 회귀, 이상치 탐색에도 사용 가능한 다목적 머신러닝 모델 -> 특히 복잡한 분류 모델에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합 1. 선형 SVM 분류 라지 마진 분류 : 훈련 샘플로부터 가능한 멀리 떨어진 것으로 폭이 넓은 도로를 찾는 것으로 생각할 수 있음 도로 경계에 위치한 샘플에 의해 전적으로 결정됨 -> 이러한 샘플을 서포트 벡터라고 함 1) 소프트 마진 분류 하드 마진 분류: 모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있는 경우 데이터가 선형적으로 구분될 수 있어야 제대로 작동하며 이상치에 민감 -> 좀 더 유연한 모델이 필요 소프트 마진 분류: 도로의 폭을 가능한 넓게 유지하는 것과 마진 오류 사이에 적절한 균형을 잡아야 함 하이퍼파라미터 .. 2022. 1. 18.
[핸즈온 머신러닝] 4장 모델 훈련 1. 선형 회귀 입력 특성의 가중치 합과 편향이라는 상수를 더해 예측을 만듦 회귀에 가장 널리 사용되는 성능 측정 지표는 RMSE 정규 방정식 : 비용 함수를 최소화하는 Θ 값을 찾기 위한 해석적인 방법으로 바로 결과를 얻을 수 있는 수학 공식 from sklearn.linear_model import LinearRegression lin_reg = LinearRegression() lin_reg.fit(X, y) 2. 경사 하강법 여러 종류의 문제에서 최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘 기본 아이디어는 비용 함수를 최소화하기 위해 반복해서 파라미터를 조정 파라미터 벡터 Θ에 대해 비용 함수의 현재 그레이디언트를 계산 후 감소하는 방향으로 진행하며 0이 되면 최솟값에 도달 중요한 파라미.. 2022. 1. 17.
[핸즈온 머신러닝] 3장 분류 1. 이진 분류 확률적 경사 하강법 매우 큰 데이터셋을 효율적으로 처리하는 장점을 지님 (한 번에 하나씩 훈련 샘플을 독립적으로 처리하기 때문) 훈련하는데 무작위성을 사용 from sklearn.linear_model import SGDClassifier sgd_clf = SGDClassifier(random_state=42) sgd_clf.fit(X_train, y_train) 2. 성능 측정 1) 교차 검증을 사용한 정확도 측정 k-겹 교차검증 : 훈련 세트를 k개의 폴드로 나누고 각 폴드에 대해 예측을 만들고 평가하기 위해 나머지 폴드로 훈련시킨 모델을 사용 from sklearn.model_selection import cross_val_score cross_val_score(sgd_clf, X_.. 2022. 1. 11.
[핸즈온 머신러닝] 2장 머신러닝 프로젝트 처음부터 끝까지 ⭐ 데이터 준비단계 -> 모니터링 도구 구축 -> 사람의 평가 파이프라인 세팅 -> 주기적인 모델 학습 자동화 1. 모델 선택과 훈련 1) 교차 검증을 사용한 평가 k-겹 교차 검증 from sklearn.model_selection import cross_val_score scores = sross_val_score(tree_reg, housing_prepared, housing_labels, scoring = "neg_mean_squarred_error", cv=10) tree_rmse_scores = np.sqrt(-scores) 실험한 모델을 모두 저장해놓으면 필요할 때 쉽게 복원할 수 있다. -> 파이썬의 pickle 패키지나 큰 넘파이 배열을 저장하는데 아주 효율적인 joblib을 사용하여 사.. 2022. 1. 8.