분류 문제 실습용으로 가장 좋은 iris dataset 가져오는 방법입니다. 여러 방법이 있지만 머신러닝에서 가장 선호하는 건 sklearn을 이용한 방법이 아닐까 싶습니다. 주요 데이터셋은 sklearn에 내장되어있기 때문에 손쉽게 데이터를 받을 수 있습니다. Iris 데이터셋 가져오기 다음과 같이 합니다. from sklearn.datasets import load_iris import numpy as np import pandas as pd Iris = load_iris() Iris Iris를 불러보면 다음과 같이 딕셔너리로 구성되어있습니다. 밑에 가보면 데이터 정보도 같이 줍니다. 딕셔너리 그대로 머신러닝을 돌리기에는 무리가 있습니다. 데이터 정보를 토대로 데이터프레임에 옮겨보겠습니다. 'data..
재귀용법이란? 함수 안에서 동일한 함수를 호출하는 방법으로 여러 곳에서 응용되니 익숙해져야 할 용법입니다. 재귀 호출의 동작방식은 함수 내부에서의 스택이라고 볼 수 있는데 함수의 결과값 위에 또 다른 결과값을 얹히는 방식으로 알고리즘이 진행됩니다. 그후에 맨 위에 값부터 리터하고 값을 넘겨줍니다. 얹는 과정을 Call function 결과값을 리턴하는 과정을 Returning values 라 했습니다. 실제 코드가 어떻게 돌아가는지 볼 수 있는 사이트가 있는데 아래 링크로 남겨놓겠습니다. 알고리즘의 진행순서가 어떻게 되는지 살펴보시기 바랍니다. https://pythontutor.com/visualize.html#mode=display 재귀용법의 제한 재귀용법을 무한정 쓸 수 있다면 반복문은 필요하지 않..
PC에서 구글 스프레드시트를 쓰는 건 다 좋은데 항상 크롬을 켜야합니다. 크롬을 켜고 구글 스프레드시트에 들어가고 원하는 문서를 가는데까지 클릭을 무려 3번이나 해야 합니다. 자주쓰는 구글 스프레드시트 문서를 바탕화면에 바로가기를 해놓으면 클릭 한번만에 갈 수 있습니다. 바로가기 만드는 방법을 정리해봤습니다. 1. 크롬 페이지를 다른 이름으로 저장 크롬 설정 - 도구 더보기.. - 페이지를 다른 이름으로 저장 을 클릭해 바로가기를 만듭니다. 단점은 모든 파일을 다 내려받아서 바탕화면에 폴더 하나가 추가된다는 것입니다. 물론 바로가기만 나오게 할 수 있습니다. HTML 만을 누르면 폴더없이 바로가기만 추가될 수 있습니다. 2. 북마크 후 북마크를 바로가기 만들기 가장 간편한 방법입니다. 북마크를 한 후 북..
샵백(Shopback) 이미 알고 있는 분들이 많이 있겠지만 샵백이라는 신박한 곳이 있어 공유합니다. 샵백은 샵백을 통해서 사이트를 경유해 물건 구매를 하면 일정 퍼센트 캐시백을 해주는 사이트입니다. 캐시백된 적립금은 계좌 입금이나 네이버포인트로 환급받을 수 있으니 얼른 가입하시길 추천드립니다. 유명한 마켓은 왠만하면 가능합니다. 또한 기간한정 이벤트가 자주 있어서 더 많은 캐시백이 가능합니다. 그런데 여기서 멈추는 게 아니라 샵백 사이트를 경유하는 게 아니라 크롬 확장앱을 깔면 검색시 자동으로 캐시백을 받을 수 있고 확장앱을 누르면 기간한정 이벤트도 확인할 수 있습니다. 그에 대한 내용은 아래에서 더 설명할테니 끝까지 읽어주세요~! 요즘 경제도 어렵고 해서 매달 돈 나가는 구독서비스 중에서 무료 이벤트..
요즘은 AI 프로그램이 많이 발전해서 창작으로 그림을 그리는 수준이 됐습니다. 그런데 이 창작의 퀄리티가 왠만한 화가 뺨치는 수준이라고 합니다. AI로 만든 그림으로 대회에 우승하는 사례도 발생하고 있다고 하네요. 저는 그림을 진짜 못그리고 미적감각도 없는데 인공지능이 그린 그림으로 대리만족(?)을 할 수 있을 것 같습니다. 저는 못 그리지만 텍스트를 입력하면 대신 인공지능이 그려주는 그림을 사용하면서 말이죠. 이번 포스팅에서는 미적 대리만족(?)을 할 정도의 퀄리티를 자랑하는 인공지능 그림을 만들고 받아볼 수 있는 사이트를 소개할까 합니다. 참고로 인공지능 자연어 처리가 한국어를 완벽하게 호환하지 못하기도 하고 주로 외국사이트가 많아서 그려달라는 텍스트를 입력할시 영어로 쳐야합니다. 영어가 안 ..
데이터 프레임의 데이터를 많이 다루는데 범주를 만들어야 하는 경우가 있습니다. 범주를 나누는 방법을 알려드립니다. 데이터 랜덤으로 만든 int와 float를 각각 컬럼으로 하고 데이터프레임을 예제로 하겠습니다. import pandas as pd import numpy as np import random df = pd.DataFrame({'int':random.sample(range(100),30),'float':np.random.randn(30)}) df 1. 동일길이로 나누기 데이터를 동일길이로 나눌려면 pd.cut()을 사용합니다. pd.cut()은 시리즈를 input값으로 해야합니다. 파라미터는 다음과 같습니다. pandas.cut(x, bins, right=True, labels=None, re..
티스토리 수식이 잘 안 먹힐 때가 있습니다. 식은 분명 맞는데 안되는 경우입니다. HTML모드로 직접 넣어보고 이것저것 다 해봤는데 안됩니다. 다른 식은 되는데 말이죠. 이럴 땐 그냥 그림으로 넣는게 가장 좋은 것 같습니다. 수식 입력하는 사이트에서 수식을 입력한 후 이걸 그림으로 저장하면 어떨까 싶습니다. 혹시 티스토리에 수식 넣는 방법을 모르신다면 다음 포스팅을 참고해주세요. 티스토리에 수식 바로 쓰기 티스토리에 수식 바로 쓰기 티스토리에서 수학기호를 바로 쓸 수 있는 방법이 있습니다. Mathjax 라는 것인데요. 아래와 같이 html 코드를 입력하면 티스토리에서 수식을 적용할 수 있습니다. Mathjax는 LateX 문법을 따르고 있어 seong6496.tistory.com 티스토리 수식 그림으로..
해쉬테이블(HashTable)은 주어진 공간에서 값을 저장하게 되면 충돌이 일어나게 됩니다. 이를 처리하는 기법 2가지를 소개합니다. 사실 더 많은 방법이 있는데 어짜피 파이썬에서는 딕셔너리로 다 커버가 되기 때문에 연습용으로 보시면 좋을 것 같습니다. 아래 내용을 보시면 공간의 제약이 거의 없는 딕셔너리의 장점이 얼마나 큰지 느끼실 수 있을겁니다. 참고로 실제 딕셔너리처럼 key값을 잘 정리하지는 않았습니다. 해쉬테이블이 충돌하는 이유 데이터는 많은데 공간은 제약되어있다면 충돌이 일어날 수밖에 없습니다. 예를 들어, 데이터가 만약 9개가 있고 공간이 8개까지밖에 없다면 해쉬테이블의 원리상 무조건 1개 이상은 충돌이 일어날 수밖에 없습니다. 공간을 넓힐 수 있다면 최대한 넓히는 게 좋지만 현실세계는 메모..
파이썬에서는 딕셔너리로 이미 구현이 되어있는 해쉬테이블을 굳이 구현해보겠습니다. 개인적인 이해를 위한 글이니 재미있게(?) 봐주셨으면 합니다. 해쉬테이블(Hash table) 해쉬테이블은 키(Key)에 데이터(Value)를 저장하는 데이터 구조입니다. 나열의 구조인 스택이나 큐와는 다르게 Key를 통해 바로 데이터를 받아올 수 있습니다. 다루기 편하고 검색 속도가 엄청나게 빨라진다는 장점이 있습니다. 파이썬에서는 딕셔너리로 구현이 되어있고 다른 언어는 공간을 확보하고 해쉬테이블을 사용하지만 파이썬은 그럴 필요는 없습니다. 해쉬테이블은 Key-Value의 함수역할을 하는 해싱 함수를 통해 데이터를 반환하는 방식입니다. 즉, 해싱함수를 h라 할 때h(Key)=Value가 됩니다. 함수역할을 하긴 하지만 va..
인터넷 주소가 너무 길어서 가독성을 떨어뜨릴때나 실제 url이 직접 노출되지 않게 하기 위해서 단축 url을 쓰는데요. 주소가 긴 링크를 보내면 상대방이 붙여넣기가 잘 안되기 때문에 한줄로 요약해서 보내주는 장점이 있어 많이 씁니다. 단축 URL에 대한 내용은 나무위키에서 확인하시길 바랍니다. 단축 URL 나무위키 단축 도메인 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 물론... 스팸으로 많이 이용하기도 해서 인식이 좋진 않고 리디렉션을 일으키기 때문에 접속 속도가 아주 미세하게 느려질 수 있습니다(인터넷 속..
단축 URL은 어디로 갈지 알수가 없어서 스미싱이나 스팸문자에 많이 쓰이고 있습니다. 또 해킹툴을 링크에 심어놔 링크를 누르면 해킹이 되버리는 일도 있는데요. 이럴때 가장 큰 방어는 링크를 누르지 않는겁니다. 내가 스팸인걸 안다면 안 누를수있지만 다양한 경로가 있기 때문에 어느 방식으로 링크가 날아올지 모릅니다. 이럴 때 그나마 방어할 수 있는 수단이 되지않을까 해서 포스팅합니다. 기존 도메인 알아내기 단축 URL은 사이트가 어디로 가는지 알 수 없다는 게 단점이 있는데요. 이 단점이 스팸을 유도하기 아주 좋기 때문에 해킹앱이나 광고클릭 용도로 자주 쓰입니다. 링크를 누르는 순간 피해가 발생하기 쉽기 때문에 주의를 해야합니다. 클릭을 하기 전에 링크를 미리볼 수 있다면 이런 일이 조금이나마 줄어들건데 다..
ppt 작업을 하면 그림 배경이 투명하지 않아서 이쁘게 되지 않을때가 있습니다. 파워포인트 안에 그림은 괜찮은데 외부에서 가져오는 경우 보통 배경색이 하얀색이어서 그림을 중첩시킬 경우 조화롭지 못합니다. 이런 경우를 대비했는지 모르겠지만 파워포인트에서 그림 배경을 투명하게 만들 수 있습니다. 물론 다 되는 것은 아니지만 한번쯤은 시도해볼만하다고 봅니다. 그림 배경 투명하게 만들기 아래 그림과 같이 파란 네모에 그림을 넣습니다. 그림의 배경색이 하얀색이어서 파란 네모가 하얀색으로 덮여집니다. 하얀색 배경색을 투명색으로 만들기 위해서 그림 선택 - 서식 - 색 을 클릭합니다. 색에서 맨 밑에 가면 투명한 색 설정이 있습니다. 클릭합니다. 마우스포인터가 바뀌는데 마우스를 배경색에 갖다놓고 클릭하면 투명색으로 ..
집을 옮기고 회의실처럼 방을 꾸며놓으니 자연스럽게 컴퓨터와 키보드, 마우스와의 거리가 멀어지더군요. 일단은 당장 집에 있는 무선 기기로 부랴부랴 구성은 했지만 서로 제조회사가 달라서 그런지 서로 전파방해를 하고 난리가 났었습니다. 컴퓨터를 새로켜면 키보드가 인식이 안되고 키보드 무선USB를 다시 켜면 마우스를 다시 껐다켜고 작업을 시작하는게 일상이었어요. 심지어, 컴퓨터 본체 근처에 가면 전화도 끊김현상이 있을정도로 전파간 충돌이 너무 심했습니다. 적금이 만기되는 날까지 3개월간 전파 방해를 몸소 느끼는 삶을 살다가 드디어 만기가 되어 로지텍 무선 my keys와 무선 마우스 master3을 질렀습니다. 로지텍 제품을 한번 사면 빠져나올 수 없다는 지인들의 말을 듣고 저도 느껴보고 싶었습니다. 로지텍 홈..
머신러닝은 지도학습, 비지도 학습, 강화학습 등 다양한 모델이 있습니다. 학습방법에 따라 성능에 대한 고찰도 약간씩 달라집니다. 이번 포스팅에서는 지도학습 모델에서 자주 쓰는 평가방식에 대해 정리하려 합니다.범주형 모델 평가범주형 모델은 분류를 목적으로 만든 모델입니다. 성능 또한 잘 분류했는지를 확인합니다. 평가를 위해서 혼동행렬(Confusion Matrix)를 이용하고 주로 F1_score나 ROC 곡선 점수로 평가를 합니다.혼동행렬, ROC 곡선에 대한 개념에 대한 자세한 내용은 아래 포스팅에서 확인하시기 바랍니다.[머신러닝] 혼동행렬(Confusion matrix) [머신러닝] 혼동행렬(Confusion matrix)이전 포스팅에서 MNIST에서 이진 분류기를 만들어 보았는데 글이 길어지다 보..
시리즈(Series)를 데이터프레임(DataFrame)으로 바꾸는 방법입니다. 시리즈의 차원은 1차원이고 데이터프레임은 2차원입니다. 서로 차원이 다르기 때문에 사용방법이 약간 다릅니다. 보통 데이터프레임에 익숙하기 때문에 때로는 시리즈를 데이터프레임으로 바꾸는 게 편할 때가 있습니다. 시리즈 데이터프레임으로 바꾸기 보통 groupby를 통해 톻계값을 출력하게 되면 시리즈로 바뀝니다. 값이 하나로 되면 시리즈로 바뀌게 됩니다. 이를 데이터프레임으로 바꿀 수 있습니다. 예를 보면 다음과 같습니다. import pandas as pd df = pd.DataFrame({'A':[1,30,70],'B':[2,30,80],'C':[3,40,90]}) df = df.T display(df) 통계값을 구하면 시리즈로..