공부하면서 필요하다고 생각한 것을 정리하는 것이라 완벽하지는 않지만 참고하셔서 도움이 된다면 기쁠 것 같습니다. 내용에 의문이 드는 부분이 있다면 더 좋은 자료를 같이 보시기를 권장합니다. 틀린 내용이 있거나 내용에 대한 제안이 있다면 댓글로 남겨주시면 감사하겠습니다. 본 글은 개선을 위해서 수정될 수 있습니다. 파이썬으로 머신러닝을 공부중인데, 2차원행렬을 사용시, row col이 혼동되고 인덱싱, 슬라이싱이 나오면 코드가 바로바로 안 읽어지니 비효율적이고 자꾸 멍때리게 되어서, 정리할겸 이 글을 작성한다. 2차원행렬을 익숙하게 활용하는데 필요한 기본개념과 활용법에 초점을 두고 정리한 내용이다. 다차원 배열이 정의되는 방식은 라이브러리마다 조금씩 다르다. 파이썬에 기본 내장된 list를 중첩하여 다차원..
"머신 러닝 교과서 with 파이썬, 사이킷런, 텐서플로"는 세바스찬 라시카(Sebastian Raschka)와 바히드 미자리리(Vahid Mirjalili)가 쓴 아마존 베스트셀러 ‘Python Machine Learning 2nd Ed.’의 번역서이다. 머신러닝 입문자의 머신러닝 교과서 리뷰 나는 머신러닝을 이제 막 공부하기 시작했다. 나는 공학을 전공하고 있고 선형대수학, 수치해석, 미적분학 등의 과목을 수강한 적이 있다. 하지만 부끄럽게도 이해도는 낮은 편이다. 대학을 졸업하고 나서는 다시는 이런 수학을 하고싶지 않고, 그럴일은 없을 것이라고 생각하고 있었다. 게다가 파이썬은 아무래도 익숙하지 않아서 언젠가 따로 공부해야지 하며 미뤄오던 언어였다. 그러던 내가 덜컥 머신러닝 책을 공부하게 되었다...
2장. 간단한 분류 알고리즘 훈련 길벗출판사의 머신러닝 교과서 실습입니다 수학적 배경 인공뉴런 : 두개의 클래스가 있는 이진분류 작업으로 볼 수 있다. 여기서 두개의 클래스를 -1, 1이라고 한다. 입력값 x와 벡터 w의 선형 조합으로 결정함수 phi(z)를 나타낸다. 선형 조합이란 구성하는 요소끼리 계수를 곱해서 더해서 나올수 있는 조합니다. 다르게 표 현하면 span이라고 볼수 있을것 같다. 최종입력 z는 x, z의 선형조합니다. $$ z = w_1 x_1 + ... + x_m w_m $$ 선형 조합을 각 집합 X, W의 행렬곱으로 표현할수 있다. $ W = [ w_0 w_1 w_2 .. . w_m ] $는 가중치입니다. x가 주어졌을때, 그 결과를 예측하기 위해서 단순히 x에다가 어떤 수를 곱한다고..
1일차 - 7/11 하루에 2시간 이상(3시간 권장) 공부하기로함. 1장은 개념과 용어이고 2장부터 실습을 포함한다. 파이썬 관련 공부도 별도로 진행되어야함. 1. 실습환경 설치 아나콘다 대신, virtualenv로 가상환경을 만들고 필요한 라이브러리를 pip로 모두 설치했다. 이대로 문제없이 실습이 가능할지는 모르겠지만, 문제가 생기면 해결하는 과정에서 배우는것이 또 있을것같다. 2. 실습 코드 다운로드 실습 코드와 노트가 제공되어서 다운받았다. 3. 주피터 노트북 사용법 확인 교재에 주피터노트북이 제공되는데, 복잡한 것은 없어보이만 주피터노트 사용법에서 막히는 일이 발생하는것보다는 막힘 없이 공부하고, 학습자료를 잘 활용할 수 있는 점에서 대략적인 사용법을 미리 알고 시작하는게 효율적일것 같다. 설치..
풍차식 공부하기 무슨 공부든 아래처럼 단계를 따른다고 해보자. 시작 - 용어와 개념 파악, 예제 실습 중반 - 더 어려운 것까지도 공부. 잘 안되는것들 해결 끝 - ?? 근데 .. 공부하다가 보면 시작에서는 막 열심히하고 용두사미가 되는경우가 많은데 게다가 시작할때, 너무 숲만 보고 구체적인 공부를 하지 않다가 보면 진입장벽이 더 높아질 뿐이다. 그래서 나무를 보는 단계로 들어서야하는데, 그 단계에서의 지루함을 버티지 못하고 결국 벗어나는것을 반복하고... 겉만 맴도는 실력에 머무르는건 아닐까 생각이들었다. 그래서 생각난게 풍차식으로 공부하는것인데. 적금을 풍차식으로 소량씩 맡긴다는 기법(?) 에서 떠오른방법이다. 좀더 쉽게 비유하면 돌림노래 처럼 공부하는것이다. 시작, 중반, 끝이라고 할만한 것들을 병..
키보드에는 작은따옴표와 비슷한 문자가 하나 더 있다. ` 바로 이 문자이다. javascript에서는 템플릿 리터럴에 활용되고, 마크다운에서 코드를 강조(code, fenced code block)하는데 쓰이기도 하는 문자이다. 이 문자를 작은따옴표로 착각해서 헤메다가 한참 후에 작은따옴표와 다른 문자라는것을 깨달았다. 백틱(backtick)과 작은 따옴표의 비교 '작은 따옴표1' ‘작은따옴표2’ `백틱(backtick)` 작은 따옴표는 열고닫는게 구분된것과 구분이 없는것이 있다. 어느것과 비교해봐도, 백틱이 차지하는 자리가 더 크다는걸 눈으로 봐도 알 수 있다. 그리고 비스듬한게 더 강조되어있는 모양이다. 또 작은 따옴표는 열고 닫는게 있지만, 백틱은 구분이 없다. 명칭 Backquote, backti..
여러가지 개발환경을 번갈아 가면서 쓰다보니 (게다가 나는 맥, 윈도우를 번갈아 가면서 쓰는 상황이다) 단축키가 손에 익지 않고 계속 헷갈리는 상황이 반복된다. 그 중에서도 잘 모르면 가장 불편한 기능이 자동정렬인것 같다. 일단 메뉴 깊숙히 숨어 있는 경우가 많고 단축키도 저마다 다르다 보니... 단축키가 생각이 안나서 자동정렬 기능을 덜 쓰게 되는 경우가 종종 있다. 그러다 보면 코드 작성속도도 느려지고, 정리가 안된 코드를 보면서 하면 에러가 날 확률도 커진다. 까먹고 다시 찾아보고...를 반복하다가 이참에 IDE별로 자동정렬 기능의 단축키를 이곳에 정리 해둔다.. Visual Studio, VS Code(윈도우) (Win) ctrl + K, F (Win) ctrl + E, F (Win) Alt+F8 ..
CSS를 최근에 바짝 공부하고 있는데.margin과 padding의 차이가 헷갈려 간단히 정리해 둔다. Margin과 Padding 두 가지의 공통점은 박스 하나의 여백 혹은 크기로 생각할 수 있다는 것이다. 그런데 이 둘의 차이는 박스에 background-color혹은 border를 넣어보면 쉽게 알수 있다. padding 은 border안쪽의 영역을 결정한다. background-color를 포함하는 영역이다. margin은 border바깥의 영역을 결정한다. background-color 바깥의 영역이다. 아래 그림을 보고 좀더 이해해보자. 메뉴를 만들고 각 박스의 padding, margin 값을 조절한다. (실제로 값을 적용한것은 아니고 이해를 하기 위해서 만들었다) (1) margin, pa..
(이글은 본인이 보기 좋으려고 쓴 글로, 내용이 추가되거나 수정될 수 있음.) virtualenv는 프로그램마다 가상환경을 만들어 한 피씨에 여러 프로그램을 관리하다보면 패키지 버전이나 종류를 업데이트하거나 바뀌는 등의 상황에서 잘되던게 잘안되거나 충돌이 생길수 있기 때문이다. 때문에 단순하게 독립적인 패키지 설치 환경을 만드는것이다. virtualenv를 사용하는 경우, 글로벌로 설치하는것은 virtualenv와 pip 두개면 충분하다. 1. 가상환경 설치(virtualenv 설치) 2. 가상환경 생성. 3. activate로 타이핑 줄이기 4. 가상환경에 패키지 설치 1. virtualenv설치 $ pip install virtualenv 2. 가상환경 생성 해당 프로젝트에서 virtualenv 실행..