> 기술 주변기기 > IT산업 > 파이썬을 사용한 기계 학습의 프라이머

파이썬을 사용한 기계 학습의 프라이머

Christopher Nolan
풀어 주다: 2025-02-10 15:54:09
원래의
785명이 탐색했습니다.

A Primer on Machine Learning with Python 지난 10 년 동안 머신 러닝은 과학 연구 실험실에서 일상 웹 및 모바일 애플리케이션으로 이동했습니다. 머신 러닝을 통해 애플리케이션은 이미지에서 객체 및면을 감지하고 스팸 및 증오 연설 감지, 이메일 및 메시지 응용 프로그램에 대한 스마트 답글 생성과 같은 이전의 어려운 작업을 수행 할 수 있습니다.

그러나 그러나 기계 학습을 수행하는 것은 근본적으로 고전적인 프로그래밍과 다릅니다. 이 기사에서는 기계 학습의 기본 사항을 배우고 꽃 측정을 기반으로 꽃 종을 예측할 수있는 기본 모델을 만듭니다.

키 포인트

머신 러닝은 과학 연구 실험실에서 일상적인 웹 및 모바일 애플리케이션으로 발전하여 응용 프로그램이 이전에 프로그래밍하기 어려운 작업을 수행 할 수 있도록했습니다.

머신 러닝은 경험에 의존하고, 규칙을 제공하기보다는 예제를 통해 모델을 훈련시킵니다. 기계 학습 알고리즘의 다양한 범주가 있으며, 각각의 특정 문제를 해결할 수 있습니다 : 감독 학습, 감독되지 않은 학습 및 강화 학습. Python은 Scikit-Learn, Tensorflow 및 Pytorch와 같은 라이브러리 및 프레임 워크를 포함한 단순성, 가독성 및 광범위한 생태계로 인해 인기있는 기계 학습 언어가되었습니다. 그러나 Python 프로그래밍의 기본 개념, Numpy, Pandas 및 Matplotlib와 같은 라이브러리 및 통계 및 확률은 전제 조건입니다. 머신 러닝 모델을 구현하는 프로세스에는 문제 정의, 데이터 수집, 데이터 세트를 교육 및 테스트 세트로 나누고, 모델 구축 및 성능 평가가 포함됩니다. 교차 검증 및 훈련 테스트 분할과 같은 기술과 정확도, 정확도, 리콜 및 F1 점수와 같은 지표를 사용하여 모델의 성능을 확인할 수 있습니다.

  • 기계 학습은 어떻게 작동합니까?
  • 클래식 프로그래밍은 다른 클래스, 기능 및 IF-ELSE 명령으로 분해 될 수있는 잘 정의 된 문제에 의존합니다. 반면에 머신 러닝은 경험을 바탕으로 행동을 개발하는 데 의존합니다. 머신 러닝 모델에 규칙을 제공하는 대신 예제를 통해 교육을받습니다.
  • 다른 범주의 기계 학습 알고리즘이 있으며 각 범주는 특정 문제를 해결할 수 있습니다.
  • 감독 학습
  • 감독 학습은 입력 데이터에서 결과에 이르는 질문에 적합합니다. 모든 감독 학습 문제의 일반적인 특징은 표시된 이미지 또는 과거 판매 데이터와 같이 모델을 테스트하는 데 사용할 수있는 실제 상황이 존재한다는 것입니다.
  • 감독 된 학습 모델은 회귀 또는 분류 문제를 해결할 수 있습니다. 회귀 모델은 수량 (예 : 판매 된 상품의 수량 또는 재고 가격)을 예측하는 반면 분류 문제는 입력 데이터의 범주 (예 : Cat/Dog/Fish/Bird, Fraud/Non-Fraud)를 결정하려고 시도합니다.
  • 이미지 분류, 얼굴 탐지, 주가 예측 및 판매 예측은 학습을 감독 할 수있는 문제의 예입니다.
  • 일부 인기있는 감독 학습 알고리즘에는 선형 회귀 및 로지스틱 회귀, 지원 벡터 머신, 의사 결정 트리 및 인공 신경망이 포함됩니다.
