라벨이 대학원생 파이썬인 게시물 표시

[연구 자동화 #33] 엑셀 파일을 넘어 데이터베이스로: 파이썬 SQLite 입문하기

  연구를 진행하다 보면 필연적으로 '파일의 늪'에 빠지는 순간이 옵니다. 처음에는 'data_v1.csv'로 시작했던 파일이 어느덧 'data_final_final_v12.csv'가 되고, 분석해야 할 파일이 수백 개로 늘어나면 특정 조건의 데이터를 찾는 것조차 고역이 됩니다. 저 역시 연구 초기에 수천 개의 엑셀 파일을 일일이 열어보며 수치를 확인하다가, 단 한 번의 오타로 일주일치 분석을 날려버린 아픈 기억이 있습니다. 오늘부터는 이 지긋지긋한 파일 관리에서 벗어나, 파이썬을 활용해 데이터를 체계적으로 관리하는 '연구용 데이터베이스(DB)' 구축법을 다뤄보겠습니다. 코딩이 낯선 연구자들에게 DB라고 하면 거창하게 느껴질 수 있지만, 파이썬에 내장된 SQLite를 이용하면 별도의 프로그램 설치 없이도 엑셀보다 수만 배 강력한 관리 시스템을 만들 수 있습니다. 1. 왜 연구자에게 데이터베이스가 필요한가? 우리가 익숙한 엑셀(Excel)은 데이터를 시각적으로 보고 수정하기에는 최적의 도구입니다. 하지만 데이터의 양이 늘어날수록 치명적인 한계가 드러납니다. 검색 속도: 수천 개의 파일 중에서 특정 조건의 결과만 추출하려면 엑셀로는 모든 파일을 열어야 하지만, DB는 단 한 줄의 명령어로 0.1초 만에 찾아냅니다. 데이터 무결성: 엑셀은 실수로 셀을 지워도 알기 어렵지만, DB는 데이터 형식을 강제하고 중복 입력을 막아 연구의 신뢰도를 높여줍니다. 협업의 용이성: 여러 명의 데이터를 하나의 DB 파일에 모으기만 하면, 누구나 동일한 최신 데이터를 기반으로 분석할 수 있습니다. 2. SQLite: 연구실을 위한 가장 가벼운 도구 데이터베이스라고 하면 거창한 서버 설정을 떠올리지만, 우리에게는 파이썬에 내장된 SQLite 면 충분합니다. 서버 설치가 필요 없고, 하나의 파일(.db) 자체가 데이터베이스 역할을 하므로 USB에 담아 옮기거나 이메일로 보내기도 ...

[연구 자동화 #31] 논문에 바로 쓰는 시각화의 정석: 출판용 고해상도 이미지 만들기

  연구의 정점은 결국 '논문'이라는 결과물로 나타납니다. 하지만 아무리 데이터 분석이 훌륭해도, 그래프의 가독성이 떨어지거나 해상도가 낮아 글자가 깨져 보인다면 리뷰어에게 좋은 인상을 주기 어렵습니다. 특히 엑셀의 기본 그래프 스타일을 그대로 사용하면 "초보 연구자"라는 인상을 지우기 힘들죠. 오늘은 파이썬의 대표적인 시각화 라이브러리인 Matplotlib 을 활용해, 클릭 몇 번으로 해외 저명 학술지(Nature, Science 등) 수준의 깔끔하고 전문적인 그래프를 생성하는 실전 팁을 정리해 보겠습니다. 1. 엑셀 느낌을 지우는 첫 번째 단계: 폰트와 사이즈의 통일 대부분의 학술지는 본문 폰트와 그래프 내 폰트의 일관성을 요구합니다. 보통 'Arial'이나 'Times New Roman'을 많이 사용하죠. 파이썬에서는 코드 한 줄로 프로그램 전체의 폰트 설정을 고정할 수 있습니다. 또한, 논문의 1단(Single column)이나 2단(Double column) 너비에 맞춰 인치(inch) 단위로 크기를 지정하면, 나중에 이미지를 억지로 늘리거나 줄일 필요가 없어 글자가 뭉개지지 않습니다. 2. 가독성을 결정짓는 'DPI'와 '포맷'의 비밀 이미지를 저장할 때 가장 많이 하는 실수는 단순한 '캡처'나 낮은 해상도의 JPG 저장입니다. 학술지 출판을 위해서는 최소 300~600 DPI 이상의 고해상도가 필수입니다. 더 좋은 방법은 '벡터(Vector)' 형식을 사용하는 것입니다. .pdf 나 .eps 형식으로 저장하면 이미지를 아무리 확대해도 선과 글자가 절대 깨지지 않습니다. 3. 실전 코드: 출판용 그래프 기본 세팅 import matplotlib.pyplot as plt # 1. 학술지용 기본 스타일 설정 (rcParams) plt.rcParams.update({ 'font.family...

[연구 자동화 #29] 경로 복사는 이제 그만: Tkinter 파일 탐색기로 스마트한 GUI 만들기

  연구용 프로그램을 개발하면서 제가 가장 많이 겪었던 시행착오는 의외로 분석 알고리즘이 아닌 '파일 경로'에서 발생했습니다. 윈도우 탐색기에서 경로를 복사해 프로그램 입력창에 붙여넣을 때, 보이지 않는 공백이 섞이거나 슬래시(/)와 백슬래시(\) 방향이 꼬여 프로그램이 멈춰버리는 일이 허다했죠. 이런 문제를 근본적으로 해결하는 방법은 단 하나입니다. 사용자가 경로를 직접 '타이핑'하게 두지 않는 것입니다. 대신 우리가 매일 사용하는 윈도우 탐색기 창을 띄워 마우스 클릭으로 파일을 선택하게 만드는 것이죠. 오늘은 Tkinter 의 핵심 모듈인 filedialog 를 활용해 이 기능을 구현해 보겠습니다. 1. 왜 파일 탐색기(File Dialog)가 필수인가? 단순히 '멋있어 보여서'가 아닙니다. 파일 탐색기 기능을 넣는 순간 프로그램의 안정성(Robustness) 이 비약적으로 향상됩니다. 오타 방지: 파일명이나 폴더 경로를 틀릴 확률이 0%가 됩니다. 확장자 제한: 엑셀 분석 프로그램인데 메모장(.txt) 파일을 불러와서 에러가 나는 상황을 필터 기능을 통해 막을 수 있습니다. 사용자 경험(UX): 개발자가 아닌 동료들도 "아, 그냥 파일 고르면 되는구나"라고 직관적으로 이해하게 됩니다. 2. 실전 코드: 버튼 하나로 파일 선택창 띄우기 가장 먼저 해야 할 일은 tkinter.filedialog 를 불러오는 것입니다. 다음은 버튼을 누르면 파일 탐색기가 열리고, 선택한 파일 경로를 화면에 출력해 주는 핵심 코드입니다. import tkinter as tk from tkinter import filedialog, messagebox def browse_file(): # 파일 탐색기 창 열기 file_path = filedialog.askopenfilename( title="분석할 실험 데이터를 선택하세요...

[연구 자동화 #28] 코딩 몰라도 쓰는 '진짜 프로그램': Tkinter로 연구용 GUI 구축하기

  지금까지 우리는 파이썬으로 데이터를 분석하고, 텔레그램으로 알림을 보내는 등 수많은 '기능'들을 만들었습니다. 하지만 이 모든 것의 치명적인 단점이 하나 있었습니다. 바로 검은색 터미널 창(CMD)에 직접 명령어를 입력하거나, 개발 환경을 켜서 'Run' 버튼을 눌러야 한다는 점입니다. 연구실 동료나 교수님께 내가 만든 도구를 전달했을 때, "이거 어떻게 실행해?"라는 질문을 받으면 참 난감해집니다. 이때 필요한 것이 바로 GUI(Graphical User Interface) 입니다. 마우스로 버튼을 누르고, 입력창에 수치를 적어 넣는 '진짜 프로그램'의 형태를 갖추는 것이죠. 오늘은 파이썬에 기본으로 내장되어 별도의 설치도 필요 없는 Tkinter 라이브러리를 활용해 연구용 프로그램의 외형을 만들어 보겠습니다. 1. 왜 연구자에게 GUI가 필요한가? 단순히 "보기 좋아서"가 아닙니다. GUI는 연구 데이터의 '입력 실수'를 원천 차단 하는 데 목적이 있습니다. 터미널 기반 프로그램은 인자(Argument) 하나만 잘못 적어도 에러가 나지만, GUI는 드롭다운 메뉴나 체크박스를 통해 정해진 값만 입력받게 강제할 수 있습니다. 또한, 복잡한 파이썬 환경 설정을 모르는 동료도 내가 만든 프로그램을 더블 클릭 한 번으로 실행할 수 있게 되므로, 연구실 내의 업무 표준화가 훨씬 쉬워집니다. 2. Tkinter: 가볍고 강력한 표준 도구 파이썬에는 PyQt, PySide 등 화려한 GUI 라이브러리가 많습니다. 하지만 연구용 도구라면 저는 단연 Tkinter 를 추천합니다. 내장 라이브러리: 파이썬만 깔려 있으면 어디서든 돌아갑니다. 학습 곡선: 구조가 단순해서 반나절이면 기본 화면을 구성할 수 있습니다. 가벼움: 복잡한 의존성 문제가 없어 .exe 실행 파일 제작 시 용량이 매우 작습니다. 3. 연구용 GUI의 ...

[연구 자동화 #27] 실시간 감시자: 파이썬으로 만드는 실험 모니터링 텔레그램 알림 봇

  연구원에게 시간은 가장 소중한 자산입니다. 하지만 긴 실험이나 데이터 크롤링을 걸어두면, 혹시 에러가 나지는 않았는지 확인하느라 다른 업무에 집중하기 어렵습니다. 이때 우리를 대신해 24시간 모니터를 지켜보고, 특이사항이 발생했을 때만 스마트폰으로 메시지를 보내주는 비서가 있다면 어떨까요? 가장 구축하기 쉽고 강력한 텔레그램(Telegram) API 를 활용한 알림 시스템을 소개합니다. 1. 왜 하필 텔레그램인가? 알림 서비스에는 여러 선택지가 있지만 연구 자동화에서 텔레그램이 독보적인 선택을 받는 이유가 있습니다. API의 단순함: 복잡한 인증 절차 없이 '봇 토큰' 하나만으로 메시지를 보낼 수 있습니다. 무료 및 무제한: 메시지 전송 횟수에 따른 비용 부담이 사실상 없습니다. 멀티 플랫폼: PC, 모바일 어디서든 실시간 알림을 받을 수 있어 연구실 밖에서도 안심할 수 있습니다. 2. 단계별 구축 가이드 1단계: 봇 생성 및 토큰 발급 텔레그램에서 BotFather 를 검색해 대화를 시작하세요. /newbot 명령어를 입력하고 이름과 아이디를 정하면 고유한 HTTP API Token 을 발급해 줍니다. 2단계: 내 채팅방 ID 확인 봇에게 먼저 대화를 건 뒤, API 주소를 통해 내 계정의 숫자 ID를 확인합니다. 이 ID는 봇이 메시지를 보낼 주소가 됩니다. 3. 실전 코드: 이상 수치 감지 시 즉시 알림 import telegram import asyncio # 봇 정보 설정 TOKEN = '나의_봇_토큰' CHAT_ID = '나의_채팅_아이디' async def send_alert(message): bot = telegram.Bot(token=TOKEN) await bot.send_message(chat_id=CHAT_ID, text=message) # 이상 수치 감시 로직 def monitor_experiment(current...

[연구 자동화 #26] 실전 프로젝트: 수천 건의 실험 데이터를 한눈에, '연구 데이터 아카이브' 웹 앱 제작

  연구실 생활을 하다 보면 가장 많이 듣는 질문 중 하나가 "지난달 온도를 80도로 설정했던 실험 데이터 어디 있지?"입니다. 폴더를 뒤지고 엑셀을 하나하나 열어보는 수고는 이제 그만두셔도 됩니다. 16편에서 맛보았던 Streamlit 을 활용해, 25편에서 정제한 마스터 데이터를 브라우저에서 검색하고 시각화하는 완성형 아카이브 앱을 만들어보겠습니다. 1. 왜 대시보드 형태의 아카이브가 필요한가? 단순히 엑셀 파일 하나에 몰아넣는 것으로는 부족합니다. 데이터가 수천 행을 넘어가면 엑셀 자체가 무거워질뿐더러, 특정 조건만 필터링해서 그래프를 그리는 작업이 갈수록 번거로워지기 때문입니다. 웹 앱 형태의 아카이브는 파이썬을 몰라도 누구나 데이터를 조회할 수 있는 접근성 과 클릭 몇 번으로 결과를 브리핑할 수 있는 실시간 공유성 을 제공합니다. 2. 프로젝트 핵심 기능 설계 우리가 구축할 아카이브 앱의 필수 기능 3가지는 다음과 같습니다. 사이드바 필터: 날짜, 실험 조건, 샘플 이름별로 데이터를 필터링하는 기능 인터랙티브 테이블: 필터링된 결과만 보여주고, 필요시 엑셀로 내려받는 기능 통계 차트: 선택한 그룹 간의 평균차이나 경향성을 그래프로 즉시 출력하는 기능 3. 실전 구현 코드: 아카이브 앱의 뼈대 import streamlit as st import pandas as pd import plotly.express as px # 데이터 불러오기 @st.cache_data # 데이터를 메모리에 올려 속도를 높임 def load_data(): return pd.read_csv('master_experiment_data.csv') df = load_data() st.title("🔬 Research Data Archive v1.0") # 사이드바: 필터 설정 st.sidebar.header("Filter Options") sel...

[연구 자동화 #24] 실전 프로젝트: 공공 데이터 API로 연구 트렌드 리포트 자동 생성하기

 연구자에게 '최신 트렌드 파악'은 숙명과도 같습니다. 하지만 매번 관련 포털에 접속해 키워드를 검색하고, 결과를 엑셀로 내려받아 정리하는 과정은 꽤 번거롭습니다. 파이썬의 API(Application Programming Interface) 활용 기술을 이용하면, 이 지루한 과정을 자동화된 파이프라인으로 바꿀 수 있습니다. 1. API란 무엇인가? 연구원의 '데이터 주문서' API를 어렵게 생각할 필요 없습니다. 식당에서 메뉴판을 보고 주문을 하면 주방에서 음식이 나오는 것과 같습니다. 우리가 특정 규칙(URL)에 맞춰 데이터(주문)를 요청하면, 공공 데이터 서버(주방)에서 우리가 원하는 최신 데이터를 보내주는 방식입니다. 웹 크롤링(9~10편)이 웹페이지를 '긁어오는' 방식이라면, API는 서버에서 '정식으로 제공하는 데이터'를 받는 방식입니다. 따라서 훨씬 안정적이고 법적으로도 안전합니다. 2. 준비 단계: 데이터의 문을 여는 'API 키' 발급받기 가장 대표적인 소스는 공공데이터포털(data.go.kr)이나 ScienceON(scienceon.kisti.re.kr)입니다. 해당 사이트에 회원가입 후 원하는 데이터(예: 국가연구개발과제 정보, 특허 정보 등)를 검색합니다. '활용 신청'을 하면 나만의 고유한 인증키(Service Key)가 발급됩니다. 이 키는 일종의 출입증이므로 타인에게 노출되지 않도록 주의해야 합니다. 3. 실전: 데이터 호출부터 시각화까지 API로 가져온 데이터는 보통 JSON 이나 XML 형식을 띱니다. 파이썬은 이 복잡한 형식을 순식간에 Pandas 데이터프레임으로 변환해 줍니다. Python import requests import pandas as pd # 1. 요청 주소 및 인증키 설정 url = '공공데이터_제공_URL' params = { 'serviceKey' : '나의_인증키...

[연구 자동화 #22] 나만의 연구 도구 배포하기: 파이썬 코드를 클릭 한 번으로 실행되는 .exe 파일로 만들기

  여러분이 만든 자동화 도구가 연구실의 '공식 도구'가 되기 위해서는 접근성이 좋아야 합니다. 검은색 터미널 창을 열고 명령어를 입력하는 대신, 바탕화면에 있는 아이콘을 더블클릭해서 실행하는 것이 훨씬 직관적이죠. 파이썬의 PyInstaller 라이브러리를 사용하면 코드와 필요한 환경을 하나의 파일로 꽁꽁 싸맬 수 있습니다. 1. 배포의 마법사: PyInstaller PyInstaller 는 파이썬 코드뿐만 아니라 그 코드가 돌아가는 데 필요한 인터프리터, 라이브러리들을 통째로 묶어서 하나의 실행 파일로 만들어주는 도구입니다. 설치: 터미널에서 pip install pyinstaller 를 입력하세요. 특징: 상대방의 컴퓨터에 파이썬이 설치되어 있지 않아도 프로그램이 작동합니다. 2. 실전: 실행 파일 만들기 만드는 법은 의외로 간단합니다. 터미널에서 해당 파일이 있는 폴더로 이동한 뒤 아래 명령어를 입력하기만 하면 됩니다. Bash pyinstaller --onefile --noconsole my_research_tool.py --onefile: 여러 개의 파일을 생성하지 않고, 깔끔하게 딱 하나의 .exe 파일만 만듭니다. (가장 추천하는 방식입니다.) --noconsole: 실행할 때 검은색 콘솔 창이 뜨지 않게 합니다. 만약 16편에서 배운 Streamlit이 아닌, 일반적인 배경 작업이나 GUI 프로그램이라면 이 옵션이 유용합니다. 결과 확인: 명령어가 끝나면 dist 라는 폴더가 생기고, 그 안에 여러분의 이름이 담긴 실행 파일이 들어있습니다. 3. [주의] 외부 파일(데이터, 이미지) 경로 문제 해결 자동화 프로그램이 외부 엑셀 파일이나 20편에서 다룬 이미지 등을 불러온다면, 실행 파일로 만들었을 때 "파일을 찾을 수 없다"는 에러가 자주 발생합니다. 실행 파일 내부의 임시 경로와 실제 작업 경로가 다르기 때문인데, 이를 방지하려면 코드 상단에 경로를 동적으로 인식하는 로직을 추가해야 합니다. Pyt...

[연구 자동화 #21] 읽지 말고 시키세요: NLP와 LLM으로 수천 편의 논문 요약 및 분류하기

  연구자에게 가장 고통스러운 시간 중 하나는 관련 문헌 조사(Literature Review)일 것입니다. 키워드 검색으로 나온 수천 개의 검색 결과 중 내 연구와 진짜 밀접한 논문이 무엇인지 찾아내는 과정은 그 자체로 거대한 노동입니다. 파이썬의 NLP 라이브러리와 최신 AI 모델은 이 과정을 획기적으로 단축해 줍니다. 1. 텍스트 분석의 핵심 도구들 파이썬 생태계에는 텍스트를 요리하기 위한 강력한 도구들이 준비되어 있습니다. Hugging Face Transformers: 전 세계의 최신 AI 모델(BERT, GPT, T5 등)을 누구나 쉽게 가져다 쓸 수 있게 해주는 라이브러리입니다. LangChain: 언어 모델을 외부 데이터(나의 PDF 논문 등)와 연결하여 복잡한 작업을 수행하게 돕는 프레임워크입니다. API (OpenAI/Gemini): 고성능 모델을 직접 구축하지 않고도 클라우드를 통해 강력한 언어 이해 능력을 빌려 쓸 수 있습니다. 2. 수천 편의 초록(Abstract) 자동 분류하기 9편과 10편에서 배운 크롤링으로 수집한 논문 초록들이 있다고 가정해 봅시다. 이들을 주제별로 분류하거나, 내 연구와의 관련성 점수를 매기는 것은 이제 코드 몇 줄로 가능합니다. 주제 모델링(Topic Modeling): 논문들에 자주 등장하는 단어 뭉치를 분석해 '이 논문 그룹은 A 주제에 관한 것이구나'라고 기계가 스스로 분류합니다. 제로샷 분류(Zero-shot Classification): 모델에게 별도의 학습을 시키지 않고도 "이 초록이 '나노 기술'에 가까운지 '에너지 저장'에 가까운지 알려줘"라고 요청하면 즉시 답을 얻을 수 있습니다. 3. 논문 요약 및 핵심 정보 추출 (Information Extraction) 단순 요약을 넘어, 논문 본문에서 특정 정보(사용된 시약, 실험 온도, 결과 수치 등)만 쏙쏙 뽑아내어 엑셀로 정리할 수 있습니다. Python # LLM을 활용한 논문...

[연구 자동화 #20] 이미지도 데이터다: OpenCV와 딥러닝으로 실험 사진 분석 자동화하기

  연구 분야를 막론하고 이미지는 매우 중요한 데이터 소스입니다. 생물학의 세포 이미지, 재료공학의 SEM 사진, 토목공학의 구조물 균열 사진 등 연구자의 하드드라이브에는 분석을 기다리는 사진들이 쌓여있죠. 파이썬을 이용하면 사람이 며칠 걸릴 분석을 단 몇 분 만에, 그것도 훨씬 객관적인 기준으로 끝낼 수 있습니다. 1. 이미지 처리의 기초: OpenCV (Open Computer Vision) 이미지 분석의 첫 단계는 컴퓨터가 사진을 잘 이해할 수 있도록 다듬는 것입니다. OpenCV는 전 세계에서 가장 널리 쓰이는 컴퓨터 비전 라이브러리입니다. 전처리: 사진의 노이즈를 제거하고, 흑백(Grayscale)으로 변환하거나, 특정 밝기 이상의 부분만 남기는 이진화(Thresholding) 작업을 수행합니다. 윤곽선 검출 (Contour Detection): 배경과 대상을 분리하여 물체의 크기, 면적, 둘레 등을 계산합니다. 예를 들어, 샬레 위의 박테리아 군락(Colony) 개수를 세는 작업은 OpenCV의 findContours 함수 하나로 자동화할 수 있습니다. 2. 딥러닝 기반 객체 탐지 (Object Detection) 단순한 형태 분석을 넘어, "이것이 무엇인지" 판단해야 할 때는 딥러닝이 필요합니다. 특히 YOLO(You Only Look Once)나 PyTorch 기반의 모델들은 복잡한 배경 속에서도 연구자가 원하는 대상을 정확히 찾아냅니다. 세포 계수: 수천 개의 세포가 겹쳐 있는 이미지에서 각각의 위치를 파악하고 개수를 셉니다. 결함 탐지: 금속 표면의 미세한 스크래치나 균열을 학습된 모델이 자동으로 마킹합니다. 장점: 조명 조건이 바뀌거나 대상의 모양이 조금씩 달라도 학습된 데이터를 바탕으로 유연하게 대처합니다. 3. 실전: 수천 장의 사진을 1초 만에 일괄 처리하기 파이썬 이미지 자동화의 진가는 '일괄 처리(Batch Processing)'에 있습니다. 한 장의 사진을 분석하는 코드를 짰다면, 이를...

[연구 자동화 #19] 블랙박스 속을 들여다보다: 설명 가능한 AI(XAI)로 모델의 판단 근거 분석하기

  연구 데이터에 머신러닝을 도입할 때 가장 큰 장벽은 '해석 가능성'입니다. 예를 들어, 특정 화합물의 독성을 99% 확률로 맞추는 모델을 만들었더라도, 어떤 화학적 구조 때문에 독성이 있다고 판단했는지 설명하지 못하면 과학적 가치는 반감됩니다. XAI는 복잡한 인공지능 모델이 내린 결론을 인간이 이해할 수 있는 언어와 그래프로 변환해주는 기술입니다. 1. 연구자에게 XAI가 꼭 필요한 이유 단순히 정확도가 높은 모델을 만드는 단계를 넘어, XAI는 연구의 질을 한 차원 높여줍니다. 가설 검증: 모델이 중요하게 생각하는 변수가 연구자의 기존 가설과 일치하는지 확인합니다. 새로운 변수 발견: 연구자가 미처 생각하지 못한 변수가 결과에 큰 영향을 미치고 있음을 발견하여 새로운 연구 주제를 도출할 수 있습니다. 신뢰도 확보: 모델이 엉뚱한 데이터를 근거로 예측하고 있지는 않은지(예: 실험실의 습도나 날짜 등 본질적이지 않은 변수)를 걸러낼 수 있습니다. 2. 대표적인 도구: SHAP (SHapley Additive exPlanations) 현재 연구 분야에서 가장 널리 쓰이는 XAI 라이브러리는 SHAP 입니다. 게임 이론의 '샤플리 값'을 이용해 각 변수가 최종 예측값에 기여한 정도를 수치화합니다. 설치: pip install shap 3. 실전: 내 모델이 어떤 변수를 중요하게 생각할까? 18편에서 만든 모델을 바탕으로, SHAP을 사용해 각 실험 조건이 결과에 미친 영향을 시각화하는 과정은 매우 간단합니다. Python import shap # 1. 학습된 모델과 데이터 준비 (RandomForest 등) explainer = shap.TreeExplainer(model) shap_values = explainer.shap_values(X_test) # 2. 전체적인 변수 중요도 요약 그래프 그리기 shap.summary_plot(shap_values, X_test) 이 그래프 하나로 "온도는 결과값에 양...

[연구 자동화 #18] 연구용 머신러닝 기초: Scikit-learn으로 실험 데이터 예측 모델 만들기

  우리는 지금까지 "이미 발생한 데이터"를 분석하는 데 집중해 왔습니다. 통계 분석이 "이 약물이 효과가 있는가?"라는 질문에 답한다면, 머신러닝은 "환자의 특정 수치를 입력했을 때 약물의 효과가 얼마나 나타날 것인가?"라는 예측적인 질문에 답을 줍니다. 연구 과정에서 머신러닝을 도입하면 수많은 시행착오를 줄일 수 있습니다. 직접 실험을 해보기 전에 기존 데이터를 바탕으로 최적의 실험 조건을 예측해 볼 수 있기 때문입니다. 오늘은 파이썬 머신러닝의 표준 라이브러리인 Scikit-learn 을 활용한 분석 흐름을 살펴보겠습니다. 1. 머신러닝의 표준 도구: Scikit-learn Scikit-learn 은 전 세계 데이터 과학자들이 가장 신뢰하는 머신러닝 라이브러리입니다. 회귀(Regression), 분류(Classification), 클러스터링(Clustering) 등 연구에 필요한 거의 모든 알고리즘을 일관된 방식으로 제공합니다. 설치: pip install scikit-learn 2. 예측의 두 갈래: 회귀와 분류 내 연구 데이터로 무엇을 하고 싶은지에 따라 알고리즘의 선택이 달라집니다. 회귀(Regression): 연속적인 수치를 예측할 때 사용합니다. (예: 온도와 압력에 따른 화학 반응 수율 예측) 분류(Classification): 데이터가 어느 그룹에 속하는지 예측할 때 사용합니다. (예: 세포의 이미지를 보고 암세포인지 정상세포인지 판별) 3. 머신러닝 분석의 5단계 프로세스 모든 머신러닝 코드는 분야를 막론하고 다음의 5단계를 따릅니다. 이 흐름만 이해하면 어떤 모델이든 다룰 수 있습니다. 1) 데이터 준비 및 전처리 Pandas를 이용해 데이터를 불러오고, 문자로 된 데이터를 숫자로 바꾸거나 수치들의 범위를 맞추는 작업(스케일링)을 수행합니다. 2) 데이터 세트 분리 (Train / Test Split) 가장 중요한 단계입니다. 전체 데이터를 '학습용'과 '검증...

[연구 자동화 #16] 보고서를 넘어 '대시보드'로: Streamlit으로 실시간 데이터 웹 앱 만들기

  연구 데이터 분석의 최종 단계는 대개 그래프를 논문에 삽입하거나 보고서에 붙여넣는 것으로 끝납니다. 하지만 이런 방식은 '정적'입니다. 누군가 "온도 조건을 80도가 아니라 100도로 설정했을 때의 그래프도 보고 싶어"라고 요청하면, 우리는 다시 코드를 돌리고 그래프를 저장해서 보내주어야 하죠. 만약 웹사이트처럼 버튼을 누르고 슬라이더를 조절할 때마다 그래프가 실시간으로 변하는 인터랙티브 대시보드 가 있다면 어떨까요? 웹 개발 지식이 전혀 없어도 파이썬만으로 이 모든 것을 가능하게 해주는 도구가 바로 Streamlit 입니다. 1. Streamlit: 웹 개발을 모르는 연구원을 위한 선물 보통 웹사이트를 만들려면 HTML, CSS, JavaScript 같은 복잡한 언어를 배워야 합니다. 하지만 Streamlit은 오직 파이썬 코드 만으로 웹 앱을 만들어줍니다. 장점: 데이터프레임을 웹에 바로 띄울 수 있고, 클릭 한 번으로 차트를 확대하거나 데이터를 필터링할 수 있습니다. 설치: pip install streamlit 하나면 준비 끝입니다. 2. 5분 만에 만드는 연구용 대시보드 맛보기 주피터 노트북이 아닌 메모장이나 VS Code에서 .py 파일을 하나 만들어 아래 코드를 복사해 보세요. Python import streamlit as st import pandas as pd import matplotlib.pyplot as plt # 1. 앱 제목 설정 st.title( '🌡️ 실시간 실험 데이터 모니터링' ) # 2. 사이드바에서 파일 업로드 받기 uploaded_file = st.sidebar.file_drop( '실험 데이터(CSV)를 업로드하세요' , type = 'csv' ) if uploaded_file: df = pd.read_csv(uploaded_file) # 3. 데이터 필터링 슬라이더 추가 min_...