본문 바로가기

SMALL

분류 전체보기

(56)
자주하는 실수 정리 실수를 안할 수 없지만 내가하거나 남이하는 실수에서 배움을 얻어 유사한 실수를 저지르지 않는 것이 중요합니다. 프로그래밍 대회에서 흔히 저지르는 실수들을 정리해보면서 저에게도 각인시킬려고 합니다. 산술 오버플로 계산과정에서 변수의 표현 범위를 벗어나는 값을 사용하는 산술 오버플로 배열 범위 밖 원소 접근 C/C++은 배열의 원소에 접근 시 인덱스가 배열 범위 안에있는지 확인을 따로 안합니다. 따라서 버그를 찾기에 매우 힘든 오류입니다. 그나마 런타임 스택 등을 통해 프로그램이 런타임 오류를 내며 종료하는 경우에는 배열 범위 밖에 접근했다는 사실을 알 수도 있지만, 오류가 나지 않으면서 오답을 내는 경우도 있습니다. int array[10], t; 이때 변수 array와 t가 메모리 상에 연속해서 위치하고..
알고리즘 공부 시작 프로그래밍이 뭔지도 모르는 상태로 대학에 입학 후에 군대를 다녀와서까지 포인터라고 하면 ppt에 쓰는 포인터밖에 모르는 상태로 작년의 대학생활을 하였습니다. 그러다보니 공부해보고 싶은 분야가 생기게 됐습니다. 알고리즘 공부가 필요하다고 생각이 들었지만 하고싶은 날만하고 안하는 날이 대부분인게 마음에 안들어 여기에 혼자 공부하면서 종종 올려야 내것이 될거란 생각이 들었습니다. 주변 선배님중에서 알고리즘 잘하시는 분께서 구종만 책인 책 시리즈를 추천해주셨고 남은 대학생활동안 이 책과 온라인에 있는 자료들을 통해서 공부를 차근차근 해볼려고합니다. 부족하지만 저의 것이 되는 공부를 해보도록 노력하겠습니다.
주피터 노트북 그리고 넘파이/판다스(jupyter, numpy, pandas) Jupyter Notebook 주피터 노트북은 대표적인 대화형 파이썬 툴입니다. 대화형 툴이란 것이 프로그래밍과 이에 대한 설명적인 요소를 결합했다는 의미입니다. 전체 프로그램에서 특정 코드 영역별로 개별 수행을 지원하여 영역별로 코드 이해가 명확하게 설명할 수 있는 장점이 있습니다. 셀이라고 불리는 주피터 노트북 요소 안에 실행할려는 코드를 집어 넣게 된다면 개별 셀별로 수행이 가능하게 됩니다. 전통적인 에디터 컴파일러들에서 디버깅할 때 브레이크 포인트를 정하는 것처럼 개별 코드별로 영역 수행이 됨에 따라서 코드 각각의 이해의 편리성이 돋보입니다. 이때 노트북(Notebook)은 중요 코드 단위로 설명을 적고 코드를 수행해 그 결과를 볼 수 있게 만들어서 직관적으로 어떤 코드가 어떤 역할을 하는지 매우..
파이썬 머신러닝을 위한 SW 설치(2)-XGBoost, LightGBM 패키지들 중에서 최선 버전으로 release를 시키고 싶다면 pip를 통해서 다운로드를 진행해보겠습니다. 이때 유의해야할게 하나 있는데 [시작]메뉴로 들어가서 anaconda3파일안에 Anaconda Prompt (anaconda3)가 있어 이를 바로 실행시키지말고 마우스 오른쪽버튼을 통해서 관리자 권한으로 들어갑니다. 안그러면 pip를 쓰거나 anaconda를 하거나 제대로 파일에 저장이 안될 우려가 있습니다. 따라서 반드시 관리자 권한으로 들어가서 download를 진행해주시면 됩니다. 만약 scikit-Learn을 설치를 하고싶다면 웹브라우저를 하나 열고 scikitlearn install을 검색을합니다. 여기서 pip install -U scikit-learn이 부분이 최신버전으로 설치를 해주는 ..
파이썬 머신러닝을 위한 sw 설치 이번에는 파이썬 머신러닝을 사용하기 위해서 소프트웨어를 설치해보도록 하겠습니다. 보통은 파이썬 머신러닝을 위해 패키지 설치보다는 쉬운 방법인 anaconda를 이용합니다. 파이썬 패키지를 설치하는 방법인 pip는 ML과 SW를 각각 설치를 해야하는 번거로움이 있습니다. 반면, anaconda는 Scikit-Learn,pandas, jupyter notebook 등 전부 일괄적으로 설치를 해줍니다. 이 패키지를 로컬 pc에 설치를 안해도 되는 이유는 Colab에서 소스코드가 돌아갑니다. 다만, 감안해야할 부분은 pandas와 Scikit-Learn의 버전이 SW버전과 차이가 있어 출력결과가 달라질 수 있습니다. 설치는 글작성기준으로 설치를 하겠습니다. 웹브라우저 하나를 열어서 python anaconda ..
머신러닝(Machine Learning) 머신러닝은 일반적으로 애플리케이션을 수정하지 않고도 데이터를 기반으로 패턴을 학습하고 결과를 예측하는 알고리즘 기법을 이야기합니다. 기존의 소프트웨어 코드로만은 해결하기 힘든 문제들을 머신러닝을 이용해서 해결하고 있습니다. 머신러닝 알고리즘은 데이터를 기반으로 통계적인 신뢰도를 강화하고 예측 오류를 최소화하기 위한 다양한 수학적 기법을 적용해 데이터 내의 패턴을 스스로 인지하고 신뢰도 있는 예측 결과를 도출하도록 합니다. 데이터마이닝, 영상 인식, 음성 인식, 자연어 처리 등과 같이 개발자가 데이터나 업무 로직의 특성을 직접 감안한 프로그램을 만들 경우 난이도와 개발 복잡도가 높을 수 밖에 없는 분야에 머신러닝은 계속해서 발전하고 있습니다. 머신러닝 분류 머신러닝은 일반적으로 Supervised Lear..
머신러닝 공부 시작 이번년도에 데이터 분석하고 인공지능 공부를 시작하고 싶었습니다. 아마 책으로만 공부하는게 아니라 따로 동영상 강의를 병행해서 듣거나 기회가 되면 오프라인 과정을 들을 염두도 하고 있습니다. 저는 파이썬 머신러닝 완벽 가이드라는 책으로 공부할 예정입니다. 물론 XGBoost, LightGBM, 스태킹 키법 등 캐글의 많은 데이터 사이언스에서 사용하는 알고리즘 기법에 대해 아는 것이 아는 것도 중요하지만 머신러닝의 핵심 개념을잡으면서 공부하는 것을 목표로 할 것입니다. 파이썬도 배운적도 없이 어깨너머로 보기마한 것이라 중간중간 파이썬 공부도 하고 판다스공부도 하면서 뒤죽박죽이 될 공부를 해보겠습니다.
홀로 쓰기 시작 작년부터 주변에서 블로그든, 티스토리든 시작을 하고 개인공부하는거나 공모전 및 프로젝트하는 외부활동에 대해 적어놓는게 좋다 이런 말을 듣기만 하다 이제야 블로그를 만들게 되었습니다. 타과에서 전과를 하고 아무것도 모르는 상태라 방황을 한다는 이유로 미뤄놓았네요 (아직도 아무것도 모릅니다....) 그래서 이 블로그는 작게나마 저 스스로 공부한 것들이나 활동했던 것들을 맘대로 정리하는 공간으로 쓸 거 같네요 제가 정리하고 싶은 부분만 지껄이는 곳이라 정확한 정보가 아닐 수도 있고 두서없게 글을 쓸 수도 있어 가독성도 많이 떨어질 수도 있겠죠 그래도 남들에게 보여줄려고 쓰는 것은 아니니 눈치보지 않으며 제가 하고싶은 만큼, 하고싶은대로 쓸려고 합니다. 학기 중에 배우는 전공, 개인공부, 프로젝트 및 공모전 활..