감독되지 않은 학습

감독되지 않은 학습은 데이터가 있지만 결과는 없지만 패턴을 찾고있는 문제에 적합합니다. 예를 들어, 유사성에 따라 세그먼트로 그룹화 할 수 있습니다. 이를 감독되지 않은 학습에서 클러스터링이라고합니다. 또는 비즈니스의 정상적인 활동에서 벗어나는 악의적 인 네트워크 트래픽을 감지 할 수 있습니다. 이것을 이상 감독이라고하며, 이는 다른 감독되지 않은 학습 과제입니다. 감독되지 않은 학습은 무의미한 기능을 제거하여 기계 학습 작업을 단순화하는 기술 인 차원 감소에도 사용될 수 있습니다.

일부 인기있는 비 감독 학습 알고리즘에는 K-Mean 클러스터링 및 주요 구성 요소 분석 (PCA)이 포함됩니다.

강화 학습

강화 학습은 에이전트가 환경과 상호 작용하여 목표를 달성하려는 기계 학습의 한 분야입니다. 강화 학습에는 행동, 상태 및 보상이 포함됩니다. 훈련되지 않은 강화 학습 에이전트는 무작위 행동으로 시작합니다. 각 동작은 환경의 상태를 변경합니다. 에이전트가 원하는 상태에서 자신을 찾으면 보상을 받게됩니다. 에이전트는 가장 많은 보상을 생성하는 일련의 행동과 상태를 찾으려고합니다.

강화 학습은 Google의 Alphago 및 Alphastar와 같은 추천 시스템, 로봇 공학 및 게임 로봇에 사용됩니다.

파이썬 환경 설정

이 기사에서는 기계 학습의 가장 인기있는 지점이며 결과를 더 쉽게 평가하기 때문에 감독 학습에 중점을 둘 것입니다. Python에는 기계 학습 애플리케이션을 지원하는 많은 기능과 라이브러리가 있으므로 Python을 사용할 것입니다. 그러나 일반적인 개념은 유사한 라이브러리가있는 모든 프로그래밍 언어에 적용될 수 있습니다.

(Python에 익숙하지 않은 경우 Freecodecamp는 시작하기위한 훌륭한 충돌 코스를 제공합니다.)

.

데이터 과학 및 기계 학습에 일반적으로 사용되는 파이썬 라이브러리 중 하나는 Scikit-Learn으로 인기있는 기계 학습 알고리즘의 구현을 제공합니다. Scikit-Learn은 기본 Python 설치의 일부가 아니므로 수동으로 설치해야합니다.

MacOS와 Linux에는 Python이 사전 설치되어 있습니다. Scikit-Learn 라이브러리를 설치하려면 터미널 창에 다음 명령을 입력하십시오.

또는 파이썬 3 :

Microsoft Windows에서는 먼저 Python을 설치해야합니다. 공식 웹 사이트에서 최신 버전의 Windows Python 3 Installer를 얻을 수 있습니다. Python이 설치된 후 명령 줄 창에 다음 명령을 입력하십시오. 또는 대안으로, 독립형 Python 3과 Scikit-Learn 및 데이터 과학 및 기계 학습을위한 기타 여러 라이브러리, 예 : numpy

,

scipy > 및

matplotlib . 공식 웹 사이트에서 무료 개인 버전의 Anaconda에 대한 설치 지침을 찾을 수 있습니다.

1 단계 : 문제를 정의하십시오

모든 머신 러닝 프로젝트의 첫 번째 단계는 해결하려는 문제를 이해하는 것입니다. 질문을 정의하면 수집해야 할 데이터 유형을 결정하고 사용해야하는 기계 학습 알고리즘에 대한 아이디어를 제공합니다.

이 예에서는 꽃잎과 폭 넓은 길이와 너비의 측정을 기반으로 꽃의 유형을 예측하는 모델을 만들고자합니다.

