Python에서 기계 학습 모델의 성능을 평가하는 방법은 무엇입니까?
적절한 평가 표시기 선택 : 분류 작업은 정확도, 정확도, 리콜, F1 점수, ROC-AUC 및 Confusion Matrix를 사용하며 회귀 작업은 MAE, MSE, RMSE 및 R²를 사용합니다. 2. Scikit-Learn을 사용하여 지표를 계산하고 Sklearn.metrics 모듈의 기능을 통해 분류 및 회귀 모델의 평가를 구현하십시오. 3. 단일 분열로 인한 편차를 피하기 위해보다 강력한 성능 평가를 수행하기 위해 교차 검증 (Cross_val_score)을 사용하십시오. 4. 선택적으로 ROC 곡선 및 혼동 매트릭스 열 측정법을 통해 모델 성능을 시각화합니다. 모델을 평가하는 열쇠는 문제에 따라 적절한 지표를 선택하고 교차 검증 및 시각적 포괄적 인 분석을 결합하여 모델 효과를 정확하게 판단하고 지표의 오용으로 인한 잘못된 결론을 피하는 것입니다.
Python에서 머신 러닝 모델의 성능을 평가하려면 문제 유형 (정류, 회귀 또는 기타)에 따라 올바른 메트릭 및 도구를 선택하고 scikit-learn
과 같은 라이브러리를 사용하여 계산합니다. 효과적으로 수행하는 방법은 다음과 같습니다.

1. 올바른 평가 메트릭을 선택하십시오
첫 번째 단계는 작업에 따라 적절한 메트릭을 선택하는 것입니다.
분류 작업 :
- 정확도 : 올바른 예측의 비율. 수업이 균형을 잡을 때 좋습니다.
- 정밀도, 리콜, F1- 점수 : 불균형 데이터 세트에 대한 유익한 정보.
- 정밀도 : 예측 된 모든 긍정적 인 중에서 실제 긍정적 인 것은 몇 명입니까?
- 리콜 (민감도) : 모든 실제 긍정적 인 중 어느 것이 올바르게 예측 되었습니까?
- F1- 점수 : 고조파 정밀도 및 리콜 수단.
- ROC-AUC : 모델이 예측 순위가 얼마나 잘 순위를 매기는지 측정합니다. 확률 출력으로 이진 분류에 유용합니다.
- 혼란 매트릭스 : 상세한 분석을 위해 진정한 긍정적, 오 탐지 등을 보여줍니다.
회귀 작업의 경우 :
- 평균 절대 오차 (MAE) : 예측 된 값과 실제 값의 평균 절대 차이.
- 평균 제곱 오류 (MSE) : 더 큰 오류를 더 크게 불평합니다.
- 루트 평균 제곱 오류 (RMSE) : 원래 스케일의 MSE.
- R² (R-Squared) : 모델에 의해 설명 된 변동의 비율 (1에 가깝습니다).
2. Scikit-Learn을 사용하여 메트릭을 계산하십시오
모델이 훈련되고 예측이 이루어지면 sklearn.metrics
사용하십시오.

