데이터 과학 및 기계 학습에 일반적으로 사용되는 파이썬 라이브러리 중 하나는 Scikit-Learn으로 인기있는 기계 학습 알고리즘의 구현을 제공합니다. Scikit-Learn은 기본 Python 설치의 일부가 아니므로 수동으로 설치해야합니다.
또는 파이썬 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와 같은 클라우드 플랫폼을 사용할 수 있습니다. 모델 배포, 스케일링 및 모니터링을위한 서비스를 제공합니다.