let us not love with words or tongue but actions and truth.

IT/파이썬 36

cmap을 활용한 산점도 그리기(Label Encoder활용)

cmap을 활용한 산점도 그리기를 연습해보려고 합니다. cmap을 활용하게 되면 일일이 색상을 정해주지 않아도, 다양한 값에대해 colorbar의 값과 매칭해주어 색상을 표현할 수 있습니다. 아래와 같은 그림처럼 표현이 가능한 것입니다. 현재 아래와 같은 데이터가 있다고 가정해볼게요. 수학성적(평균) 영어성적(평균) 학급 85.7 93.2 A 82.1 77.8 B 92.1 85.2 C 95.2 88.3 D 학급에 해당하는 값이 색깔로 표현되게 만들 예정입니다. 하지만, 아래와 같이 범주형 컬럼인 class를 그대로 넣어주면 1 plt.scatter(x=df['math'], y=df['eng'], c=df['class'], cmap='viridis') cs c of shape (50232,) not acc..

IT/파이썬 2022.09.22

[그래프]산점도에 label 추가하기

지난번에 matplotlib을 활용해서 산점도 그래프 그리는 법을 알아봤습니다. 이번에는 산점도에 label을 추가하는 방법을 알아보고자 합니다. label 또는 텍스트를 추가한다는 말은 아래 그림과 같이 id1~3까지의 텍스트가 그림위에 표현 되는 것입니다. 그럼 matplotlib을 먼저 불러옵니다. 1 from matplotlib import pyplot as plt cs 지난번에 배웠던 산점도 그리는 코드를 기억하실까요? 2가지 방법으로 배웠는데, 첫번째는 case마다 직접 명시를 해주는 방법과 두번째로는 for문을 활용해 산점도를 그리는 방법이었어요. 오늘은 간단히 첫번째 방법으로 그려볼게요. (어차피 label을 입력할 때 for문을 써줘야 하기 때문에) 1 2 3 4 5 6 7 8 9 10 ..

IT/파이썬 2021.09.17

[그래프] subplot 활용하기

하나의 화면에 여러개의 그래프를 표시해야 할 때가 있습니다. 예를 들어볼까요. 1반부터 4반까지 있을 때, 4개의 학급의 과목점수 영어/수학/국어/사회 등의 점수분포를 비교해야 된다고 해보죠. 표로 각 반별 과목별 점수의 평균을 표현하게 되면 이렇게 되겠죠. 1반 2반 3반 4반 영어 80 82 83 73 수학 67 73 82 91 국어 73 72 83 82 사회 78 78 98 97 이러한 정보의 그래프를 표처럼 나타낼 수 있는 방법이 있습니다. 위의 그림을 보시면 각 반별 과목의 점수를 비교하기 쉽게 그려놓은 것을 볼 수 있습니다. 이렇게 그래프를 그릴 수 있게 해주는 것이 오늘 정리해볼 subplot이라는 함수입니다. subplot에서 꼭 기억하셔야 될 것은 subplot(행, 열, 순서)라는 것입..

IT/파이썬 2021.08.12

if문과 apply함수로 파생변수 만들기

지난번에 if문과 map함수로 파생변수 만들기를 연습해봤다면, https://sarah0518.tistory.com/69?category=984180 if문과 map함수로 파생변수 만들기 보통 SQL에 익숙하신 분들은 파생변수 만들때 case, when, then 문이 자동으로 생각나실거에요. 파이썬에서는 간단하게는 map함수를 쓰거나, 아니면 if문으로 파생변수를 새로 만들어서 컬럼으로 활용 sarah0518.tistory.com 이번에는 apply함수로 파생변수만들기를 해볼거에요. apply함수는 다양하게 쓰일 수 있는데, 이것도 지난번에 다뤘던 것처럼 applymap과 유사하다고 생각하면 됩니다. 가장 큰 차이점은 applymap은 dataframe에만 사용이 가능하지만, apply는 datafra..

IT/파이썬 2021.08.04