이것은 감독 분류 문제입니다. 우리는 다른 꽃 표본과 해당 종의 측정 목록을 수집해야합니다. 그런 다음이 데이터를 사용하여 측정을 종에 매핑 할 수있는 기계 학습 모델을 교육하고 테스트합니다.

2 단계 : 데이터 수집

머신 러닝에서 가장 까다로운 부분 중 하나는 모델을 훈련시키기 위해 데이터를 수집하는 것입니다. 모델을 훈련시키는 데 필요한 데이터의 양을 수집 할 수있는 소스를 찾아야합니다. 또한 데이터의 품질을 확인하고 모델이 처리 할 다양한 상황을 나타내고 숨겨진 편향이 포함 된 데이터를 수집하지 않아야합니다.

운 좋게도 Scikit-Learn에는 다양한 기계 학습 알고리즘을 시도하는 데 사용할 수있는 여러 장난감 데이터 세트가 포함되어 있습니다. "아이리스 데이터 세트"에는 질문에 필요한 정확한 데이터가 포함됩니다. 도서관에서로드하면됩니다. 다음 코드는 하우징 데이터 세트를로드합니다 : IRIS 데이터 세트에는 150 개의 관측치가 포함되어 있으며 각각 4 개의 측정 (iris.data)과 대상 꽃 종 (iris.target)이 포함되어 있습니다. iris.feature_names에서 데이터 열의 이름을 볼 수 있습니다.

iris.target에는 데이터 세트에 등록 된 3 개의 꽃 종 중 하나의 수치 지수 (0-2)가 포함되어 있습니다. 꽃 종의 이름은 iris.target_names에서 찾을 수 있습니다.

3 단계 : 데이터 세트를 분할

교육을 시작하기 전에 데이터를 교육 세트와 테스트 세트로 분할해야합니다. 훈련 세트를 사용하여 기계 학습 모델을 훈련시키고 테스트 세트를 사용하여 정확도를 확인합니다.

이것은 모델이 교육 데이터에 과도하지 않도록하기 위해 수행됩니다. 과적은 기계 학습 모델이 훈련 예제에서 잘 수행되지만 보이지 않는 데이터는 잘 수행되지 않을 때입니다. 잘못된 기계 학습 알고리즘을 선택하거나 모델을 잘못 구성하거나 교육 데이터가 잘못되거나 교육 예제가 너무 적음으로써 과적으로 적합 할 수 있습니다.

해결중인 문제의 유형과 보유한 데이터 양에 따라 테스트 세트에 할당하려는 데이터의 양을 결정해야합니다. 일반적으로 많은 데이터가있을 때 (수만 개의 예제에 관한) 작은 샘플의 약 1%만으로도 모델을 테스트하기에 충분합니다. 총 150 개의 레코드가 포함 된 IRIS 데이터 세트의 경우 75-25 세그먼트를 선택합니다.

scikit-learn은 train_test_split 함수가있어 데이터 세트를 교육 데이터 세트와 테스트 데이터 세트로 분할합니다.

train_test_split 데이터를 가져 와서 대상 데이터 세트를 가져 와서 교육에 사용되는 두 쌍의 데이터 세트 (x_train 및 y_train) 및 테스트 (x_test 및 y_test)를 반환합니다. test_size 매개 변수는 테스트에 할당 할 데이터의 백분율 (0과 1)을 결정합니다. 계층화 매개 변수는 훈련 배열과 테스트 배열에 각 범주의 균형 샘플 수를 포함하도록합니다. Random_state 변수는 Scikit-Learn의 많은 함수에 존재하며 랜덤 번호 생성기를 제어하고 반복성을 달성하는 데 사용됩니다.
<code>pip install scikit-learn</code>
로그인 후 복사
로그인 후 복사
4 단계 : 모델을 구축하십시오

