분류 전체보기(862)
-
Feature engineering ( 글 리뷰 및 내 생각 )
좋은 글인 것 같아서 구글 번역 및 저의 생각을 적을 수 있으면 적을까 합니다. (영문 글을 보시는 게 더 나을지도 몰라요ㅎㅎ) Feature Engineering이란 머신러닝 문제에 대해서 타겟에 대해서 최고로 잘 표현할 수 있게 가공되지 않은 데이터를 가공하는 것을 의미한다. 나는 데이터 분석에 앞에서 가장 중요한 작업이라고 생각한다. 일반적인 생각해 볼 수 있는것은 필요 없는 것을 빼거나 scale을 잘 조정을 한다던지, 결측치 제거, 미싱처리 같은 것이 있다고 한다. 적다 보니 preprocessing하고 비슷한 것 같기도 하고.... 모델 성능을 높이기 위해서 데이터 과학자들이 할 수 있는 방법 중의 하나라고 한다. 1. You can isolate and highlight key informa..
2019.05.06 -
행운에 속지마라 - 나심 니콜라스 탈레브
현재 전공 서적이나 논문 말고 읽고 있는 책은 행운에 속지 마라라는 책이다. 일단 인생공부에서 추천한 책이니, 최소한 한 달에 1독은 하려고 노력하고 있다... 논문도 읽고,,, 전공 서적도 읽고,,, 교양 책도 읽고,,, 전공부터 파라고 했는데,,, 아무튼... 일단 현재 part2를 읽고 있다. 나는 전공이 통계인데, 이 분은 통계에 대해서 비판적이라는 느낌이 굉장히 강한 것을 느꼈다. 예를 들어 블랙스완처럼 좀 처럼 보기 힘든 경우도 없는 게 아니라 있긴 있으니 통계라는 것에 대해 너무 신뢰하지 마라?라는 느낌을 받고 있다. part2에서 타자기 치는 원숭이에서 통계 분야 중에 있는 Data Mining 같은 것에 대한 이야기가 나온다. 나는 현재 Data Mining 을 통해 데이터를 정제하고 그..
2019.05.06 -
[변수 생성] 시간 데이터에서 어떤 변수를 새로 만들 수 있을까?
현재 이런 식으로 시간이 관련된 정보가 있다고 하자. 이러한 시간을 다룰 때 나는 아직 경험이 부족해서 막막하게 느껴진다. 머 두시간의 차이를 빼거나 아니면 사람별로 시간을 한개씩 shift(-1) (pandas)를 이용해서 빼서 이동 할 때 시간을 측정해본다던지, 여러가지로 시간을 잘 쓸 수 있을 것 같은데 아직 내공이 부족함을 느낀다. ## 기본적으로 뽑을 수 있는 정보들! * year: 연도 * month: 월 * day: 일 * hour: 시 * minute: 분 * second: 초 * microsecond: 마이크로초(micro seconds, 백만분의 일초) * weekday(): 요일 반환 (0:월, 1:화, 2:수, 3:목, 4:금, 5:토, 6:일) * strftime(): 문자열 반환..
2019.05.06 -
NN에서 Categorical Variables에 대해서는 어떻게 해야할까?
현재 Neural Network는 주로 이미지나 비디어 같이 Unconstructed Data에 대해서 Convolution을 사용해서 feature의 Parameter 개수를 축약하면서 Wide한 구조로 만들 수 데이터에 대한 Representation을 layer에서 잘 해줘서 된다고 생각한다. 하지만 현재 나는 주로 그런 Unconstructed Data 보다는 주로 tabular data에 대해서 많이 다루고 있다. 일단 Neural Network는 깡패이기 때문에 왠만하면 다른 알고리즘과 비슷한 성능이 잘 나온다. 하지만 비슷한 성능은 나오지만, 설명력이 좋지 못하니 굳이 tree-based 알고리즘과의 차이를 크게 내지 못하니, 굳이 사용해나 되기도 싶다. 최근에 보니 그래서 tree 기반과 ..
2019.05.06 -
Design Thinking에 대하여
Feature Engineering 이라는 medium 글을 읽다가 Design Thinking에 대한 내용이 있고 좋은 글을 또 추천해줘서 읽어보기로 했다. 여기서 Design Thinking 정의를 다음과 같이 한다. > Design Thinking is a design methodology that provides a solution-based approach to solving problems. Design Thinking이란 문제를 해결하기 위한 해결 기반 접근법을 제공하는 방법론이라는 소리인 것 같은데, 이런 방법들이 복잡한 문제에 대해서 prototyping and testing 에서 굉장히 실용적인 접근 방법이라고 합니다. 여기서는 the Hasso-Plattner Institute of ..
2019.05.06 -
threshold는 어떻게 정해야 할까? 개인적인 간단한 생각
우리가 어떤 모델링을 하고 나오는 값은 결국 확률 값으로 나오게 된다. 보통은 argmax 나 max f1 , 대충 0.5 같은 기준을 통해서 예측 타깃 값을 구한 다음 Confusion Matrix를 구해서 Accuracy 도 보고 Recall , Precision 같은 것을 확인해서 모델을 평가하게 된다. 그러면 이러한 기준이 되는 threshold(=cut off)는 어떻게 정해야 할까? 최근 겪고 있는 문제는 데이터가 imbalance 할 때 모델의 확률 값을 봤을 때 0의 경우에는 확실히 0이지만 1인 경우에는 0.01 ~ 0.001 이러한 부근에 있다. 보통 이러한 cut off 문제를 완화하기 위해 추천하는 방법은 undersampling, oversampling, sensitive cost..
2019.05.04 -
Andrew NG Regularization 중 인상깊었던 것만
## Edwidth https://www.edwith.org/deeplearningai2/joinLectures/20015 심층 신경망 성능 향상시키기 강좌소개 : edwith - 커넥트재단 www.edwith.org Regularization Overfitting 방지 Dropout 은 몇개를 제외함으로써 특정변수의 의존도를 줄여서 분산을 크게하는식 Input 에서는 거의 0.999 나 1 Overfitting 이 발생될것같은곳만 하기 이미지에서는 일반적으로 사용하나 일단 오버피팅이 나는지 체크해보고 하는 것이 좋음 이미지는 픽셀 단위고 데이터가 적어서 overfitting이 많이 일어나므로 한다고 함 l1 norm 거의 사용 x L2norm = weight decay 와 같은 효과 Dropout 도 ..
2019.05.04 -
[ Python ] 특정 조건을 만족하는 List 문자열만 뽑기
파이썬 카톡 단체방에 올라온 것이 있는데 , 유용한 것 같아서 공유합니다. 여기서 추가로 debugging package pysnooper도 써서 살을 보탭니다. 1. 어떤 List안에 있는 것을 다 포함하는 경우만 뽑고 싶을 때 어떻게 해야할까? import pysnooper ## 다 있어야 하는 경우 @ pysnooper.snoop() def word_check(word, check) : output = [elem in word for elem in check] return all(output) check = ["a","e","i","o","u"] words = ["abcded", "uoiea", "aaaaaoieoieuu","bcd"] [word for word in words if word_che..
2019.05.04 -
openpyxl을 활용하여 Python에서 엑셀 사용하기
일을 할 때 이제 결과물을 정리하기 위해 csv로 저장했다가 이 결과물을 잘 정리하기 위해 다른 엑셀에다가 붙이는 경우가 있었다. 그때는 R을 이용해서 형태를 최대한 유사하게 만든다음 서식복사를 이용해서 했었는데, 이걸 자동으로 어느정도 맞춰서 하는 방법은 없을까 고민을 하게 되었다. 그래서 openxpyxl , xlsxwriter 같은 패키지가 있는 것을 알게 되었다. 나중에 또 보고서를 만들어야 한다면, 저 2개의 패키지 중 괜찮은 것을 써서 최대한 자동화를 해야겠다! import openpyxl # import BarChart class from openpyxl.chart sub_module from openpyxl.chart import BarChart,Reference # Call a Workb..
2019.05.04 -
tensorflow eager gpu 할당 쓴만큼만 잡게하기.
그냥 돌리게 되면 한 노트북에서 쓰지도 않는 GPU를 다 잡아버린다. 아래 코드를 돌리게 되면 TEST 한다면서 GPU를 다 잡아서 다른 Notebook에서 할당이 안된다. tf.test.is_gpu_available() 그래서 아래와 같은 방법으로 진행하면 된다. 그냥 Session으로 할 때 gpu_option = tf.GPUOptions(allow_growth=True) config = tf.ConfigProto(log_device_placement=False , allow_soft_placement=True, gpu_options=gpu_option) sess = tf.Session(config=config) Eager로 할 때 import tensorflow as tf gpu_option = t..
2019.05.04 -
[ Python ] 중복 되는 배열 해결 하기
만약에 어떠한 길을 가는데, 도중 도중에 중복되는 것이 있다고 하자. 다음과 같이 어떻게 하면 만들 수 있을까? path = ["a","b","c","d","a","a","c","e","e", "o","e","a","a","b","b"] --> ['a', 'b', 'c', 'd', 'a', 'c', 'e', 'o', 'e', 'a', 'b'] 정답은! def dup_path_delete(path) : path_dir = [] for i, j in enumerate(path) : if i == 0 : path_dir.append(j) elif j != path[i-1] : path_dir.append(j) else : pass return path_dir path = ["a","b","c","d","a",..
2019.05.03 -
Linux 에서 폴더 , 파일 용량 확인하기 및 Trash에서 제거하기
** 유용하셨다면 공감 버튼 눌러주세요. ** ## 해당 경로에서 바로 용량 확인하기 du -h --max-depth=1 ## 폴더별 용량 sort해서 보기 du -hs * | sort -rh | head -5 ## To display the largest folders/files including the sub-directories, run: du -Sh | sort -rh | head -5 ## Find Out Top File Sizes Only find -type f -exec du -Sh {} + | sort -rh | head -n 5 ## 특정 홈 파일 찾기 find /home/ -type f -printf "%s %p\n" | sort -rn | head -n 5 ### 먼가 지우고 싶은데 ..
2019.05.02