텍스트마이닝이란? 텍스트에서 의미있는 정보를 얻는 것 기계가 의미있는 정보를 얻을 수 있도록. 기계가 사람처럼 했으면 좋겠으니까 기계친화적인 데이터로 바꿔줘야겠다. 사람 친화적 -> 기계 친화적 바꾸는 과정에서 한 번의 왜곡이 생긴다. 그 왜곡을 최소화 하기 위해 전처리에 대한 수고를 많이 한다. 텍스트를 정형화된 데이터로 변환하여 의미있는 정보를 얻어내는 것 최대한 얻을 수 있는 빈도수만 살려서 전처리를 하고 그 모델도 빈도수를 기반으로 분석하는 모델을 쓰겠다. 모델을 쓸 때는 순서정보를 반영하는 전처리를 쓰고 순서정보를 반영하는 시퀀스 모델을 쓰면 된다. 데이터 수집 (웹크롤링..? 잘되어있는 데이터를 가져와도 좋다. 주제에 따라서 다르다.) 웹크롤링: 웹(접근가능한 컴퓨터 집단)이라는 공간에서 데이..
전체 글
내공냠냠설치 !pip install googletrans==3.1.0a0 설치 시 버전을 지정해주는 이유는 References에서 볼 수도 있겠지만, 리스트를 전달하여 번역을 할 때 2022년 11월 기준으로 버전을 지정하지 않고 설치하였을 때, 오류가 발생하였기 때문입니다. 사용 from googletrans import Translator translator = Translator() translations = translator.translate(['The quick brown fox', '뛰다 over', 'the lazy dog'], dest='ko') for translation in translations: print(translation.origin, ' -> ', translation.text)..
정확도 F1 스코어 ROC_AUC 뒤에가 예측값 앞에는 맞췄다, 못맞췄다 예측 Negative Positive 실제 Negative TN FP Positive FN TP 정확도 Accuracy (TP+TN) / 전체 정밀도 Precision TP / (TP + FP) 재현율 Recall TP / (TP + FN) F1 스코어 2 * 정밀도 * 재현율 / 정밀도 + 재현율 정밀도와 재현율을 둘 다 TP가 분자에 있지만, Precision이 예측한 것이 분모, Recall이 실제인 것이 분모. ROC_AUC AUC : 면적으로 평가하겠다. FPR = 1- 특이도 = FP / (TN + FP) TPR = recall = sensitivity = TP / (FN + TP) p 와 n 둘 다 잘 맞추는지 확인하겠..
P(A): A라는 사건이 일어날 확률 조건부 확률 P(A|B) = P(B) / P(B|A)P(A) B가 일어난 조건 하에 A라는 사건이 일어날 확률 베이즈 정리가 쓸모가 있으려면 나머지 세 개가 구하기가 쉬워야 한다.
boosting 똑같이 bootstrap aggregating 을 할 건데, 이전의 학습기가 다음 학습기에 영향을 준다. 부스팅은 단순한 모델이어도 된다. 하나의 모델이 단순해져도 복잡한 문제를 더 잘 푼다. 단일 모델의 복잡도는 줄었는데 연계를 하니까 복잡한 문제를 잘 푼다. 모든 부스팅 모델은 단일 모델이 편향되지 않게 조절해야되는 것도, 개수에 대해서도 조절이 필요하다. 랜덤 포레스트와는 구조적인 차이로 인해 핸들링 접근법의 차이가 있다. 랜덤 포레스트는 깊게, 에이다부스트는 얕게 출처: https://ardino.tistory.com/
다른 Decision Tree 들을 합쳐서 만든 것 다른 쪽에 편향된 decision tree를 종합해서 오히려 일반화가 된다. 경향을 파악하게 된다. 서로 다른 decision tree를 만들기 위해서 무작위성을 도입한 것. Bagging : Bootstrap aggregating의 줄임말 Bootstrap: (신발 등을 끌어올리려고 만든 스트랩) 끌어올리다 (원본을 끌어올려서 사본을 만들다) aggregating: 합치다 서로 다른 데이터를 주입해서 서로 다른 학습기가 되도록 하는 것. 부트스트랩을 하고 -> 학습은 각각 하고 -> 모델을 합친다.(투표한다) 투표방식 1) 하드 보팅 -> 다수결 2) 소프트 보팅 -> 확률로 구해서 평균을 내서 threshold를 넘느냐 안 넘느냐. 회귀분석은 평균을..
분류에 관한 관점으로 설명. 결정트리와 스무고개의 다른 점은 Decision Tree 는 정답의 후보가 정해져있다 질문의 선택지도 정해져 있다. 창의적으로 질문할 수 없고 데이터가 가지고 있는 feature 값 중에 질문할 수 있다. 닮은 점은 계속 파티셔닝을 해나간다 좋은 질문인지 나쁜 질문인지에 대해 판단하는 것이 비슷하다 (질문을 던졌을 때 우리가 예측해야하는 것에 대한 기준으로 봤을 때 100% 양분은 아니지만 클래스를 기준으로 적절히 나눠지는가, 정보획득량이 큰 질문인지.) 좋은 질문의 기준 정보획득량이 큰 것 카테고리를 기준으로 명확하게 잘 구분해주는 질문 규칙 하나의 feature에 대해 하나의 질문을 할 수 있다. 기하학적으로는 축에 수직인 경계선을 그리는 것이다. (대각선 X, 곡선 X)..
머신러닝에서 convex는 매끄럽다는 것. linear regression 오차를 구하는 수식 1 / 1 + e^-wx 에서 왜 이것을 사용하느냐, 예측값과 실제값의 오차로 사용하면 non-convex 하다. 저 수식을 사용하면 convex 하게 gradient 계산이 되기 때문이다. 그러므로 저 수식을 사용한다. sigmoid 라고 부르는 이유는 거기에 속해있는 것 중 하나이기 때문에 그렇게 부르기도 한다. 다른 종류도 있다. 0.5가 아닌 다른 수치로도 threshold 를 조절할 수도 있다.