[그래프] for문으로 산점도 그리기 plt.scatter 활용

오늘은 간단한 산점도에 대해서 정리해보려고 합니다. 산점도를 그릴 때 점마다 다른 색으로 표현해야할 때가 있죠. 그럴 때 유용한 방법입니다. 우선 2가지 방법으로 소개 드릴 건데요. 첫번째! 표현하려고 하는 점의 색깔이 적을 경우. 두번째! 표현하려고 하는 점의 색깔이 많은 경우(for문활용). 이렇게 정리를 해보려고 해요. 우선 첫번째의 경우의 코드 먼저 소개 해 드릴게요. 그래프 그리기의 시작은 언제나 그렇듯 matplotlib을 불러옵니다. 1 from matplotlib import pyplot as plt cs 그 다음 아래 코드가 산점도를 그려주는 값인데요. 우선 이번 예제는 분류의 결과를 그래프로 나타내보는 거에요. TP(정답을 정답으로 분류) TN(오답을 오답으로 분류) FN(정답을 오답으..

IT/파이썬 2021.08.02

Bayesian optimization

오늘은 parameter의 최적값을 찾아보기위한 Bayesian optimization에 대해서 알아보려고 합니다. 우선 간단히 Basian optimization에 대한 기본 개념을 설명드릴게요. 초기값을 임의로 몇개 찍어서 성능을 비교하고 (아래코드 init_points 참고) 상대적으로 좋은 성능이 발견되는 point에서 반복적으로 더 좋은 성능을 갖는 parameter값을 선택한다고 보시면 될 거같아요. (너무 심플하게 설명한 것 같은 느낌이지만...) 그러면 여기서 말하는 성능은 어떤 것인냐라는 질문을 해보도록 하죠. 분석가마다 focusing 하는 성능값이 다를 수 있는데요. bayesian optimization에서는 최적화 하기위한 function을 미리 설정해주고, 그 값을 최대화 또는 ..

IT/파이썬 2021.06.29

[for loop 활용] 최적화된 feature set 찾기

오늘은 다양한 모델을 돌릴 때, 어떤 feature set에서 성능이 가장 성능이 좋은지 확인하는 방법을 소개하려고 합니다. 예를 들어 feature1~10까지 10개의 feature가 있을 때, "feature 5, 10 " 의 조합이 "feature 1, 2, 4, 7" 의 조합보다 더 나은지 모든 조합에 대해 비교분석 하실 때 유용한 코드를 공유하고자 해요. 학생때 배웠던 조합을 잠깐 회상해보자고 하면, 10개의 숫자중에서 3개만 뽑는 경우의 수는 (순서 상관없이) 위의 값으로 120가지의 경우의 수가 있습니다. 알고리즘 진행 시, 심지어 몇개의 조합이 최적인지도 알 수 없기 때문에 위의 값 될텐데, 그렇다면 더 많은 경우의 수가 존재하죠. 이걸 다 손으로 돌리기엔 너무나 비효율적이니 for loo..

IT/파이썬 2021.06.25

차원축소 tsne, pca와 비교

오늘은 pca, pls, tsne 등 다양한 차원축소 method중에 tsne에 대해서 정리해보려고 합니다. 한글로는 티스네라고 읽어요! pca와는 조금 다르게, tsne는 원래 데이터 형태가 곡선을 나타내는 모형일 때 더 성능이 좋아요. 보통 숫자 분류 mnist 데이터 셋에 대해 차원 축소를 고려하신다면, 0이나 8같은 숫자들은 곡선들로 이루어져 있죠. 이럴 때 tsne를 사용하면 더 성능이 좋다고 합니다. 반면에, pca는 feature들이 선형적 관계들이 있을 때 잘 분류하지요. 그래서 pca를 쓸 지, tsne를 쓸 지를 판단하시기 위해서는 가지고 있는 데이터들이 어떤 분포를 가지는지를 먼저 파악하는 것이 무엇보다 중요하지요. 또 pca는 skit-learn에서 decomposition로 불러오..

IT/파이썬 2021.04.25