머신러닝을 위한 전제조건은 데이터이다. 많으면 많을 수록 좋다. 파이썬으로 데이셋을 만들어 데이터 분포도를 확인할 수 있다. 랜덤을 이용하여 많은 수를 만들고 그것을 이용해 숫자 분포도를 파악해 보려고 한다. 물론, 이것은 가상의 데이터를 만들어 활용하는 것이며, 머신러닝을 위한 데이터는 상황이나 분야마다 더 많아질 수도 있다.
데이터셋 만들기
먼저 데이터셋을 만들어 본다.
파이썬의 NumPy 라이러리와 random() 함수를 사용한다.
아래는 10에서 20사이의 랜던한 배열 200개를 만든 것이다.
import numpy
print('--------------------------------------------------')
vDataSet = numpy.random.uniform(10.0, 20.0, 200)
print("데이터셋 :", type(vDataSet), len(vDataSet), vDataSet)
print('--------------------------------------------------')
결과화면을 보자
일부분이지만, 200개의 랜덤하게 발생한 수가 만들어 졌다.
데이터형태는 배열임을 알 수 있다.
시각화하기
만들어진 데이터셋은 파이썬에서 시각화와 같은 히스토그램을 만들 수 있다.
시각화는 Matplotlib 라이브러리를 사용한다.
아래의 코드는 랜덤으로 만들어진 10에서 20사이의 200개의 랜덤으로 만들어진 수의 분포도를 시각화하여 볼 수 있다.
import numpy
import matplotlib.pyplot as plt
print('--------------------------------------------------')
vDataSet = numpy.random.uniform(10.0, 20.0, 200)
print("데이터셋 :", type(vDataSet), len(vDataSet), vDataSet)
plt.hist(vDataSet)
plt.show()
print('--------------------------------------------------')
결과를 보자.
랜덤으로 만들어진 200개의 수의 분포가 시각화로 표시되고 있다.
10에서 20사이의 랜덤하게 나온 수는 가로축
랜덤으로 나온 수의 분포도 즉, 비슷한 수의 갯수는 세로축이다.
각각 나온 수들이 최소 15개이상 25개 이하라는 것을 알 수 있다.
수와 갯수는 코드를 실행할 때마다다 다르게 나올 수 있다.
막대 수 정하기
시각화를 위한 세로막대의 수를 지정할 수도 있다.
Matplotlib.hist() 함수에서 숫자 100을 입력해 주면 막대의 수는 100개가 표시된다.
import numpy
import matplotlib.pyplot as plt
print('--------------------------------------------------')
vDataSet = numpy.random.uniform(10.0, 20.0, 200)
print("데이터셋 :", type(vDataSet), len(vDataSet), vDataSet)
plt.hist(vDataSet, 100)
plt.show()
print('--------------------------------------------------')
좀 더 상세한 결과를 볼 수 있다.
막대의 수가 더욱 자세하게 나눠지기 때문에 수의 범위 또한 디테일하게 줄어들었다.
디테일하고 상세하게 나눠진 수 때문인지 막대그래프의 수는 증가했지만, 비슷한 수의 갯수는 줄어든 것을 볼 수 있다.
시각화를 위한 Matplotlib 라이브러리를 사용했음에 주목하자.
데이터를 분석함에 있어 텍스트를 이용하는 방법도 있지만 시각화 또한 중요하다.
데이터 분포도는 분류작업이나 전처리에도 유용하며 결과를 도출하는데 필요한 유사도를 파악할 수도 있다.
'programming > AI' 카테고리의 다른 글
머신러닝 오렌지3 시작하기 위젯의 사용 데이터테이블과 산점도 연결하기 Using File DataTable and Scatter Plot Widget in Orange3 (0) | 2021.08.11 |
---|---|
오렌지3 머신러닝 툴 다운로드와 실행 하는 방법 (0) | 2021.08.10 |
머신러닝 오렌지3 공부하는 방법 orange3 (0) | 2021.08.09 |
머신러닝 오렌지3 코딩없이 기계학습과 데이터마이닝 가능 (0) | 2021.08.08 |
머신러닝 백분위수 구하기 백분율도 알아야 이해가 되더라. (0) | 2021.08.06 |
댓글