들어가며
머신러닝을 배우면서 흔히 접하게 되는 예제 데이터는 고양이 vs 개, 붓꽃(Iris) 분류와 같은 문제입니다. 이런 데이터는 머신러닝의 기초를 배우는 데 적합하지만, 실무 현장에서 접하게 되는 문제와는 다소 거리가 있습니다.
현업에서는 의료, 사회 서비스, 제조, 품질 관리 등 다양한 분야에서 2진 분류(Binary Classification)가 사용됩니다. 이 글에서는 유방암 진단, 스팸 메일 분류, 그리고 와인 품질 분류라는 세 가지 데이터를 실습에 활용하여, 2진 분류의 실무적 활용 가능성을 탐구하고자 합니다. 또한, 앞으로의 여정에서 배울 모델에 학습시키키고 평가하기위해 데이터를 불러오고 학습 데이터와 평가데이터로 나누는 코드에 대해 다루겠습니다.
이번 ML pipline 시리즈의 학습코드는 아래링크에서 무료로 사용 가능합니다
https://github.com/Elec-Dong/ML-pipline
1. 실습 데이터
1) 유방암 진단 데이터셋
- 데이터 설명:
- Kaggle 링크: Breast Cancer Dataset
- 유방암 종양의 세포 검사를 통해 수집된 다양한 특성(예: 종양 크기, 조직 밀도)을 기반으로, 종양이 양성인지 악성인지 분류하는 데이터셋입니다.
- python에서 아래와 같이 데이터를 load 하여 입력 Feature : X , 출력 label : y 를 선언할 수 있습니다.
#https://www.kaggle.com/datasets/yasserh/breast-cancer-dataset
df = pd.read_csv("breast-cancer.csv")
X=df.iloc[:,2:-1]
y = df.iloc[:,1].replace({'B': '0', 'M': '1'}).astype("int")
- 실무 적용 가능성:
- 의료 분야에서 환자의 진단을 보조하거나, 질병 조기 발견을 지원할 수 있습니다.
- 머신러닝 기반의 진단 보조 도구 개발에 유용합니다.
- 의료 분야에서의 머신러닝 가능성:
머신러닝은 의료 분야에서 환자의 정보를 활용해 다양한 진단과 예측을 수행할 수 있습니다. 이러한 모델은 의료 종사자(의사, 간호사, 방사선사 등)를 100% 대체할 수는 없지만, 그들의 업무 효율을 높이고 실수를 줄이는 의료 어시스턴트로 활용될 수 있습니다. 이를 통해 빠르고 안전한 의료 서비스를 제공하고, 환자의 조기 진료와 생존율 향상에 기여할 수 있습니다.
2) 스팸 메일 분류 데이터셋
- 데이터 설명:
- Kaggle 링크: Spambase Dataset
- 이메일의 텍스트 데이터와 관련된 다양한 정보를 기반으로, 해당 이메일이 스팸인지 아닌지를 분류하는 데이터셋입니다.
- 주요 데이터 특성:
- 단어 빈도: 특정 단어(예: '무료')가 이메일에서 몇 번 등장했는가.
- 특수 문자 사용 여부: 예를 들어, !, $, **@**와 같은 기호가 포함되었는가.
- 이메일 길이: 문자나 단어의 총 길이.
- python에서 아래와 같이 데이터를 load 하여 입력 Feature : X , 출력 label : y 를 선언할 수 있습니다.
#https://www.kaggle.com/datasets/somesh24/spambase
df = pd.read_csv("spambase_csv.csv")
X= df.iloc[:,:-1]
y = df.iloc[:,-1]
- 실무 적용 가능성:
- 스팸 필터링 시스템, 악성 메시지 탐지, 이메일 보안 솔루션 개발 등에 활용됩니다.
- 텍스트 데이터를 활용한 사회적 서비스 구축에 기여할 수 있습니다.
- 사회 서비스 분야에서의 머신러닝 가능성:
머신러닝은 이메일, 메시지, 소셜 미디어 콘텐츠와 같은 텍스트 데이터를 분석하여 스팸 메일 필터링, 악성 메시지 탐지, 부적절 콘텐츠 차단 등 다양한 사회 서비스를 지원합니다. 이를 통해 정보 보안과 사용자 경험을 개선하고, 사회적 신뢰를 높이는 데 기여할 수 있습니다.
3) 와인 품질 분류 데이터셋
- 데이터 설명:
- Kaggle 링크: Wine Quality Dataset
- 이 데이터셋은 와인의 화학적 특성(예: 산도, 당도, pH 등)을 기반으로, 품질이 좋은지 나쁜지를 분류하는 데 사용됩니다.
- 주요 데이터 특성:
- 산도(Acidity): 와인의 신맛과 보존성을 결정.
- 당도(Sugar): 와인의 단맛을 좌우.
- pH: 와인의 산도를 나타내는 수치.
- 알코올(Alcohol): 와인의 알코올 함량.
- Python에서 데이터 준비:
df = pd.read_csv("wine.csv")
X= df.iloc[:,:-1]
y = df.iloc[:,-1].replace({'good': '0', 'bad': '1'}).astype("int")
- 실무 적용 가능성:
- 식음료 제조업에서 와인의 품질 평가 및 관리에 머신러닝을 활용할 수 있습니다.
- 품질 관리 자동화 시스템에 도입되어 생산 효율을 높이고 품질 균일성을 보장할 수 있습니다.
- 식품 품질 관리 분야에서의 머신러닝 가능성:
머신러닝은 식음료 제조업에서 제품의 품질을 평가하고, 생산 과정에서 품질 균일성을 확보하는 데 기여합니다. 이를 통해 소비자 신뢰를 향상시키고, 품질 관리의 비용을 줄이며, 시장 경쟁력을 강화할 수 있습니다. 특히, 와인과 같은 고급 식음료에서는 품질 평가의 일관성이 중요하며, 머신러닝이 이를 보완할 수 있습니다.
2. 실습 데이터의 의미와 목표
머신러닝의 2진 분류는 의료, 사회 서비스, 제조업뿐만 아니라 다양한 도메인에서 활용될 수 있는 강력한 도구입니다. 예를 들어, 다음과 같은 문제들이 모두 2진 분류로 해결 가능합니다:
- 금융: 고객의 대출 상환 가능 여부(상환/미상환).
- 제조: 공장에서 만든 제품(반도체,배터리 등)의 불량품 여부 (정상/불량)
- 환경: 대기질이 허용 기준치를 초과했는지 여부(초과/적정).
- 교육: 학생이 특정 시험에 합격할 가능성(합격/불합격).
- 스포츠: 팀이 경기에서 승리할 가능성(승리/패배).
이렇듯 머신러닝의 2진 분류 모델은 "둘 중 하나를 선택한다"는 문제의 본질에서 출발합니다.
암 진단 여부, 이메일 스팸 여부, 제품 품질 여부처럼 겉보기엔 서로 다른 문제들이지만, 문제의 구조는 동일합니다.
도메인을 넘어 문제 해결에 집중하라
이 동일한 문제 구조는 머신러닝 엔지니어의 강력한 특징을 보여줍니다.
어떤 도메인이든, 2진 분류의 문제 형태와 구조를 이해하고 해결할 수 있다면, 도메인에 상관없이 다양한 문제를 풀 수 있는 역량을 갖추게 됩니다.
- 예를 들어, 의료 데이터에서 환자의 질병 여부를 분류한 경험이 있다면, 비슷한 방식으로 금융 데이터에서 고객의 대출 상환 가능 여부를 예측할 수 있습니다.
- 도메인 지식을 배우는 것이 중요하지만, 더 중요한 것은 "분류" 문제를 해결하는 과정과 기술을 익히는 것입니다.
마무리: 도메인을 넘어선 머신러닝 문제 해결의 핵심
머신러닝 엔지니어에게 필요한 것은 특정 도메인에 국한되지 않는 문제 해결 능력입니다. 이 글에서 살펴본 다양한 도메인의 데이터(의료, 사회 서비스, 제조업 등)는 머신러닝 2진 분류가 얼마나 폭넓게 활용될 수 있는지를 보여줍니다. 하지만 문제의 표면적인 차이에 매몰되지 마세요. 분류 문제의 본질적인 구조와 해결 과정에 집중하는 것이 더욱 중요합니다.
현업 머신러닝 엔지니어로서, 저는 다른 도메인에서 해결했던 머신러닝 문제로부터 새로운 도메인에 영감을 주는 경험을 여러 번 해왔습니다. 예를 들어, 의료 데이터에서의 질병 진단 모델이 금융 분야의 리스크 평가 모델로 이어질 수도 있고, 제조업의 품질 관리 모델이 환경 데이터 분석에 활용될 수도 있습니다.
이렇듯, 머신러닝 엔지니어는 문제를 도메인에 한정하지 않고 바라보는 시각을 통해 창의적이고 혁신적인 결과를 도출할 수 있습니다.
이 블로그 시리즈는 "분류 문제를 어떻게 해결하는가" 더 나아가 "머신러닝 문제를 어떻게 해결할 것인가?"라는 질문에 집중하며, 이를 통해 여러분이 본인의 전문 분야를 넘어 다양한 문제를 풀어나갈 수 있는 역량을 갖추도록 돕고자 합니다. 궁극적으로, 문제의 형태와 구조를 이해하고 이를 해결하는 능력은 어떤 도메인에서도 머신러닝 엔지니어로서의 가능성을 열어줄 것입니다.
다음 글에서는 대표적인 머신러닝 분류 모델과 이를 실무적으로 활용하는 방법을 살펴보겠습니다. 이제 데이터로부터 문제를 해결하는 여정을 함께 시작해 보시죠!
'Background > ML Pipeline' 카테고리의 다른 글
머신러닝의 기초와 분류 문제 해결의 첫걸음 (4) 분류 모델 결과와 앞으로의 방향 (0) | 2024.12.10 |
---|---|
머신러닝의 기초와 분류 문제 해결의 첫걸음 (3) 기초 사용법과 실무적 통찰 (0) | 2024.12.09 |
머신러닝의 기초와 분류 문제 해결의 첫걸음 (1) 머신러닝의 시작: 문제 정의, 학습 방법, 문제 해결의 흐름 (1) | 2024.12.07 |
머신러닝의 기본과 프로젝트 성공의 열쇠 (2) 머신러닝 엔지니어가 꼭 알아야 할 프로젝트의 진짜 모습 (0) | 2024.12.01 |
머신러닝의 기본과 프로젝트 성공의 열쇠 (1) 머신러닝 모델이 데이터를 처리하는 방식 (0) | 2024.11.30 |