예 : 분류
sklearn.model_selection import train_test_split sklearn. ensemble import randomforestclassifier skearn.metrics import accuracy_score, precision_recall_fscore_support, roc_auc_score, confusion_matrix sklearn.datasets import make_classification # 샘플 데이터를 생성합니다 x, y = make_classification (n_samples = 1000, n_features = 10, n_classes = 2, random_state = 42) x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.3, random_state = 42) # 기차 모델 Model = RandomForestClassifier (random_state = 42) model.fit (x_train, y_train) y_pred = model.predict (x_test) y_prob = model.predict_proba (x_test) [:, 1] # 양수 클래스의 확률 # 평가하다 정확도 = accuracy_score (y_test, y_pred) 정밀, 리콜, f1, _ = precision_recall_fscore_support (y_test, y_pred, 평균 = 'binary') auc = roc_auc_score (y_test, y_prob) cm = confusion_matrix (y_test, y_pred) print (f "정확도 : {정확도 : .3f}") print (f "정밀 : {정밀 : .3f}, 리콜 : {Recall : .3f}, f1 : {f1 : .3f}") print (f "roc-auc : {auc : .3f}") print ( "혼란 매트릭스 :") 인쇄 (cm)
예 : 회귀
sklearn. ensemble import randomforestregressor Sklearn.metrics에서 import mean_absolute_error, means_squared_error, r2_score sklearn.datasets import make_regression # 샘플 데이터를 생성합니다 x, y = make_regression (n_samples = 1000, n_features = 5, Noise = 0.1, random_state = 42) x_train, x_test, y_train, y_test = train_test_split (x, y, test_size = 0.3, random_state = 42) # 기차 모델 reg_model = random_state = 42) reg_model.fit (x_train, y_train) y_pred = reg_model.predict (x_test) # 평가하다 mae = mean_absolute_error (y_test, y_pred) mse = mean_squared_error (y_test, y_pred) RMSE = MSE ** 0.5 r2 = r2_score (y_test, y_pred) print (f "mae : {mae : .3f}") print (f "mse : {mse : .3f}") print (f "rmse : {rmse : .3f}") print (f "r² : {r2 : .3f}")
3. 강력한 평가를위한 교차 검증
단일 열차 테스트 분할 대신 교차 검증을 사용하여보다 신뢰할 수있는 추정치를 얻으십시오.
sklearn.model_selection에서 import cross_val_score # 분류 용 cv_accuracy = cross_val_score (모델, x, y, cv = 5, 스코어링 = '정확도') print (f "cv 정확도 : {cv_accuracy.mean () :. 3f} ( /- {cv_accuracy.std () * 2 : .3f}"). # 회귀 용 cv_r2 = cross_val_score (reg_model, x, y, cv = 5, scoring = 'r2') print (f "cv r² : {cv_r2.mean () :. 3f} ( /- {cv_r2.std () * 2 : .3f})")
일반적인 스코어링 옵션 : 'accuracy'
, 'precision'
, 'recall'
, 'f1'
, 'roc_auc'
, 'r2'
, 'neg_mean_squared_error'
등

