본문 바로가기

분류 전체보기

(174)
Python 머신러닝, 한글 감정분석을 위한 리뷰 분석 : 프로그램부터 실전적용까지 (rhinoMorph이용 한국어 감정분석 관련하여 가장 많이 사용되고 있는 Naver Sentiment Movie Corpus에 대해 알아보겠습니다. 테스트 파일은 아래와 같습니다. 1. 데이터를 원하는 곳에 위치 리뷰는 data_text에 점수는 data_senti에 입력합니다. data_senti의 값이 1이면 긍정입니다. import os def read_data(filename): with open(filename, 'r', encoding="cp949") as f: data = [line.split('\t') for line in f.read().splitlines()] data = data[1:] return data data = read_data(r'C:\Users\HANA\PycharmProjects\HANATOU..
데이터 전처리하기 : 레이블 인코딩 (Label Encoding), 원-핫 인코딩(One-Hot Encoding), get_dummies()를 Pandas에서 사용하기 데이터 전처리(Data Processing)는 ML알고리즘만큼 중요합니다. ML 알고리즘을 데이터에 기반하고 있기 때문에 어떤 데이터를 입력으로 가지느냐에 따라 결과도 크게 달라질 수 있습니다. (Garbage In, Garbage Out) 기본적으로 결손값, 즉 NaN, Null 값은 허용되지 않습니다. 따라서 이러한 Null 값은 고정된 다른 값으로 변환해야 합니다. Null 값을 어떻게 처리해야 할지는 경우에 따라 다릅니다. 피처 값 중 Null 값이 얼마 되지 않는다면 피처의 평균값 등으로 간단히 대체할 수 있습니다. 하지만 Null 값이 대부분이라면 오히려 해당 피처는 Drop 하는 것이 좋습니다. 가장 결정이 힘든 부분이 Null값이 일정 수준 이상 되는 경우입니다. 정확히 몇 퍼센트까지를 일..
데이타 결측치(누락값, 결측값) 처리하기 : fillna (ffill, bfill), dropna, isnull 데이타, 머신러닝 분석은 결측값 해결부터 시작합니다. 머신러닝의 모든 데이타는 숫자를 통해 행해지고 결측값 즉 NaN, NAN, nun과 같은 방법으로 표기되는 결측값을 처리해야 하는 문제가 있습니다. 모든 Machin Learning 프로그래머들은 해당 작업을 해야 하는 문제에 봉착합니다. 이를 처리하는 방법에 대해 알아보겠습니다. 1. 누락값 확인하기 누락값을 사용하기 위해 numpy에서 누락값을 불러옵니다. from numpy import NAN, NaN, nan 누락값은 0, ' '와 같은 값과는 다른 개념이라는 것에 주의해야 합니다. 누락값은 말 그대로 데이터 자체가 없다는 것을 의미합니다. 아래값을 실행하면 모든 값은 False입니다. 즉 그 어떤것과도 같지 않습니다. print(NaN == ..
K-Means 알고리즘의 원리와 이해 한판에 배워보기 K-Means 클러스터링은 머신러닝에서는 가장 대중적인 비지도학습(Unsupervised) 클러스터링 방법 중 하나입니다. 각 데이타그룹의 중심점에 대표되는 K숫자를 정의하는 것으로 각 클러스터의 중심점을 대표하는 중심점을 찾는 방법입니다. 이 중심점이 바로 Centroid입니다. Python에서 K-Means가 작동하는 방법에 대해 알아보겠습니다. 실전에서도 바로 사용이 가능합니다. 1. K-Means 알고리즘 작동 방식 데이터를 처리하기 위해 K-Means 알고리즘은 모든 클러스터의 데이타를 무작위로 선택하여 중심점이 되는 데이타를 구한 후 반복 계산을 통해 중심 위치를 최적화하는 방식을 취합니다. 이 중심점이 안정화되었다고 하면 더이상 클러스터링을 할 수 없다고 판단하고 다른 중심점을 임의적으로 선..
머신러닝, 클러스터 가우시안 가상데이터 생성하는 make_blobs를 이용한 K-means 실습 (Elbow Method 사용) make_blobs 함수는 가우시안 정규분포를 이용해 가상 데이터를 생성합니다. make_blobs는 일반적으로 클러스링 가상데이터를 생성하는데 사용합니다. 클러스터 알고리즘인 K-Means의 실습을 편하게 하기 위해 사용하면 도움이 됩니다. make_blobs 함수의 인수와 반환값은 다음과 같다. Input Parameter n_samples : 표본 데이터의 수, 디폴트 100 n_features : 독립 변수의 수, 디폴트 20 centers : 생성할 클러스터의 수 혹은 중심, [n_centers, n_features] 크기의 배열. 디폴트 3 cluster_std: 클러스터의 표준 편차, 디폴트 1.0 center_box: 생성할 클러스터의 바운딩 박스(bounding box), 디폴트 (-10..
Python에서 SpaCy를 사용한 텍스트 분류를 위한 기계 학습 SpaCy 는 인기 있고 사용하기 쉬운 Python의 자연어 처리 라이브러리입니다. 정확도와 속도가 매우 높은 라이브러리이지만 상대적으로 새로운 NLP 라이브러리이기 때문에 NLTK 만큼 널리 채택되지 않고 있습니다. Spacy 수행을 위해 Data Sample은 아래와 같습니다. 1. Data 알아보기 error_bad_lines=False Option을 이용하여 문제가 되는 Line을 무시한다. import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt import base64 import string import re from collections import Counter from nltk...
실전에서 바로 사용하는 Oracle 정규 표현식 : REGEXP_REPLACE, REGEXP_SUBSTR을 위한 응용편 정규식을 잘 사용하면 SQL과 각 종 프로그램의 연산속도를 감소시키며 프로그램을 단순화 시킬 수 있습니다. 시간이 걸리더라도 한번씩 사용해보면 좋습니다. . 하나의 문자를 의미합니다. ".*"하면 한개이상의 문자 즉 모든 문자를 의미합니다. $ 끝을 의미한다. AAA$ 하면 AAA로 끝나는 것을 의미한다. \ 특수 문자를 문자로 인식할때 사용합니다. ¦ 여러 식 중에서 하나를 선택합니다. SQL의 OR조건과 같습니다. "abc¦adc"는 abc와 adc 문자열을 모두 포함한다. ^ 문자 클래스 안의 문자를 제외한 나머지를 선택한다. 예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않습니다. [^a-z]는 알파벳 소문자로 시작하지 않는 모든 문자를 의미한다. [] "["과 "]" 사이의 문자 중 ..
Pandas에서 시간, 날짜 다루기 - to_datetime만 잘 다루면 끝! Pandas를 하다 보면 언젠가 고민하게 되는 날짜와 시간 다루기에 대해 알아보겠습니다. Pandas에서는 일자시간타입(datatime64)데이터를 이용하여 여러 데이터를 다룰 수 있는데요. to_datatime 함수만 잘 다루면 사실 끝날 수 있습니다. 간단한 예제를 보시려면 이곳을 확인하세요. 실습을 위해 아래와 같은 기본 데이타는 아래와 같습니다. import pandas as pd df = pd.DataFrame({'Birth':['2019-01-01 09:10:00', '2019-01-08 09:20:30']}) print(df.info()) 아래와 같이 같이 object형으로 구성이 되어 있습니다. RangeIndex: 2 entries, 0 to 1 Data columns (total 1 c..
Pandas, read_excel()을 이용한 데이타 읽은 후 K-Means에 적용하기: 실습 Python Pandas의 read_excel()함수를 이용하여 엑셀 쉬트의 데이타를 읽어와서 K-means에 넣는 방법에 대해 알아보겠습니다. read_excel()에 자주 사용하는 option에 대해 알아보겠습니다. 1. (sheet_name='Sheet1', header=2, index_col='prod_sale'): sheet_name은 불어올 쉬트의 이름, header는 label의 위치로 0부터 시작합니다. 2이면 3번째에 header가 존재함을 의미, index_col은 인덱스로 사용할 컬럼명을 의미합니다. 2. (dtype={'PROD_BRND_NM': str, 'TOTAL':float}): dtype으로 각 컬럼의 데이터 형태를 지정하게 됩니다. 여기서는PROD_BRND_NM는 str형,..
텍스트 분석 실습 - Mercari Price Suggestion Challenge 관련 Raw Data를 내려받습니다. 약 100메가 정도됩니다. [링크] 데이타 전처리 관련 Library를 import하고 피처 타입과 Null여부를 확인하기 위해 info()를 실행합니다. from sklearn.linear_model import Ridge, LogisticRegression from sklearn.model_selection import train_test_split, cross_val_score from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer import pandas as pd mercari_df = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOU..
쿠팡파트너스 링크, 검색 누락 방지 프로그램 다음 쿼리는 쿠팡파트너스 링크가 N포털에서 누락되는 현상을 방지하기 위해 만들어진 링크 변환 생성 프로그램입니다. 네이버의 숏URL을 변환을 위한 Client ID/Secret키를 변경하여 사용하세요. 사용하기 전 쿠팡파트너스 웹사이트 목록에 "http://sp.moyeola.com/"을 꼭 추가해 주세요. import requests import time import os, sys import hmac import json import hashlib import urllib from urllib import parse def Coupang_link(access_key, secret_key, link): AD_LINK = Get_CoupangAPI_Deeplink(access_key, secret_key..
Light GBM(LGBM)의 개요와 파라미터 정의에 대해 LightGBM(LGBM) 개요? Light GBM은 Kaggle 데이터 분석 경진대회에서 우승한 많은 Tree기반 머신러닝 알고리즘에서 XGBoost와 함께 사용되어진것이 알려지며 더욱 유명해지게 되었습니다. GMB(Gradient Boosting Machine) 이란? 틀린부분에 가중치를 더하면서 진행하는 알고리즘 Gradient Boosting 프레임워크로 Tree기반 학습 알고리즘입니다. 기존의 다른 Tree기반 알고리즘과 다른점은 Tree구조가 수평적으로 확장하는 다른 Tree기반 알고리즘에 비해 수직적으로 확장을 하는것에 있습니다. 즉, Light GBM은 leaf-wise인 반면 다른 알고리즘은 level-wise입니다. leaf-wise의 장점은 속도가 빠르다는 것이 가장 큰 장점입니다. ..
토픽 모델링 [Topic Modeling] - LDA기법 소스포함 토픽 모델링(Topic Modeling)이란 문서 집합에 숨어 있는 주제를 찾아내는 것입니다. 많은 양의 문서가 있을 때 사람이 이 문서를 다 읽고 핵심 주제를 찾는 것은 매우 많은 시간이 소모됩니다. 이 경우에 머신러닝 기반의 토픽 모델링을 적용해 숨어 있는 중요 주제를 효과적으로 찾아낼 수 있습니다. 사람이 수행하는 토픽 모델링은 더 함축적인 의미로 문장을 요약하는 것에 반해, 머신러닝 기반의 토픽 모델은 중심 단어를 통해 함축적으로 추출합니다. 머신러닝 기반의 토픽 모델링의 대표는 LSA(Latent Semantic Analysis)와 LDA(Latent Dirichlet Allocation)이 있습니다. LDA기법에 대한 예시를 보겠습니다. LDA는 Count기반의 벡터화만 적용이 됩니다. fro..
Top Python Libraries for Data Science, Data Visualization & Machine Learning OpenSource의 세계는 위대하다. 그리고 알고 싶은게 너무 많다. [하기 출처] Top Python Libraries for Data Science, Data Visualization & Machine Learning - KDnuggets This article compiles the 38 top Python libraries for data science, data visualization & machine learning, as best determined by KDnuggets staff. www.kdnuggets.com Data 1. Apache Spark Stars: 27600, Commits: 28197, Contributors: 1638 Apache Spark - A unified an..
[TIP] Jupyter에서 다른 폴더의 library, import 호출하기 Jupyter에서 Python 프로그램시 다른 폴더의 Library를 호출해서 이용해야 하는 경우 아래와 같이 진행하면 합니다. 1. import os, sys 합니다. import os, sys 2. 호출하고자 하는 Library가 위치한 곳을 sys.path.append()에 입력합니다. module_path = os.path.abspath(os.path.join('..')) if module_path not in sys.path: sys.path.append(module_path+"\\Common_Module") 3. 2번 아래쪽에 import하여 호출하면 끝 import CMNLP as CMNLP
Pandas 기초 통계를 위한 groupby 응용 - nunique()와 matplot로 그래프 간단하게 그리기 Pandas에서 기초 통계를 위한 groupby 응용, 직접 실행해 보면 어떻게 나오는지 확인이 가능합니다. '빈도수'를 확인하기 위한 nunique()를 사용합니다. 즉 Unique한 Valu를 구할 때 유용합니다. 무엇보다 맨 하단의 예제를 통해 matplotlib를 통해 Pandas의 데이타를 간단한 명령어로 시각화하는 방법의 예시를 잘 기억해두세요. import pandas as pd # print("\n-- \n", "") pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep='\t') print("\n-- pandas_DF.columns\n"..