이제 데이터가 준비되었으므로 기계 학습 모델을 만들어 교육 세트에서 교육 할 수 있습니다. 우리가 다루는 분류 문제를 해결할 수있는 다양한 기계 학습 알고리즘이 있습니다. 우리의 경우, 우리는 매우 빠르며 너무 많은 차원을 포함하지 않는 간단한 분류 문제에 적합한 "로지스틱 회귀"알고리즘을 사용합니다. Scikit-Learn의 LogisticRegression 클래스는이 알고리즘을 구현합니다. 그것을 인스턴스화 한 후, 우리는 FIT 기능을 호출하여 훈련 세트 (X_TRAIN 및 Y_TRAIN)에서 훈련합니다. 이것은 모델의 매개 변수를 조정하여 측정 된 값과 꽃 종 사이의 매핑을 찾습니다.

5 단계 : 모델을 평가

이제 우리는 모델을 훈련 시켰으므로 정확도를 측정하고 싶습니다. LogisticRegression 클래스에는 모델의 정확도를 반환하는 점수 방법이 있습니다. 먼저 교육 데이터에 대한 모델의 정확도를 측정합니다.

이것은 약 0.97을 반환합니다. 이는 모델이 훈련 사례의 97%를 정확하게 예측하는 것을 의미합니다. 이는 우리가 종당 약 37 개의 훈련 사례 만 있다는 점을 고려하면 매우 좋습니다.

다음으로, 우리는 테스트 세트에서 모델의 정확도를 확인할 것입니다 :
<code>pip install scikit-learn</code>
로그인 후 복사
로그인 후 복사

이것은 우리에게 훈련 정확도보다 약간 낮은 결과의 약 95%를 줄 것입니다. 이는 모델이 전에 본 적이없는 예이기 때문에 자연 스럽습니다. 더 큰 데이터 세트를 만들거나 다른 기계 학습 알고리즘 (예 : 지원 벡터 머신)을 시도함으로써 모델의 정확도를 더욱 향상시키고 교육 및 테스트 성능 간의 격차를 해소 할 수 있습니다. 마지막으로, 우리는 새 예제에서 훈련 한 모델을 사용하는 방법을보고 싶습니다. LogisticRegression 클래스에는 관측치 배열을 입력으로 취하고 예측 된 범주를 반환하는 예측 함수가 있습니다. 꽃 분류기 모델의 경우 꽃의 범주를 나타내는 정수를 반환하는 네 가지 측정 (Sepal 길이, 폭 넓, 꽃잎 길이, 꽃잎 너비) 배열을 제공해야합니다. 축하합니다! 첫 번째 기계 학습 모델을 만들었습니다. 이제 사용자로부터 측정하고 꽃 종을 반환하는 앱으로 결합 할 수 있습니다.

이것이 머신 러닝의 마스터가되는 첫 단계이기를 바랍니다. 여기에서 다른 기계 학습 알고리즘을 계속 배우고 기계 학습의 기본 개념에 대해 자세히 알아보고 신경망 및 딥 러닝과 같은 고급 주제를 계속 배울 수 있습니다. 학습과 연습을 통해 이미지에서 객체를 감지하고 음성 명령을 처리하며 사용자와 대화 할 수있는 특별한 응용 프로그램을 만들 수 있습니다.

Python (FAQ)을 사용한 기계 학습을위한

FAQ 기계 학습에 Python을 사용하는 법을 배우기위한 전제 조건은 무엇입니까? 머신 러닝에 Python 사용을 배우려면 Python 프로그래밍에 대한 기본적인 이해가 필요합니다. Numpy, Pandas 및 Matplotlib와 같은 라이브러리에 익숙한 것도 도움이됩니다. 또한 통계 및 확률에 대한 기본적인 이해는 기계 학습 알고리즘의 핵심을 형성하기 때문에 중요합니다. Python은 다른 기계 학습 언어와 어떻게 비교됩니까?

파이썬은 단순성과 가독성으로 인해 가장 인기있는 기계 학습 언어 중 하나입니다. 기계 학습 모델의 개발을 단순화하는 Scikit-Learn, Tensorflow 및 Pytorch와 같은 광범위한 라이브러리 및 프레임 워크가 있습니다. R 및 Java와 같은 다른 언어는 기계 학습에도 사용되지만 Python의 광범위한 생태계는 많은 사람들에게 가장 먼저 선택됩니다.

