728x90
반응형
SMALL
https://scikit-learn.org
대표적인 파이썬 머신러닝 모듈
다양한 머신러닝 알고리즘 제공
다양한 샘플 데이터를 제공
머신러닝 결과를 검증하는 기능을 제공
BSD 라이센스이기 때문에 무료로 사용 및 배포가 가능

 1. LinearSVC

* 클래스를 구분으로 하는 분류 문제에서 각 클래스를 잘 구분 하는 선을 그려주는 방식을 사용하는 알고리즘
* 지도학습 알고리즘을 사용하는 학습 전용 데이터와 결과 전용 데이터를 함께 가지고 있어야 사용이 가능한 알고리즘

 

learn_data = [[0,0], [1,0], [0,1],[1,1]]
learn_label = [0,0,0,1]

svc = LinearSVC()

svc.fit(learn_data, learn_label)

학습이 완료되면 이런식으로 나온다.
임의의 검증 데이터

test_data = [[0,0], [1,0], [0,1],[1,1]]

test_label = svc.predict(test_data)

test_label

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
머신러닝  (0) 2023.06.13
728x90
반응형
SMALL

1. 머신 러닝

인공지능: 인공(Artificial) + 지능(interlligence)

개발자에 의한 인공지능, 데이터에 의한 인공지능
머신러닝: 데이터를 기반으로 학습(learning) 하는 기계

딥러닝: 깊은(deep) 신경망 구조의 머신러닝

 

1-1. 배경

  • 과거 컴퓨터로 데이터를 읽어들이고, 데이터 안에서 특징을 학습하여 패턴을 찾아내는 작업 -> 패턴인식
  • 데이터를 대량으로 수집 처리할 수 있는 환경이 갖춰짐으로 할수 있는 일들이 많아짐
  • 머신러닝은 데이터로 부터 특징이나 패턴을 찾아내는 것이기 때문에 데이터가 가장 중요함

 

1-2. 정의

  • 인공지능의 한 분야로 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
  • "무엇(x)으로 무엇(y)를 예측하고 싶다"의 f(함수)를 찾아내는 것
  • y: 출력변수(종속변수), ex) 키 나이 를 통해
  • x: 입력변수(독립변수), ex) 강아지, 개 를 구분하는
  • f(모형): (머신러닝 알고리즘)

 

2. 머신러닝으로 할 수 있는 것

 

2-1. 회귀(Regression)

  • 시계열(시간적인 변화를 연속적으로 관측한 데이터) 데이터 같은 연속된 데이터를 취급할 때 사용하는 기법 예) 과거 주식 추세를 학습해서 내일의 주가를 예측하는 시스템을 개발
 

2-2. 분류(Classification)

  • 주어진 데이터를 클래스 별로 구별해 내는 과정으로 데이터와 데이터의 레이블값을 학습시키고 어느 범주에 속한 데이터인지 판단하고 예측 ex) 스팸메일인지 아닌지 구별해주는 시스템을 개발

2-3. 클러스터링(Clustering)

  • 분류와 비슷하지만 데이터에 레이블(정답 데이터 / 종속변수)이 없음
  • 유사한 속성들을 갖는 데이터를 일정한 수의 군집으로 그룹핑하는 비지도 학습 ex) sns 데이터를 통해 소셜 및 사회 이슈를 파악

 

 

 

3. 학습

3-1. 지도 학습

  • 문제와 정답을 모두 학습시켜 예측 또는 분류하는 문제
  • y=f(x)에 대하여 입력 변수(x)와 출력 변수(y)의 관계에 대하여 모델링 하는 것
  • y에 대하여 예측 또는 분류하는 문제
 

3-2. 비지도 학습

  • 출력변수(y)가 존재하지 않고, 입력변수(x)간의 관계에 대해 모델링 하는 것
  • 군집분석: 유사한 데이터끼리 그룹화
  • PCA: 독립변수들의 자원을 축소화

3-3. 강화 학습
*  수 많은 시뮬레이션을 통해 현재의 선택이 미래에 보상이 최대가 되도록 학습

 

728x90
반응형
LIST

'머신러닝, 딥러닝' 카테고리의 다른 글

GPU 사용법  (0) 2023.07.06
tensor의 변환  (0) 2023.07.06
pytorch(scalar, vector, matrix, tensor)  (0) 2023.07.06
Iris DataSet  (0) 2023.06.14
사이킷 런( Scikit-learn )  (1) 2023.06.14
728x90
반응형
SMALL

