반응형

전체 글 134

[clustering] tslearn의 TimeSeriesKmeans 사용방법

클러스터링은 Unsupervised Learning으로 데이터들의 군집을 예측하는 것이 목적이다. 일반적으로 kmeans는 각 데이터 사이의 distance를 구해서 군집마다 center에 가장 가까운 데이터 끼리의 패턴을 찾는다. 하지만 시계열로 되어있는 데이터를 클러스터링 해버리면 시간에 따른 정보가 사라지기 때문에 다른 방법이 필요하다. 그래서 이번에 소개할 TimeSeriesKmeans는 시간에 따른 군집화가 가능하기 때문에 위의 문제를 해결할 수 있는 알고리즘이며, tslearn 라이브러리로 쉽게 사용이 가능하다. 1. 설치 해당 명령어로 tslearn을 설치할 수 있다. !pip install tslearn 2. 데이터 생성 32row 1column의 array를 50개 생성한다. import..

강남대학교(KNU) 에브리타임 데이터 분석

2020년에 강남대 데이터사이언스 전공에서 졸업작품으로 진행했던 프로젝트 '강남대 에브리타임 데이터 분석' 프로젝트를 정리할겸 블로그에도 써보기로 했다.. 지금도 잘하지는 않지만 프로젝트 코드를 다시보니 답이없긴 하다 ㅋㅋ 변명을 하자면 그 당시에 나는 다른 전공에서 편입을 한거라 초보중에 초보였다.. 그래도 에브리타임 분석을 진행하시려는 분들에게 참고가 됐으면 하는 바램이다. 나는 강남대 에브리타임에서 '자유게시판' 그리고 '새내기게시판'을 크롤링해서 간단한 데이터분석을 진행하였고, 게시글을 각각 주제에 맞춰서 labeling을 한 후에 multi classification으로 주제를 예측하는 것이였다. * 참고로 크롤링 오래하면 에브리타임 측에서 차단을 먹인다. 코드는 여기있으니 참고하시길 https..

BlazePose: On-device Real-time Body Pose tracking 리뷰

pose estimation 프로젝트를 진행하다 mediapipe라는 프레임워크를 알게되었다. 나같은 경우에는 여러 사람을 multi tracking 하는게 아닌 한 사람만 감지하는 single tracking 이 필요했고 mediapipe blazepose는 나의 프로젝트에 딱 맞는 모델이였다. 또한 대중적인 모델인 posenet보다 더욱 뛰어난 성능을 보여 인상적인 모델이여서 논문을 찾아보게 되었다.. Abstract 구글에서 인간 포즈 추정의 lightweight convolutional neural network architecture blazepose를 제시하였다. 모바일 디바이스에 대한 실시간 inference를 위해 제작된 모델이며 한 사람에 대한 33개의 keypoint를 추정한다. 해당 ..

[텐핑] 광고 등록시 ##_revenue_list_upper_##, ##_revenue_list_lower_## 에러 해결

티스토리를 운영하면서 수익을 얻고싶던 블로거분들은 블로그 설정에서 '수익'을 클릭해본적이 있을 것이다. 텐핑은 다른 광고사이트와는 달리 회원가입만 하면 거의 모든사람들이 사용할 수 있다. 텐핑을 사용하시려는 블로거분들은 연동하고난 후에 '광고설정' 에서 오른쪽에 있는 버튼을 클릭하여 광고를 설정하려고 보니 아래 사진처럼 에러가 발생하는 분들이 계실것이다. 이것은 매우 간단하게 해결이 가능하다. 1. 블로그 설정에 '스킨편집' 에 들어가서 2. 'html 편집' 을 클릭한다. 3. html 코드가 있는 화면에서 ctrl+f 를 누른다음 's_list'를 검색한다. 그런 다음 아래 사진과 같이 , 각각 위 아래로 붙여준다. 4. 마지막으로 다시 텐핑 '광고 설정' 에 광고 연동버튼을 클릭하면 에러가 사라지고..

ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject 에러 해결

