본문 바로가기
kaggle study

Data Science and MLOps Landscape in Industry

by kangdev 2024. 12. 3.

https://www.kaggle.com/code/eraikako/data-science-and-mlops-landscape-in-industry/notebook#Methodology

1. 대회 설명

 

문제 정의 및 배경: 데이터 과학과 MLOps 분야에서 사용되는 도구, 기술 스택, 작업 환경 등을 탐구하며,
업계에서 어떤 트렌드와 요구사항이 존재하는지를 분석.

 

목적: 산업계에서 데이터 과학 및 MLOps의 발전 방향에 대한 인사이트를 도출.

 

 

2. 성능 평가 방식 이해

 

평가 방식 및 수식:

데이터 트렌드와 관련하여 빈도, 비율, 분포 비교와 같은 통계적 접근이 활용.

분석 결과는 시각화 및 통계적 지표로 검증되며, 각 기술 도구의 사용 빈도와 선호도를 측정하여 트렌드 해석에 중점을 둠.

 

 

3. 데이터 전처리

 

데이터를 탐색하며, 각 기술(프레임워크, 언어, 클라우드 플랫폼 등)의 사용 빈도를 비교.

주로 사용 빈도, 선호도와 같은 구조.

결측 데이터를 처리하여 일관성 있는 분석 결과를 확보.

중복된 데이터 제거, 결측값 처리, 응답 데이터를 통합.

특정 기술이나 도구의 사용 빈도를 기반으로 불필요한 정보를 정제.

 

1) 필요 라이브러리 import

# 관련 라이브러리 import
import pandas as pd
import numpy as np
import json
from collections import Counter

import plotly.graph_objects as go
import plotly.figure_factory as ff
from plotly.subplots import make_subplots
import plotly.express as px
from plotly.offline import init_notebook_mode, iplot
from plotly.colors import n_colors

from IPython.core.display import display, HTML, Javascript
import IPython.display
from IPython.display import display, clear_output

import ipywidgets as widgets
from ipywidgets import interact, interact_manual

import matplotlib as mpl
import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore')

 

2) 데이터 확인

 

input>

df = pd.read_csv('G:\--backup--\Desktop\data\kaggle_survey_2022_responses.csv')
question_title = df[:1]
question_title

 

output>

-> 각 컬럼의 첫번재 row에 질문이 존재

 

input>

df = df[1:]
df

 

output>

-> 첫번째를 제외한 이외의 데이터에 답변이 존재

 

 

4. 분석 방식

 

파이썬(Pandas, Matplotlib, Seaborn) 등의 라이브러리를 사용하여 시각적 인사이트를 도출하는 방식으로 분석.

 

 

분석하고자 하는 타겟을 설정 및 파생 변수 생성

# 학생이 아닌 응답자 필터링 (Q5 질문에 **No**라고 응답한 경우)
# 현재 고용 상태인 응답자 필터링 (Q23 질문에 "Currently not employed"라고 응답하지 않은 경우)
# 현재 고용된 산업 또는 은퇴자의 최근 고용 정보를 제공한 응답자 필터링 (Q24 질문에 응답이 있는 경우)

scope_df = df[
    (df["Q5"] == "No") &  
    (df["Q24"].notnull()) &
    (df["Q23"] != "Currently not employed")
]


scope_df["ML_adoption_class"] = scope_df["Q27"].apply(lambda x: map_ml_adoption[x]) ## 파생 변수1


scope_df["ML_adoption"] = scope_df["Q27"].apply(lambda x: map_ml_usage[x]) ## 파생 변수2


scope_df["Q25"] = scope_df["Q25"].apply(lambda x: map_company_size[x])


scope_df["Cloud_usage"] = scope_df.apply(
    lambda row: usage_of_a_product_or_service("Q31", row, list(scope_df.columns)), axis=1   ## 파생 변수3
)


scope_df["NLP_methods_usage"] = scope_df.apply(
    lambda row: usage_of_a_product_or_service("Q20", row, list(scope_df.columns)), axis=1   ## 파생 변수4
)

scope_df["CV_methods_usage"] = scope_df.apply(
    lambda row: usage_of_a_product_or_service("Q19", row, list(scope_df.columns)), axis=1   ## 파생 변수5
)


scope_df["GPU_usage"] = scope_df.apply(
    lambda row: usage_of_a_product_or_service("Q42", row, list(scope_df.columns)), axis=1   ## 파생 변수6
)


scope_df["Q11"] = scope_df["Q11"].apply(lambda x: map_programming_experience[x])


scope_df["Q16"] = scope_df["Q16"].apply(lambda x: map_ml_experience[x])


scope_df["Q26"] = scope_df["Q26"].apply(lambda x: map_data_team_size[x])

# 산업별 응답자 총합 계산
industry_totals = scope_df["Q24"].value_counts().to_dict()

 

데이터 shape 변화 확인

 

input>

df[1:].columns

 

output>

 

input>

scope_df.columns

 

 

output>

--> 데이터의 shape 변화 :  (23996,296) -> (9094,302)

 

아래 표에서는 응답자가 각 객관식 질문에 대해 선택한 평균 선택 수를 확인할 수 있으며 다음과 같은 결론을 내릴 수 있음.

  • 설문조사에 참여한 전문가들은 평균 2개의 프로그래밍 언어를 정기적으로 사용하고 있으며, 3개의 머신러닝 알고리즘과 2개의 머신러닝 프레임워크를 사용하고 있다.
  • 또한 일반적으로 Word 임베딩/벡터(GLoVe, fastText, word2vec), 인코더-디코더 모델(seq2seq, 바닐라 변환기), 상황화된 임베딩 또는 Transformer 언어 모델과 같은 자연어 처리(NLP) 방법을 사용하지 않는다.

 

다양한 업계의 머신러닝 도입 현황

9000여명 대상으로 했고, 25%는 기술기업, 15%는 학술기업에 나머진 분포되어있다.

 

 

다음 시각화에서는 국가별뿐만 아니라 부문별로 가장 인기 있는 클라우드 컴퓨팅 플랫폼을 확인할 수 있음.

아마존 웹 서비스(AWS)와 구글 클라우드 플랫폼(GCP)이 지배적, 알리바바 클라우드가 아시아에서 꽤 유명함.

 

5. 정리 및 Lesson Learned

 

주요 특징:

데이터 과학 및 MLOps 분야의 산업 트렌드를 분석하며, 도구와 기술의 선호도를 파악.

직무별 선호 기술과 관련 도구를 이해하는 데 유용한 데이터셋 활용.

설문 데이터를 기반으로 응답 데이터를 정제 및 시각화.

 

Lesson Learned:

산업계에서 사용하는 도구와 기술은 빠르게 변화하고 있으며, 특정 도구의 인기는 직무에 따라 다름.

데이터를 정제하고 트렌드를 시각적으로 해석하는 과정은 매우 중요.

EDA와 데이터 시각화는 비정형 데이터 분석에서 강력한 도구.

 

 

자세한 대회 구현 코드는 아래 주소에서 확인 바람.

https://github.com/kanggihoon/kangdev/blob/main/kaggle01.ipynb

 

'kaggle study' 카테고리의 다른 글

Loan Approval Prediction  (2) 2024.12.13
Regression of Used Car Prices  (4) 2024.12.09
Big Data Derby 2022  (3) 2024.12.05