웹 크롤링(web crawling)이란 웹 페이지에서 원하는 데이터를 추출하는 기술을 말합니다. 파이썬은 크롤링에 필요한 라이브러리가 다양하게 존재하기 때문에 웹 크롤링을 쉽게 수행할 수 있습니다. 이번 포스트에서는 간단한 웹 크롤링을 위한 대표적인 파이썬 라이브러리로서 Requests, BeautifulSoup, 그리고 Selenium에 대해 알아봅니다.

  1. Requests

Requests는 HTTP 요청을 수행하고 응답을 가져오는 작업을 쉽게 처리할 수 있는 파이썬 라이브러리입니다.

설치 방법:

 
pip install requests

Requests 사용 예제:

python
import requests

url = 'https://www.example.com'
response = requests.get(url)
print(response.text)
  1. BeautifulSoup

BeautifulSoup은 HTML, XML 문서에서 원하는 데이터를 손쉽게 추출하기 위한 파이썬 라이브러리입니다. 주로 크롤링을 위해 Requests와 함께 사용됩니다.

설치 방법:

 
pip install beautifulsoup4

BeautifulSoup 사용 예제:

python
import requests
from bs4 import BeautifulSoup

url = 'https://www.example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 웹페이지에서 원하는 태그를 찾아 데이터 추출
h1_tag = soup.find('h1')
print(h1_tag.text)
  1. Selenium

Selenium은 웹드라이버를 사용하여 웹 페이지를 로드하며 자바스크립트로 렌더링된 동적 페이지에서도 데이터를 크롤링할 수 있는 라이브러리입니다.

설치 방법:

 
pip install selenium

Selenium 사용 예제:

python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

url = 'https://www.example.com'
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get(url)

# 웹페이지에서 원하는 요소를 찾아 데이터 추출
search_box = driver.find_element_by_name('input-name') # name 속성으로 input 찾기
search_box.send_keys('검색어')  # 텍스트 입력
search_box.send_keys(Keys.RETURN)  # 엔터 키 누르기

# 크롤링 이후 웹드라이버 종료
driver.quit()

결론: 웹 크롤링 워크플로우는 대부분 특정 URL에 요청을 보내고 응답을 받는 과정(Requests), 그리고 HTML, XML에서 원하는 데이터를 추출하는 과정(BeautifulSoup)으로 구성됩니다. 자바스크립트를 사용한 동적 페이지의 경우에는, 웹 페이지의 상호작용을 통해 데이터가 로드되기 때문에 웹드라이버를 이용한 크롤링이 필요한데, 이 때 Selenium을 사용합니다. 이를 통해 원하는 데이터를 쉽게 가져올 수 있으며, 필요에 따라 다양한 분야에 활용할 수 있습니다.

728x90
반응형
LIST
728x90
반응형
SMALL

파이썬에서 지도 데이터를 시각화하고 싶다면, Folium이라는 라이브러리를 사용하면 쉽고 빠르게 지도 위에 데이터를 표현할 수 있습니다. 이 포스트에서는 이러한 멋진 라이브러리에 대해 소개하고, 기본적인 사용법인을 알아봅니다.

  1. Folium 이란?

Folium은 Leaflet.js 기반의 파이썬 라이브러리로, 동적 지도 시각화를 지원합니다. 지도 위에 데이터를 표시하고, 마커, 원, 선, 등 다양한 형태로 데이터를 나타낼 수 있습니다. 또한, 지도의 스타일을 쉽게 변경할 수 있고, GeoJSON과 TopoJSON 같은 공간 데이터 포맷을 지원합니다.

   2. 설치 및 사용 방법

Folium 설치는 간단하게 다음과 같이 패키지 관리자를 이용하여 설치할 수 있습니다.

 
pip install folium

Folium을 사용하여 지도를 생성하고, 마커를 추가하는 기본적인 예제입니다.

python
import folium

# 지도 생성(center는 중심 좌표, zoom_start는 초기 확대 비율)
map = folium.Map(location=[37.565711, 126.978090], zoom_start=12)

# 마커 생성 (위도, 경도를 입력하고, popup에 표시될 설명을 추가)
marker = folium.Marker([37.565711, 126.978090], popup='덕수궁')

# 마커를 지도에 추가
marker.add_to(map)

# 지도를 HTML 파일로 저장
map.save('example_map.html')

위 예제에서는 덕수궁을 지도 중앙에 위치시키고, 마커를 생성한 뒤, 이를 지도에 추가하고 있습니다. 지도를 원하는 HTML 파일로 저장하면 완료입니다!

   3. Folium 문서 및 참고 자료