개발환경 - ubuntu 18.04 - pycham 2020.3.3 - python 3.7 1. Problem numpy가 아닌 다른 라이브러리를 사용하려는데 numpy에서 에러가 발생했다. 2. Reason numpy버전이 해당 라이브러리에 맞지 않지 않다는 뜻이다. 3. Solution 해결방법은 매우 간단한데 numpy를 새로 설치하거나 !pip uninstall numpy !pip install numpy 아에 최신버전으로 업그레이드 하는 방법이 있다. !pip upgrade numpy

Pycaret AutoML으로 ensemble 하는법

Kaggle이나 Dacon 같은 AI대회에 참여하다 보면 Ensemble 기법을 사용하여 점수를 끌어올려야 하는 상황이 발생한다. 이번에 소개할 라이브러리는 Pycaret AutoML 이다. 해당 라이브러리는 거의 모든 머신러닝 알고리즘을 사용하여 간편하게 Ensemble을 할 수 있다. Pycaret을 사용하기 위해 아래 라이브러리를 설치한다. !pip install pycaret[full] 그 다음 pycaret을 import 해준다. 만약 회귀로 진행할 경우 pycaret.regression으로 변경한다. from pycaret.classification import * 이제 데이터셋을 세팅해야 하는데 DataFrame 타입으로 input값을 주어야 한다. 나는 간단하게 주요 파라미터만 입력하였다...

[티스토리] 나의 티스토리가 구글에 검색되게 하는법

티스토리 블로그를 만들었다면 당연히 내 블로그를 다른 사람들이 많이 봐줬으면 하는 마음이 생길 것이다. 처음에 블로그를 생성하면 구글에는 검색되지 않는다. 그렇기 때문에 따로 등록을 해줘야하는데 지금부터 그 방법에 대해 알려드리겠다. 아래는 구글에서 만든 Google Search Console이다. 주소를 복사해서 접속하자 https://search.google.com/search-console/about Google Search Console Search Console 도구와 보고서를 사용하면 사이트의 검색 트래픽 및 실적을 측정하고, 문제를 해결하며, Google 검색결과에서 사이트가 돋보이게 할 수 있습니다. search.google.com 위와 같은 화면이 나올텐데 "URL 접두어"에 본인 블로그..

PoseNet keypoint로 skeleton 그리기

Pose Estimation model로 신체의 좌표를 추출하였을 때 제대로 추출되어있는지 확인하는 과정이 필요하다. 해당 코드는 PoseNet의 좌표를 matplotlib을 이용해 스켈레톤으로 그리는 코드이다. skeleton_plot 함수에 하나의 Frame에 대한 좌표값 -> sample 그리고 'ro' or 'bo' 같이 원하는 컬러를 입력하면 된다. -> color 다른 모델을 사용할때에는 각 관절에 맞게 코드 변환이 필요하다. def plot_line(a, b): # 관절마다 선긋기 if (a.any()> 0 and b.any()>0): plt.plot([a[0], b[0]], [a[1], b[1]], 'k-') def draw_skeleton(sample, pattern): keypoint ..

PoseNet keypoint로 신체 각도 구하기

해당 코드를 사용하기 위해서는 Pose Estimation model을 통하여 포즈의 좌표를 추출한 다음 원하는 신체 부위의 값을 입력해야 한다. posenet으로 예를 들어 왼쪽어깨의 각도를 추출하고 싶으면 p1 - left shoulder, p2 - left elbow, p3 - left hip 이처럼 변수에 좌표 xy값을 입력한다. angle_vec의 True, False 여부로 시계방향, 반시계방향으로 각도를 얻을 수 있다. def get_angle(p1 : list, p2 : list ,p3 : list, angle_vec : bool) -> float: """ 세점 사이의 끼인 각도 구하기 """ rad = np.arctan2(p3[1] - p1[1], p3[0] - p1[0]) - np.ar..

반응형