전체 글 106

미니프로젝트 3주 연속

언어지능 딥러닝은 스펙이 어마하신 강사님께서 와서 일주일동안 강의를 해주셨다. 거의 교수님 급이다. 과거부터 지금까지 나왔던 언어 관련 지식을 거의 다 전달해주시려다 보니 얕게 배울 수밖에 없었다. 하지만 각 모델에 대해 충분히 이해를 시켜주려고 노력해주셔서 만족스러웠다. 관련 라이브러리를 어느 정도 이해를 하고 쓴다는 게 중요하긴 했다. 직접 텐서플로우로 모델을 설계할 때도 각 레이어가 무엇을 의미하는 지 아니까 다양하게 모델을 설계해볼 수 있었다. 이 수업을 들으면서 챗봇에 관심을 가지게 되었고, 추가적으로 더 찾아보았다. 그리고나서는 무려 3주동안 미니프로젝트를 연속으로 진행 중이다. 강의와 적절히 섞이는 게 좋은 것 같다. 프로젝트만 하니 지친다. 미니프로젝트 하나의 주제에 대해 일주일이나 짧으면..

KT 에이블스쿨 2022.10.24

나무위키 크롤링하지 마세요

나무위키에 있는 데이터를 수집하고 싶었다. 언어 인공지능을 공부하기 위해서였다. 그러나 크롤링으로는 쉽지 않았다. 첫째, requests를 사용하면 403 에러를 반환받는다. 둘째, selenium을 사용하고 undetected_chromedriver 를 사용해도 30건 이상 크롤링하면서 봇으로 인식하기 시작했다. 그러니 나무위키를 크롤링하지 마세요. 시간이 아깝습니다. 나무위키에는 덤프 기능이 제공됩니다!!! 간단하게는 huggingface에 올려주신 나무위키 데이터를 다운로드 받을 수 있다 https://huggingface.co/datasets/heegyu/namuwiki heegyu/namuwiki · Datasets at Hugging Face ... huggingface.co 직접 받으려면 여..

카테고리 없음 2022.10.23

[에이블스쿨 AI] 머신러닝 미니 프로젝트 2차

이번 미니 프로젝트의 주제는 미세먼지 수치 예측 모델링이었다. 2021년 데이터를 학습시켜 2022년 1월부터 3월까지의 미세먼지 수치를 예측하면 됐다. 주어진 csv 파일의 데이터가 굉장히 날 것이었다. NAN 값이 굉장히 많았다. 개인적으로 데이터 전처리하는 시간이 주어졌을 때 어떻게 처리할 지 쉽게 아이디어가 떠오르지 않았다. 결측치가 너무 많아 KNNImputer나 interpolate를 사용해서는 굉장히 부정확한 보간이 될 확률이 높았다. 결정을 명확하게 내리지 못 한 상태에서 조별 토론을 하게 됐다. 엑셀을 보고 결측치의 의미를 찾아낸 대단한 분이 계셨다. pandas로 열어볼 때는 조금만 보여서 패턴을 찾기 어려웠다. 그런데 엑셀 파일로 한 눈에 컬럼의 데이터를 보니 규칙이 보였다. 측정값이..

KT 에이블스쿨 2022.09.03

치킨 가격 - 원가를 찾아보자

대형 마트들의 저렴한 가성비 치킨이 나오면서 요즘 뉴스, 기사, 커뮤니티가 매우 뜨겁습니다. 7000원만 있으면 살 수 있는 당당치킨, 그리고 롯데마트에서 부활한 한통치킨까지. 덕분에 소비자는 싸게 치킨을 사 먹을 수 있게 됐습니다. 당당치킨을 만드신 분이 저 가격에 팔아도 남는다고 말해 화제가 됐습니다. 반면, 프랜차이즈 치킨 관련 업자들은 본인들은 남는 게 없다고 주장합니다. 유명 프랜차이즈가 아닌 치킨집에 시켜도 양념 있는 치킨 한 마리면 배달비를 포함해서 2만원은 넘게 줘야 하는 게 현 상황입니다. 가성비라 불리던 호식이 두 마리 치킨도 2만원이 넘으며(두 마리이긴 해도 크기가 작으니...), 부어치킨도 원래 가격보다 상당한 인상을 한 지 오래입니다. 치킨을 무척 좋아하지만 한번 시킬 때 2만원은..

데이터 분석 2022.08.21

[에이블스쿨 AI 4주차 2] 미니 프로젝트 2 - EDA

3주차 마지막 날 금요일에는 화~목까지 했던 주제와는 다른 주제로 데이터를 분석해보는 실습 시간을 가졌다. 처음 뵙는 강사님셨는데 역시 훌륭하신 강사님이셨다. 이력도 화려하시고, 따뜻하셔서 이런 분께 교육과 피드백을 받고 있다는 게 너무 좋았다. 이번 주제는 따릉이 수요 분석이었다. 지역은 한 구로 한정되어 있었고 따릉이 대여량과 연관 있는 변수를 찾는 가설 검정을 해보는 미니 프로젝트였다. 하루도 안 되는 시간 동안 분석을 해야했기에 일부러 쉬운 데이터를 충분히 전처리해서 가져와주셨다고 말씀하셨다. 아직 능숙하지 않아 이 주제도 완전 쉽게 느껴지지는 않았지만 저번 데이터보다는 확실히 이해하기 쉬웠다. 분석 단위인 행이 시간으로 깔끔하게 떨어져서 머릿속이 복잡할 일이 거의 없었다. 미니 프로젝트 1 때 ..

