시작하시겠습니까? 기계 학습?
완전 초보자를 위한 간단하고 쉬운 튜토리얼을 만들었습니다. 머신 러닝 모델 훈련의 기본 단계를 함께 살펴보겠습니다.
모델을 훈련하는 단계를 하나씩 설명하면서 기계 학습 문제의 아주 기본적인 예도 제시할 것입니다. 따라서 따라하고 싶다면 여기에서 이 샘플 데이터 세트를 다운로드할 수 있습니다. 링크.
이것은 기계 학습을 시작하는 데 도움이 되는 샘플 데이터 세트일 뿐입니다.
연령과 성별이 다른 사람들이 좋아하는 음악을 정의한 18가지 가치관이 있습니다. "나이"와 "성별"의 특성을 사용하여 어떤 장르의 음악이 가장 좋아하는지 추측하려고 합니다.
참고: 이 데이터 세트에서 성별에 1과 0이 여성과 남성으로 할당되었습니다.
그러나 예제를 따르지 않으려는 경우에도 완벽하게 괜찮습니다. 이 모든 단계를 자세히 설명하겠습니다. 자, 뛰어들자!
가장 먼저 알아야 할 사항
모델 훈련 단계로 들어가기 전에 몇 가지 사항을 명확히 합시다. 기계 학습은 인공 지능 데이터에서 학습할 수 있는 알고리즘 개발에 중점을 둔 분야입니다.
이를 위해 기계 학습 모델은 올바른 예측을 수행하는 방법 또는 분류 이전에 알려지지 않은 새로운 데이터에 대해.
그렇다면 이 모델들은 무엇일까요? ㅏ 기계 학습 모델 컴퓨터가 데이터 예측 또는 선택을 생성하는 데 사용하는 레시피와 유사합니다.
레시피와 같은 모델은 일련의 지침을 따라 데이터를 평가하고 데이터에서 발견된 패턴을 기반으로 예측 또는 판단을 생성합니다. 모델이 훈련되는 데이터가 많을수록 예측이 더 정확해집니다.
어떤 종류의 모델을 훈련시킬 수 있습니까?
기본 기계 학습 모델이 무엇인지 살펴보겠습니다.
- 선형 회귀: 하나 이상의 입력 변수에서 연속 대상 변수를 예측하는 모델입니다.
- 신경망: 데이터에서 복잡한 패턴을 감지하는 방법을 학습할 수 있는 연결된 노드의 네트워크입니다.
- 의사 결정 트리: 분기 if-else 문의 체인을 기반으로 구축된 의사 결정 접근 방식입니다.
- 클러스터링: 유사성을 기반으로 비교 가능한 데이터 포인트를 그룹화하는 일련의 모델입니다.
- 로지스틱 회귀: 대상 변수에 두 개의 잠재적 값이 있는 이진 분류 문제에 대한 모델입니다.
- 의사 결정 트리: 분기 if-else 문의 체인을 기반으로 구축된 의사 결정 접근 방식입니다.
- Random Forest: 수많은 결정 트리로 구성된 앙상블 모델. 분류 및 회귀 응용 프로그램에 자주 사용됩니다.
- K-최근접 이웃: 훈련 세트에서 k-최근접 데이터 포인트를 사용하여 대상 변수를 예측하는 모델입니다.
문제와 데이터 세트에 따라 상황에 가장 적합한 기계 학습 모델을 결정합니다. 그러나 이에 대해서는 나중에 다시 설명하겠습니다. 이제 모델 학습을 시작하겠습니다. 나는 당신이 이미 다운로드 바랍니다 데이터 세트 우리의 모범을 따르고 싶다면.
또한, 나는 주피터 수첩 로컬 컴퓨터에 설치하고 기계 학습 프로젝트에 사용합니다.
1: 문제 정의
의 첫 번째 단계 기계 학습 훈련 모델은 해결해야 할 문제를 정의합니다. 여기에는 예측하려는 변수(대상 변수라고 함)와 해당 예측을 생성하는 데 사용할 변수(특성 또는 예측자라고 함)를 선택하는 작업이 수반됩니다.
또한 어떤 종류의 기계 학습 문제를 해결하려고 하는지(분류, 회귀, 클러스터링 등)와 모델을 교육하기 위해 수집하거나 가져와야 하는 데이터 유형을 결정해야 합니다.
사용하는 모델의 종류는 해결하려는 기계 학습 문제의 유형에 따라 결정됩니다. 분류, 회귀 및 클러스터링은 세 가지 주요 범주입니다. 기계 학습 문제. 이메일이 스팸인지 여부와 같은 범주형 변수를 예측하려는 경우 분류를 사용합니다.
집값과 같은 연속 변수를 예측하려면 회귀를 사용합니다. 클러스터링은 공통성을 기반으로 비교 가능한 데이터 항목을 모으는 데 사용됩니다.
우리의 예를 보면; 우리의 과제는 성별과 연령에 따라 선호하는 음악 스타일을 결정하는 것입니다. 이 예에서는 18명의 데이터 세트와 연령, 성별 및 좋아하는 음악 스타일에 대한 정보를 활용합니다.
2. 데이터 준비
문제를 지정한 후에는 모델 학습을 위한 데이터를 준비해야 합니다. 여기에는 데이터 정리 및 처리가 수반됩니다. 그래서 우리는 그것이 기계 학습 알고리즘 사용할 수 있습니다.
여기에는 누락된 값 삭제, 범주형 데이터를 숫자 데이터로 변환, 모든 특성이 동일한 척도에 있도록 데이터 크기 조정 또는 정규화와 같은 활동이 포함될 수 있습니다.
예를 들어 누락된 값을 삭제하는 방법은 다음과 같습니다.
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
작은 참고 사항: 줄 o "import pandas as pd",
우리는 Pandas 라이브러리를 가져오고 "pd"라는 별칭을 지정하여 나중에 코드에서 함수와 개체를 더 쉽게 참조할 수 있도록 합니다.
Pandas는 특히 구조화된 데이터 또는 테이블 형식 데이터로 작업할 때 데이터 조작 및 분석을 위한 잘 알려진 Python용 모듈입니다.
음악 장르를 결정하는 예에서. 먼저 데이터 세트를 가져옵니다. 나는 이름을 music.csv로 지정했지만 원하는 대로 이름을 지정할 수 있습니다.
기계 학습 모델 교육을 위한 데이터를 준비하기 위해 속성(연령 및 성별)과 목표(음악 장르)로 분할했습니다.
추가로 데이터를 80:20 교육 및 테스트 세트로 나누어 모델의 성능을 평가하고 과적합을 방지합니다.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. 기계 학습 모델을 선택합니다.
데이터를 준비한 후에는 작업에 적합한 기계 학습 모델을 선택해야 합니다.
의사 결정 트리, 로지스틱 회귀, 지원 벡터 머신, 신경망 등과 같은 여러 알고리즘 중에서 선택할 수 있습니다. 선택하는 알고리즘은 답변하려는 문제의 종류, 보유하고 있는 데이터 유형 및 성능 요구 사항에 따라 결정됩니다.
우리는 분류 문제(범주형 데이터 예측)로 작업하고 있기 때문에 이 예제에서는 결정 트리 분류기를 사용합니다.
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
다음은 의사결정 트리 분류기의 작동 방식을 시각화한 것입니다.
4. 모델 훈련
허용 가능한 기계 학습 알고리즘을 선택하면 모델 학습을 시작할 수 있습니다. 여기에는 이전에 생성된 데이터를 활용하여 이전에 본 적이 없는 새로운 데이터에 대한 예측을 수행하는 방법에 대해 알고리즘을 교육하는 것이 수반됩니다.
알고리즘은 훈련 데이터의 예측 값과 실제 값 간의 차이를 최소화하기 위해 훈련 중에 내부 매개변수를 수정합니다. 학습에 사용되는 데이터의 양과 알고리즘의 특정 매개변수는 모두 결과 모델의 정확도에 영향을 미칠 수 있습니다.
구체적인 예에서는 방법을 결정했으므로 훈련 데이터로 모델을 훈련할 수 있습니다.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. 모델 평가
모델이 훈련된 후에는 모델이 정확하고 신뢰할 수 있는지 확인하기 위해 새로운 데이터에 대해 평가해야 합니다. 여기에는 교육 중에 사용되지 않은 데이터로 모델을 테스트하고 예상 값을 테스트 데이터의 실제 값과 비교하는 것이 수반됩니다.
이 검토는 과적합 또는 과소적합과 같은 모델 결함을 식별하는 데 도움이 될 수 있으며 필요할 수 있는 미세 조정으로 이어질 수 있습니다.
테스트 데이터를 사용하여 모델의 정확성을 평가합니다.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
현재 정확도 점수는 그리 나쁘지 않습니다. 🙂 정확도 점수를 높이려면 항상 데이터를 더 정리하거나 다른 머신 러닝 모델을 시도하여 어떤 것이 가장 높은 점수를 주는지 확인할 수 있습니다.
6. 모델 미세 조정
모델의 효율성이 충분하지 않은 경우 다양한 알고리즘 매개변수를 변경하거나 완전히 새로운 알고리즘을 실험하여 미세 조정할 수 있습니다.
이 절차에는 대체 학습 속도 실험, 정규화 설정 수정 또는 신경망에서 숨겨진 계층의 수 또는 크기 변경이 포함될 수 있습니다.
7. 모델 사용
모델의 성능에 만족하면 모델을 사용하여 새 데이터에 대한 예측을 생성할 수 있습니다.
여기에는 새로운 데이터를 모델에 공급하고 모델의 학습된 매개변수를 활용하여 해당 데이터에 대한 예측을 생성하거나 모델을 더 광범위한 애플리케이션 또는 시스템에 통합하는 것이 수반될 수 있습니다.
정확도에 만족하면 모델을 사용하여 새 데이터에 대한 예측을 생성할 수 있습니다. 성별과 연령의 다른 값을 시도할 수 있습니다.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
마무리
첫 번째 기계 학습 모델 교육을 마쳤습니다.
도움이 되었기를 바랍니다. 이제 선형 회귀 또는 랜덤 포레스트와 같은 다양한 기계 학습 모델을 사용해 볼 수 있습니다.
에는 많은 데이터 세트와 과제가 있습니다. 카글 기계 학습에 대한 코딩과 이해를 향상시키고 싶다면.
댓글을 남겨주세요.