본문 바로가기

분류 전체보기62

Pandas DataFrame에서 0과 빈 값(Empty) 구분하기: 데이터 전처리의 숨은 함정 일반적인 빈 칸 전처리Dataframe 중 한 Column 에 아무것도 없는 빈 칸과 숫자가 섞여있는 경우, 데이터 처리 방식이 조금 복잡해진다. Pandas 는 빈 칸을 default 로 NaN 으로 처리하는데 이걸 정말로 NaN 도 아닌 빈 값으로 두고 싶다면 fillna(’’) 이런 식으로 하면 된다. 0과 빈 칸을 구분하지 못하는 잘못된 전처리를 조심하자문제는 그 컬럼에 0 과 빈 칸이 섞여 있을 때 df_row[col_name] == 0 인 경우를 조심해야 한다는 것이다.특정 column 이 numeric 이라고 판단되면 그 column 안에서의 값이 아예 없더라도 그건 자동으로 0 으로 된다. 따라서 사용자가 육안으로 보기에 분명히 cell 안에 0이라는 integer 가 들어있고 빈 칸이 섞.. 2024. 12. 3.
에고에 사로잡히지 않고 마인드풀하게 살아가기 들어가며에고는 생존에 있어 꼭 필요한 존재이지만 항상 과도하게 작용하는 것이 문제가 되곤 한다. 마인드풀 유튜브를 운영하는 정민님의 “불행의 주범, 에고에 휘둘리지 않는 법” 영상을 보면서 나의 경우에는 어떻게 적용할 수 있을지에 대해 생각해봤다. 내 존재가치와 내 업적과의 동일시에서 벗어나기나의 업적이 내 가치라고 생각해선 안된다. 직장에서 내가 업무적인 업적을 새우면 자존감이 높아진다고 착각했었다. 내가 어떤 프로젝트의 PM 을 맡고 타부서와 협업하여 일을 진행 시키고 팀원들에게 업무를 분배하는것들에서 내가 이렇게 잘난사람이야 하는 잘못된 동일시가 있었던것 같다. 그래서 이럴 때는 마치 내 존재가치가 다른사람의 존재가치보다 높게 느껴지곤 했었다. 그러다가 프로젝트가 끝나고 다른 프로젝트를 새로 맡기 .. 2024. 12. 1.
생성형AI 로 hyperparameter optimization code 만들어 공부하기 생성형AI로 hyperparameter optimization code 를 만들게 된 배경오픈소스에서 신약개발 관련된 데이터로 pIC50 을 예측하는 딥러닝 모델을 만들어보려고 하고 있었다. 나에게는 이미 기존에 신약개발 부트캠프 강의에서 배웠던 코드를 보며 참고삼아 도전해볼 수 있었지만 기존 코드에는 뛰어넘을 수 없는 단점이 있었다. hyperparameter tuning 이 자동으로 안돼서 사람이 일일이 model architecture 를 손으로 manual 하게 바꿔야 한다는거였다. 그래서 기존에 내가 머신러닝에는 적용했던 optuna 를 pytorch 딥러닝 코드에도 적용해보려 했으나 class 구조가 등장하다보니 쉽지 않아 생성형AI 에 다음과 같은 작업을 했다.baseline code 를 첨.. 2024. 10. 13.
Claude 를 참고하여 나만의 custom dataset 만들기 Custom dataset 을 정의 하는 이유Pytorch 로 deep learning 을 실시할 때 일반적으로 데이터를 그냥 하나를 한번에 가져오는게 아니라 Custom dataset class를 통해 가져온다. 여기서 Custom data class를 사용하는 이유는 다음과 같다.1)    Data 를 한 번에 load 하는 것이 컴퓨터 메모리에 부담이 되기 때문이다. 따라서 큰 Data 를 한번에 다 메모리에 올리는 것이 아니라 이를 ‘mini batch’라는 형태로 토막을 낸다. 그 한 토막을 ‘mini batch’라고 한다. 이 작업을 할 때 분석가가 전체 Data 큰 덩어리 1개를 받아와서 전체 Data size (data 를 구성하는 sample 의 수) 는 얼마인지 파악하고, Mini ba.. 2024. 9. 18.
Claude 를 참고하여 신약개발경진대회 Baseline code 분석하기 Baseline code 를 봐도 코드 뜻을 모르는 경우 데이콘에서 기본적으로 모든 신약개발경진대회 참가자들에게 Baseline code 를 준다. 하지만 이는 도메인 지식이 없는 사람이 봤을 때에는 이게 대체 무슨 코드인지 모를 수 있는 부분이 있다. 나 역시 해당 도메인에 종사하지는 않고 단지 학부때 전공이 관련이 있고 며칠 전 LAIDD 에서 진행 하는 신약개발 부트캠프 3일간 풀데이로 참여했을 뿐이다. (참고로 다녀오고 나서 몸살 걸렸다..) 그나마 그 부트캠프를 통해 도메인 지식을 알게 되었고 어떤 코드가 어떤 도메인 지식에 해당하는지에 대해 알게 되었는데 다른 참가자들은 충분히 모를 수 있다. 따라서 그분들 입장이라면 어떻게 했을까 궁금해서 혹시 Claude 로 경진대회에 대해 설명하고 Bas.. 2024. 9. 17.
AI를 이용한 신약개발 경진대회: IRAK4 IC50 활성값을 예측 About 신약개발 경진대회 한국제약바이오협회에서 주최하는 신약개발 경진대회가 있다. 주제는 IRAK4 IC50 활성값을 예측하는 모델 개발하는 것으로, 자가면역질환을 해결하기 위한 약물을 개발하는 것이 목적인듯 하다. 학습용 데이터 size 는 1952이며 놀랍게도 Kaggle 과는 달리 feature 에 대한 설명이 아예 안나와있다. 그냥 알아서 다들 도메인지식으로 변수명만 보고 유추 하는건가 싶다. ‘IRAK4 IC50 활성값’ 에 대한 도메인 지식 (NCBI 자료 참고)IRAK4 의 의미IRAK4의 full name 은 interleukin 1 receptor associated kinase 4 로, 면역반응에 있어 중요한 역할을 수행한다. 이 gene 에 mutation이 발생하면 Recurre.. 2024. 9. 16.
딥러닝으로 하는 신약개발 딥러닝으로 신약개발을 하기 시작하게 된 계기제약회사의 Job description 을 보다보면 자주 '신약개발' 이라는 키워드가 눈에 들어온다. 신약개발에 딥러닝이 사용되기 시작된 계기가 있는데 딥러닝을 사용했을 때 예측 정확도가 월등히 좋아진 사건 이후로 신약개발에서 잘 사용이 된다고 한다. Drug-likeness란 무엇인가: 삐빅, 약물다운 후보 화합물입니다.신약 개발을 위해서는 신약 후보물질 부터 찾아야 하고 그 후보물질이 얼마나 Drug 로서의 성질을 가지고 있는지, 그리고 그렇다 하더라도 실제로 합성하기는 현실적으로 쉬운지 등을 알아보는 절차를 가진다. Drug 로서의 성질을 'Drug-likeness (우리말로는 '약물다움')' 라고 부르는데 이는 다음과 같은 조건을 충족 시킬 수록 Drug.. 2024. 9. 14.
LAIDD 인공지능 & 파이썬 프로그래밍 역량강화 교육과정과 함께하는 신약개발 최근LAIDD 사이트에서 신약개발 관련 강의를 들으면서 알게 된 내용을 아래와 같이 정리해봄. 출처:LAIDD 인공지능 & 파이썬 프로그래밍 역량강화 교육과정  https://colab.research.google.com/github/StillWork/AIDD-LAIDD/blob/main/z4_DeepLearning.ipynb#scrollTo=-AQRftuEqGqx z4_DeepLearning.ipynbRun, share, and edit Python notebookscolab.research.google.com https://deepchem.readthedocs.io/en/latest/api_reference/moleculenet.html 신약개발에 deep learning 이 쓰이게 된 계기2012년.. 2024. 8. 25.
반응형