Folium이 처음이라면, 공식 문서를 참조하여 다양한 기능과 사용법을 확인할 수 있습니다. 공식 문서에는 예제들과 함께 사용법이 자세하게 설명되어 있어, 초보자도 쉽게 이해할 수 있습니다.

지도 데이터를 다루는 일이 있으면 꼭 사용해보시길 추천드립니다.

728x90
반응형
LIST
728x90
반응형
SMALL

워드클라우드는 텍스트 데이터에서 단어의 빈도수를 시각화하는 독특한 방법입니다. 이번 포스트에서는 파이썬 워드클라우드 라이브러리를 사용하여 워드클라우드를 생성하는 방법에 대해 살펴봅니다.

  1. 워드클라우드 라이브러리 설치

파이썬에서 워드클라우드를 생성하려면 아래 명령을 사용하여 필요한 패키지를 설치해야 합니다.

 
pip install wordcloud
  1. 필요한 라이브러리 불러오기

아래 코드는 워드클라우드 생성에 필요한 라이브러리들을 불러옵니다.

python
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
  1. 텍스트 데이터 처리하기

데이터 준비가 끝났다면 워드클라우드를 생성하기 전에 텍스트 데이터를 처리해야 합니다. 예를 들면, 텍스트에서 특수문자를 제거하거나 불용어를 삭제하는 등의 작업을 수행할 수 있습니다.

python
text = """예제 텍스트 데이터"""
stopwords = set(STOPWORDS)
processed_text = ' '.join([word for word in text.split() if word.lower() not in stopwords])
  1. 워드클라우드 설정 및 생성

아래 코드에서는 워드클라우드의 옵션을 설정하고 생성할 예정입니다. 여기에서는 빈도수, 색상, 크기, 위치 등을 지정할 수 있습니다.

python
wordcloud = WordCloud(
    background_color='white', max_words=100, width=800, height=800
).generate(processed_text)
  1. 워드클라우드 시각화하기

마지막으로 matplotlib를 사용하여 워드클라우드를 시각화합니다.

python
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.savefig('wordcloud.png')
plt.show()

이렇게 간단한 코드 몇 줄만으로 파이썬의 워드클라우드 라이브러리를 사용해 워드클라우드를 만들고 시각화할 수 있습니다. 이를 통해 텍스트 데이터의 패턴을 직관적으로 파악할 수 있으며 다양한 형태의 데이터를 분석하는 데 도움이 됩니다.

728x90
반응형
LIST
728x90
반응형
SMALL

자연어 처리의 기본 개념과 Python을 이용한 한국어 텍스트 분석 라이브러리인 'KoNLPy'를 사용한 예제들을 소개합니다.

  1. 자연어 처리(Natural Language Processing) 자연어 처리(NLP)란 일상에서 사용하는 자연 언어에 대한 컴퓨터의 이해와 처리를 목표로 하는 과학입니다. 컴퓨터는 자연어를 직접 이해할 수 없기 때문에 NLP에서는 자연어의 의미 분석해 컴퓨터가 처리할 수 있도록 변환합니다.
  2. 토크나이징(Tokenizing) 토크나이징은 문장을 의미 있는 가장 작은 단위인 토큰으로 나누는 과정입니다. 토크나이징의 성능은 어떻게 토크나이징을 수행하는지에 따라 차이가 날 수 있습니다.
  3. 형태소 분석(Morphological Analysis형태소 분석은 자연어 문장을 형태소라는 최소 의미 단위로 분할하고 각 형태소의 품사를 판별 과정입니다. 한국어 형태소 분석 라이브러리로는 'KoNLPy'가 있습니다.
  4. KoNLPy 활용 KoNLPy는 기본적인 한국어 자연어 처리를 위한 파이썬 라이브러리로, 다양한 형태소 분석기를 제공합니다 (Hannanum, Kkma, Komoran, OKT 등). 아래 예제는 KoNLPy를 사용한 텍스트 분석을 보여줍니다.
python
from konlpy.tag import Okt
okt = Okt()
text = '아버지가 방에 들어가신다okt.pos(text)

위 코드는 아버지가 방에 들어가신다 라는 문장의 형태소를 분석하고 출력하는 예제입니다. 결과는 아래와 같습니다.

[('아버지', 'Noun'), ('가', 'Josa'), ('방', 'Noun'), ('에', 'Josa'), ('들어가신다', 'Verb')]

728x90
반응형
LIST

+ Recent posts