KT 에이블스쿨 2022.08.20

[에이블스쿨 AI 4주차] 미니 프로젝트1 - EDA

4주차는 미니 프로젝트 주간이다. 데이터 분석을 기반으로 몇 개의 데이터를 살펴보고 가정을 만들고 검정하는 실습 문제가 주어진다. 드디어 한국형 데이터셋을 사용했다. 공공데이터 하나랑 KT에서 제공하는 비식별 조치가 취해진 통신 데이터를 제공해줬다. 다른 어디에서도 써볼 수 없는 데이터를 사용해서 실습을 수행한다니 너무 좋았다. 이번 주제는 주어진 데이터를 사용해서 버스 정류장이나 노선을 추가로 설치해야 할 자치구를 결정하기였다. [1일차] 개별 실습 시간이 많이 주어졌다. 주어진 데이터를 바탕으로 가설을 설정하고 검정하면 됐다. 개인적으로 데이터로부터 참신한 인사이트를 도출해내는 게 너무 어렵다. 데이터도 컬럼이 꽤나 많기 때문에 시도해볼 수 있는 가짓수가 많다. 물론 그 중에 타겟이랑 관련 있어 보이..

KT 에이블스쿨 2022.08.19

[에이블스쿨 AI 3주차] 데이터 분석, 전처리 후기

벌써 3주차 수업까지 들었다. 9시부터 5시까지의 수업을 휴일을 제외하고 매일 듣다보니 시간이 정말 빨리 간다. 항시 반별 팀즈의 캠도 켜놓아야 하기 때문에 쉬는 시간을 제외하면 딴짓을 할 수가 없었다. 그래서 확실히 수업에 더 집중할 수 있다는 장점이 있다. 한편으로는 불안한 마음도 있다. 컴퓨터공학과 4학년 2학기만 남은 현 상황에서 일반적인 프론트엔드 개발자나 백엔드 개발자 길을 가기 위한 준비를 하지 않고 데이터 분석, 머신러닝을 이렇게 하루종일 공부해도 괜찮은 걸까 하는 의문이 계속 머리에 맴돈다. 에이블 스쿨이 취업 연계 과정이기는 하지만 취업률 100% 보장이 아니다 보니 차선책을 준비해야 하는데 데이터 엔지니어링이라는 새로운 분야를 공부하면서 준비하기가 어렵다. 하반기가 되면 백엔드 개발자..

KT 에이블스쿨 2022.08.14

KT 에이블스쿨 2기 AI 개발자 트랙 (늦은) 합격 후기

현재 KT에서 주관하는 교육인 에이블스쿨에 참여 중이다. 현재 벌써 3주차지만 최대한 많은 정보를 제공하기 위해 기억과 메일함을 끄집어내서 에이블스쿨의 지원 전형에 대해 적어봤다. 2022년 하반기에 KT 에이블스쿨 2기로 참여할 분들을 모집하는 공고를 채용 사이트에서 발견했었다. 당시의 나는 컴퓨터공학과 전공이지만 수상 경력이 하나도 없어서 회사 공고에 지원할 용기가 쉽게 나지 않았다. 자소설닷컴 채팅 방을 보면 수상경력이 기본 2, 3개에 인턴 경험까지 있는 분들이 합격 소식을 알려온다. 인턴 경험도, 수상 경력도 없고 코테도 중간 수준밖에 안 되는 나는 몇 개 올라온 인턴, 공채 공고에 지원해봤지만 대부분 코테나 서류에서 떨어졌다. 제대로 된 프로젝트 경험을 쌓기 위해서는 부트캠프를 신청하는 게 좋..

KT 에이블스쿨 2022.08.11

jpa 쿼리 수 줄이기

프로젝트 관련된 정보를 수정하려 할 때 프로젝트의 멤버인지를 체크해주는 checkIsMember() 함수가 있다. data jpa를 사용한 repository에서 코드를 이렇게 작성했었다. 하나는 count를 가져와서 project를 같이 가져오지 않는다. 그 결과 나중에 project가 필요할 때 db에 쿼리를 다시 날려서 가져와야 한다. @Query(value = "select count(*) from (select project_id as pid from Project p where p.project_id = :projectId) join Part pa on (pa.project_id = pid) join User_Part up on (pa.part_id = up.part_id)" + " where..

ec2를 종료해서 도커와 젠킨스가 죽었을 때 살리는 법

sudo docker start service 명령을 실행 시 계속 에러가 뜨면서 문제가 생겼다. 이리저리 방법을 찾아 에러의 원인을 찾아보니 /etc/fstab에 문제가 있단다. /etc/fstab에서 뒤에 달린 /swapfile swap swap defaults 0 0 가 문제였다. 시험 공부한다고 ec2를 꺼뒀다가 다시 켰더니 swap 메모리 할당했던 게 없어졌었고 (free 명령어를 입력해보면 알 수 있다.) 위 파일에서는 swap 메모리를 사용하라고 하니 문제가 발생했던 것이다. 그래서 다시 swap 메모리를 할당해주고 전에 만들어둔 젠킨스를 다시 도커 컨테이너에 올렸더니 문제가 해결됐다. sudo service docker start 를 통해 다시 도커를 시작해주고 sudo usermod -a..