Python을 사용하여 어떤 일반적인 기계 학습 알고리즘을 구현할 수 있습니까?

Python의 Scikit-Learn 라이브러리는 다양한 기계 학습 알고리즘의 구현을 제공합니다. 일반적으로 사용되는 일부 알고리즘에는 선형 회귀, 로지스틱 회귀, 의사 결정 트리, 랜덤 포레스트,지지 벡터 머신 및 K-Nearest 이웃이 포함됩니다. 딥 러닝의 경우 Tensorflow 및 Pytorch와 같은 라이브러리를 사용할 수 있습니다.

파이썬 머신 러닝 모델의 성능을 확인하는 방법은 무엇입니까?

교차 검증 및 훈련 테스트 분할과 같은 기술을 사용하여 모델의 성능을 확인할 수 있습니다. Python의 Scikit-Learn 라이브러리는 이에 대한 기능을 제공합니다. 또한 정확도, 정확도, 리콜 및 F1 점수와 같은 메트릭을 사용하여 문제를 분류하고 평균 제곱 오류 또는 회귀 문제에 대한 R 제곱을 사용 할 수 있습니다.

감독 및 감독되지 않은 학습에 Python을 사용할 수 있습니까? 예, Python은 감독 학습 및 감독되지 않은 학습을 지원합니다. Scikit-Learn과 같은 라이브러리는 회귀 및 분류와 같은 감독 학습 알고리즘을 구현하는 데 사용될 수 있습니다. 감독되지 않은 학습의 경우 K-Means, 계층 적 클러스터링 및 DBSCAN과 같은 클러스터링 알고리즘을 사용할 수 있습니다.

기계 학습 모델에서 과적으로 처리하는 방법은 무엇입니까?

정규화, 조기 정지 및 신경망 드롭 아웃과 같은 기술을 사용하여 오버 피트팅을 처리 할 수 ​​있습니다. 버깅 및 부스트와 같은 통합 방법을 사용하여 과적으로 적합성을 줄일 수 있습니다.

Python을 사용한 기계 학습에서 데이터 전처리의 역할은 무엇입니까?

데이터 전처리는 기계 학습의 핵심 단계입니다. 여기에는 데이터 정리, 결 측값 처리, 범주 형 변수 인코딩 및 스케일링 기능이 포함됩니다. Python은 효율적인 데이터 전처리를 수행 할 수있는 Pandas 및 Scikit-Learn과 같은 라이브러리를 제공합니다.

머신 러닝 모델의 성능을 시각화하기 위해 파이썬을 사용하는 방법은 무엇입니까?

Matplotlib 및 Seaborn과 같은 라이브러리를 사용하여 모델의 성능을 시각화 할 수 있습니다. 이 라이브러리는 혼란 매트릭스, ROC 곡선 및 학습 곡선과 같은 그래프를 플로팅하는 기능을 제공합니다.

자연 언어 처리 (NLP)에 Python을 사용할 수 있습니까? 예, Python은 NLTK 및 자연 언어 처리를위한 Spacy와 같은 라이브러리를 제공합니다. 이 라이브러리는 토큰 화, 부품 주석, 지명 된 엔티티 인식 및 감정 분석과 같은 기능을 제공합니다.

Python을 사용하여 구축 된 기계 학습 모델을 배포하는 방법은 무엇입니까?

Flask 또는 Django와 같은 웹 프레임 워크를 사용하여 기계 학습 모델을 배포 할 수 있습니다. 대규모 배포의 경우 AWS, Google Cloud 또는 Azure와 같은 클라우드 플랫폼을 사용할 수 있습니다. 모델 배포, 스케일링 및 모니터링을위한 서비스를 제공합니다.

위 내용은 파이썬을 사용한 기계 학습의 프라이머의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