데이터분석/데이터 셋

scikit-learn의 데이터셋 활용

상선약수64 2023. 10. 12. 12:23
반응형

sklearn.dataset에서 제공되는 데이터 셋들이 존재합니다. Scikit-learn 라이브러리는 파이썬의 머신러닝 라이브러리 중 하나인 분류, 회귀분석, 군집화, 의사결정나무 등의 다양한 머신러닝 알고리즘을 적용할 수 있는 다양한 데이터셋이 있습니다.

 

 

scikit-learn(사이킷런)은 
머신러닝 라이브러리 

참조 : https://scikit-learn.org/dev/index.html

 

scikit-learn: machine learning in Python — scikit-learn 1.4.dev0 documentation

Model selection Comparing, validating and choosing parameters and models. Applications: Improved accuracy via parameter tuning Algorithms: grid search, cross validation, metrics, and more...

scikit-learn.org

 

1. 사이킷런의 데이터 셋
  • 사이킷 런에서 제공되는 데이터 셋  입니다.
# 붓꽃데이터 
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.DESCR)

#와인데이터
from sklearn.datasets import load_wine
wine = load_wine()
print(wine.DESCR)

#유방암 진단 데이터
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
print(cancer.DESCR)

#대표 수종데이터 
from sklearn.datasets import fetch_covtype
covtype = fetch_covtype()
print(covtype.DESCR)

#뉴스그룹 텍스터 데이터
from sklearn.datasets import fetch_20newsgroups
newsgroups = fetch_20newsgroups(subset='all')
print(newsgroups.DESCR)

#로이터 말뭉치
from sklearn.datasets import fetch_rcv1
rcv = fetch_rcv1()
print(rcv.DESCR)

#숫자필기 이미지 데이터
from sklearn.datasets import load_digits
digits = load_digits()
print(digits.DESCR)

#올리베티 얼굴 사진 데이터
from sklearn.datasets import fetch_olivetti_faces
olivetti = fetch_olivetti_faces()
print(olivetti.DESCR)

 

2. 사이킷런의 데이터 구조

 

  • sklearn.utils.Bunch 라는 자료구조를 활용하는데,사전(dict)형 타입과 유사한 구조인  key-value 형식으로 구성되어 있습니다.  공통된 key는 아래와 같습니다.
  • data:  Numpy 배열로 구성된 데이터
  • target: Label 데이터로 Numpy 배열임
  • feature_names: Feature 데이터의 이름
  • target_names: Label 데이터의 이름
  • DESCR: 데이터 셋의 설명
  • filename: 데이터 셋의 파일 저장 위치 (csv)

 

  • iris데이터 셋 불러오고 DESCR , data키, feature_names 등을 사용하기 
from sklearn import datasets
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

iris = datasets.load_iris() #iris 데이터를 불러옴

print(iris.data[:5])

 

  • sklearn.utils.Bunch 자료구조를 데이터프레임 구조로 변경합니다.
df = pd.DataFrame(iris.data, columns=iris.feature_names)
print(df.head())

  • 레이블데이터를 데이터프레임에 추가합니다. 
df['target']=iris.target
print(df.head())

 

3. 사이킷런의 데이터 구조
  • iris데이터셋을 데이터프레임 구조로 변경하였고, 분석에 사용할 iris 데이터셋(df)을 이용하여 Sepal Length와 Sepal Width의 산점도를 시각화합니다. 산점도 결과 target(붓꽃 종)별로 구분된다는 것을 확인할 수 있습니다.
plt.figure(figsize=(10,7))
sns.scatterplot(x=df['sepal length (cm)'], y=df['sepal width (cm)'], hue=df['target'], palette="muted")
plt.title('Scatter plot by target')