4. 성능 시각화 (선택 사항이지만 유용)
- ROC 곡선 :
Sklearn.metrics import roc_curve matplotlib.pyplot을 plt로 가져옵니다
fpr, tpr, _ = roc_curve (y_test, y_prob) plt.plot (fpr, tpr, label = f "roc 곡선 (auc = {auc : .2f})") plt.plot ([0, 1], [0, 1], 'k--') plt.xlabel ( "false positive rat") plt.title ( "Roc Curve") plt.legend () plt.show ()
- ** 혼란 매트릭스 열 맵 ** : ```Python SABORN을 SNS로 수입하십시오 sns.heatmap (cm, annot = true, fmt = 'd', cmap = 'blues') plt.title ( "혼란 매트릭스") plt.ylabel ( "실제") plt.xlabel ( "예측") plt.show ()
기본적으로 파이썬에서 모델을 평가하는 것은 다음과 같습니다.
- 문제에 대한 올바른 메트릭을 선택하고
-
scikit-learn
함수를 사용하여 계산하고 - 교차 검증으로 검증,
- 그리고 선택적으로 결과를 시각화합니다.
복잡하지는 않지만 잘못된 메트릭을 선택하면 (불균형 데이터의 정확도와 같은) 오해 할 수 있습니다. 따라서 항상 "좋은 성능"이 사용 사례에 어떤 의미가 있는지 생각해보십시오.
위 내용은 Python에서 기계 학습 모델의 성능을 평가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

PyoDBC 설치 : PipinStallPyODBC 명령을 사용하여 라이브러리를 설치하십시오. 2. SQLSERVER 연결 : PYODBC.connect () 메소드를 통해 드라이버, 서버, 데이터베이스, UID/PWD 또는 Trusted_Connection이 포함 된 연결 문자열을 사용하고 SQL 인증 또는 Windows 인증을 각각 지원합니다. 3. 설치된 드라이버를 확인하십시오 : pyodbc.drivers ()를 실행하고 'sqlserver'가 포함 된 드라이버 이름을 필터링하여 올바른 드라이버 이름이 'sqlserver 용 Odbcdriver17과 같은 올바른 드라이버 이름을 사용하는지 확인하십시오. 4. 연결 문자열의 키 매개 변수

httpx.asyncclient를 사용하여 비동기 HTTP 요청을 효율적으로 시작하십시오. 1. 기본 GET 요청은 비동기를 통해 클라이언트를 관리하고 awaitclient.get를 사용하여 비 블로킹 요청을 시작합니다. 2. asyncio.gather를 결합하여 asyncio.gather를 결합하여 성능을 크게 향상시킬 수 있으며 총 시간은 가장 느린 요청과 같습니다. 3. 사용자 정의 헤더, 인증, Base_URL 및 시간 초과 설정을 지원합니다. 4. 사후 요청을 보내고 JSON 데이터를 전달할 수 있습니다. 5. 동기 비동기 코드를 혼합하지 않도록주의하십시오. 프록시 지원은 크롤러 또는 API 집계 및 기타 시나리오에 적합한 백엔드 호환성에주의를 기울여야합니다.

pythontanbeoptimizedformemory-boundoperations는 Headgroughgenerations, 효율적 인 데이터 구조, 및 ManagingObjectLifetimes.first, usegeneratorsinsteadoflistStoprocessLargedAtasetSoneitematime, theintintomemory.second를 피하십시오

이 기사는 sqlalchemy 초보자가 create_engine 및 그 이후의 "ResourceClosedError"연결 종료 오류를 사용할 때 발생하는 "REMOVEDIN20 WARNING"경고를 해결하는 데 도움이됩니다. 이 기사는이 경고의 원인을 자세히 설명하고 경고를 제거하고 연결 문제를 해결하여 데이터베이스를 원활하게 쿼리하고 작동 할 수 있도록 특정 단계 및 코드 예제를 제공합니다.

shutil.rmtree ()는 전체 디렉토리 트리를 재귀 적으로 삭제하는 파이썬의 함수입니다. 지정된 폴더와 모든 내용을 삭제할 수 있습니다. 1. 기본 사용법 : shutil.rmtree (Path)를 사용하여 디렉토리를 삭제하고 filenotfounderRor, AprismenterRor 및 기타 예외를 처리해야합니다. 2. 실제 응용 프로그램 : 임시 데이터 또는 캐시 디렉토리와 같은 한 번의 클릭으로 하위 디렉토리 및 파일을 포함하는 폴더를 지울 수 있습니다. 3. 참고 : 삭제 작업은 복원되지 않습니다. 경로가 존재하지 않을 때 filenotfounderror가 던져집니다. 권한이나 파일 직업으로 인해 실패 할 수 있습니다. 4. 선택적 매개 변수 : ingore_errors = true로 오류를 무시할 수 있습니다

해당 데이터베이스 드라이버를 설치하십시오. 2. Connect ()를 사용하여 데이터베이스에 연결하십시오. 3. 커서 객체를 만듭니다. 4. Execute () 또는 Executemany ()를 사용하여 SQL을 실행하고 매개 변수화 된 쿼리를 사용하여 주입을 방지하십시오. 5. 결과를 얻으려면 fetchall () 등을 사용하십시오. 6. 수정 후 Commit ()가 필요합니다. 7. 마지막으로 연결을 닫거나 컨텍스트 관리자를 사용하여 자동으로 처리하십시오. 완전한 프로세스는 SQL 작업이 안전하고 효율적임을 보장합니다.

Python은 ETL 프로세스를 구현하는 효율적인 도구입니다. 1. 데이터 추출 : 데이터베이스, API, 파일 및 기타 소스에서 Pandas, Sqlalchemy, 요청 및 기타 라이브러리를 통해 데이터를 추출 할 수 있습니다. 2. 데이터 변환 : 청소, 유형 변환, 연관성, 집계 및 기타 작업에 팬더를 사용하여 데이터 품질을 보장하고 성능을 최적화합니다. 3. 데이터 로딩 : Pandas 'To_SQL 메소드 또는 클라우드 플랫폼 SDK를 사용하여 대상 시스템에 데이터를 작성하고 작성 방법 및 배치 처리에주의를 기울입니다. 4. 도구 권장 사항 : 공기 흐름, Dagster, Prefect는 프로세스 스케줄링 및 관리에 사용되며 로그 경보 및 가상 환경을 결합하여 안정성과 유지 관리를 향상시킵니다.

psycopg2.pool.simpleconnectionpool을 사용하여 데이터베이스 연결을 효과적으로 관리하고 빈번한 연결 생성 및 파괴로 인한 성능 오버 헤드를 피하십시오. 1. 연결 풀을 만들 때 연결 풀이 성공적으로 초기화되도록 최소 및 최대 연결 및 데이터베이스 연결 매개 변수를 지정하십시오. 2. getConn ()을 통해 연결을 가져 와서 putconn ()을 사용하여 데이터베이스 작업을 실행 한 후 풀에 연결을 반환하십시오. 끊임없이 Conn.Close () 호출 금지됩니다. 3. SimpleConnectionPool은 스레드 안전이며 다중 스레드 환경에 적합합니다. 4. 예외가 표시 될 때 연결을 올바르게 반환 할 수 있도록 컨텍스트 관리자와 함께 컨텍스트 관리자를 구현하는 것이 좋습니다.
