언어/파이썬

머신러닝with파이썬4강(1)_사이킷런 활용하기, 사이킷런에서 제공하는 데이터셋

디지털랫드 2024. 3. 7. 15:44

사이킷런 활용하기


사이킷런은 파이썬을 활용해서 머신러닝을 편하고 쉽게 사용할 수 있게 하는 도구입니다.
영상과 함께 자세히 알아봅시다.

이번 시간 정리


사이킷런이란?    

  • 파이썬을 활용한 머신러닝 도구 
  • 데이터 분석(예측)을 위한 간단하고 효율적인 도구
  • 누구나 쉽게 다양한 상황에서 활용 가능
  • 오픈소스

사이킷런으로 할 수 있는 것
- 분류 (ex. 스팸메일)
- 회귀 (ex. 가격)
- 클러스터링 (ex. 고객 세그먼트)
- 차원축소 (ex. 변수(컬럼)의 수를 줄임)
- 모델 선택 (ex. 모델 튜닝, 평가)
- 전처리 (ex. 데이터 가공/변환)


아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

데이터 불러오기

  • 노드3에서 만든 'final_modudak.csv'와 동일한 데이터 불러오기
 
실행 완료
[3]:
메뉴가격호수칼로리할인율할인가원산지살찔까요고민012345678
[인기]아이펠치킨 16000 11 1200.0 0.5 8000.0 국내산 no 무조건먹자
닭강정 15000 12 1500.0 0.2 12000.0 브라질 yes 먹지말자
간장치킨 14000 9 1600.0 0.2 11200.0 국내산 yes 먹지말자
마늘치킨 14000 9 1800.0 0.2 11200.0 국내산 yes 먹지말자
파닭 14000 11 1300.0 0.2 11200.0 브라질 yes 먹지말자
승일양념치킨 13000 10 1400.0 0.2 10400.0 국내산 yes 먹지말자
양념반후라이드반 13000 10 1300.0 0.2 10400.0 국내산 yes 먹지말자
황금후라이드 12000 10 1000.0 0.2 9600.0 국내산 no 무조건먹자
[베스트]풀잎치킨 9900 10 1000.0 NaN NaN 국내산 no 무조건먹자
코드 실행
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_13/1457483752.py in <module>
      1 # 데이터 변경
----> 2 data.loc[2,'원산지'] = '미국'

NameError: name 'data' is not defined
 
코드 실행
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_13/685249817.py in <module>
      1 # 활용할 데이터 선택
----> 2 df = data[['가격', '호수', '칼로리', '원산지', '살찔까요']].copy()
      3 df

NameError: name 'data' is not defined

 

 

사이킷런에서 제공하는 데이터셋


이번 시간에는 사이킷런에서 제공하고 있는 데이터셋을 불러오도록 하겠습니다.

이번시간 정리


1. 피처 이름 확인

  • dataset.feature_names

2. 타겟 확인

  • dataset.target

3. 데이터 확인

  • dataset.data[:2] * 2세트만 확인시

4. 데이터 프레임 만들기
-변수명= pd.DataFrame(data=dataset.data , columns=dataset.feature_names)

5. 타겟 추가

  • cancer_df['target'] = dataset.target

6. 데이터셋 확인

  • load_로 시작하는 함수를 이용해 데이터를 불러올 수 있다.
  • import sklearn.datasets
  • sklearn.datasets.__all__ * _언더바가 연달아 2개

※TIP
입문자일수록 셀마다 변수명.head()로 하나씩 확인하면서 넘어가는 것을 추천드립니다.

1. 유방암 데이터


아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

 
 
실행 완료
[41]:
 
 
 
실행 완료
[40]:
['age', 'sex', 'bmi', 'bp', 's1', 's2', 's3', 's4', 's5', 's6']
 
 
실행 완료
[39]:
array([151.,  75., 141., 206., 135.,  97., 138.,  63., 110., 310., 101.,
        69., 179., 185., 118., 171., 166., 144.,  97., 168.,  68.,  49.,
        68., 245., 184., 202., 137.,  85., 131., 283., 129.,  59., 341.,
        87.,  65., 102., 265., 276., 252.,  90., 100.,  55.,  61.,  92.,
       259.,  53., 190., 142.,  75., 142., 155., 225.,  59., 104., 182.,
       128.,  52.,  37., 170., 170.,  61., 144.,  52., 128.,  71., 163.,
       150.,  97., 160., 178.,  48., 270., 202., 111.,  85.,  42., 170.,
       200., 252., 113., 143.,  51.,  52., 210.,  65., 141.,  55., 134.,
        42., 111.,  98., 164.,  48.,  96.,  90., 162., 150., 279.,  92.,
        83., 128., 102., 302., 198.,  95.,  53., 134., 144., 232.,  81.,
       104.,  59., 246., 297., 258., 229., 275., 281., 179., 200., 200.,
       173., 180.,  84., 121., 161.,  99., 109., 115., 268., 274., 158.,
       107.,  83., 103., 272.,  85., 280., 336., 281., 118., 317., 235.,
        60., 174., 259., 178., 128.,  96., 126., 288.,  88., 292.,  71.,
       197., 186.,  25.,  84.,  96., 195.,  53., 217., 172., 131., 214.,
        59.,  70., 220., 268., 152.,  47.,  74., 295., 101., 151., 127.,
       237., 225.,  81., 151., 107.,  64., 138., 185., 265., 101., 137.,
       143., 141.,  79., 292., 178.,  91., 116.,  86., 122.,  72., 129.,
       142.,  90., 158.,  39., 196., 222., 277.,  99., 196., 202., 155.,
        77., 191.,  70.,  73.,  49.,  65., 263., 248., 296., 214., 185.,
        78.,  93., 252., 150.,  77., 208.,  77., 108., 160.,  53., 220.,
       154., 259.,  90., 246., 124.,  67.,  72., 257., 262., 275., 177.,
        71.,  47., 187., 125.,  78.,  51., 258., 215., 303., 243.,  91.,
       150., 310., 153., 346.,  63.,  89.,  50.,  39., 103., 308., 116.,
       145.,  74.,  45., 115., 264.,  87., 202., 127., 182., 241.,  66.,
        94., 283.,  64., 102., 200., 265.,  94., 230., 181., 156., 233.,
        60., 219.,  80.,  68., 332., 248.,  84., 200.,  55.,  85.,  89.,
        31., 129.,  83., 275.,  65., 198., 236., 253., 124.,  44., 172.,
       114., 142., 109., 180., 144., 163., 147.,  97., 220., 190., 109.,
       191., 122., 230., 242., 248., 249., 192., 131., 237.,  78., 135.,
       244., 199., 270., 164.,  72.,  96., 306.,  91., 214.,  95., 216.,
       263., 178., 113., 200., 139., 139.,  88., 148.,  88., 243.,  71.,
        77., 109., 272.,  60.,  54., 221.,  90., 311., 281., 182., 321.,
        58., 262., 206., 233., 242., 123., 167.,  63., 197.,  71., 168.,
       140., 217., 121., 235., 245.,  40.,  52., 104., 132.,  88.,  69.,
       219.,  72., 201., 110.,  51., 277.,  63., 118.,  69., 273., 258.,
        43., 198., 242., 232., 175.,  93., 168., 275., 293., 281.,  72.,
       140., 189., 181., 209., 136., 261., 113., 131., 174., 257.,  55.,
        84.,  42., 146., 212., 233.,  91., 111., 152., 120.,  67., 310.,
        94., 183.,  66., 173.,  72.,  49.,  64.,  48., 178., 104., 132.,
       220.,  57.])
 
 
실행 완료
[38]:
array([[ 0.03807591,  0.05068012,  0.06169621,  0.02187235, -0.0442235 ,
        -0.03482076, -0.04340085, -0.00259226,  0.01990842, -0.01764613],
       [-0.00188202, -0.04464164, -0.05147406, -0.02632783, -0.00844872,
        -0.01916334,  0.07441156, -0.03949338, -0.06832974, -0.09220405]])
 
 
실행 완료
[37]:
agesexbmibps1s2s3s4s5s601234...437438439440441
0.038076 0.050680 0.061696 0.021872 -0.044223 -0.034821 -0.043401 -0.002592 0.019908 -0.017646
-0.001882 -0.044642 -0.051474 -0.026328 -0.008449 -0.019163 0.074412 -0.039493 -0.068330 -0.092204
0.085299 0.050680 0.044451 -0.005671 -0.045599 -0.034194 -0.032356 -0.002592 0.002864 -0.025930
-0.089063 -0.044642 -0.011595 -0.036656 0.012191 0.024991 -0.036038 0.034309 0.022692 -0.009362
0.005383 -0.044642 -0.036385 0.021872 0.003935 0.015596 0.008142 -0.002592 -0.031991 -0.046641
... ... ... ... ... ... ... ... ... ...
0.041708 0.050680 0.019662 0.059744 -0.005697 -0.002566 -0.028674 -0.002592 0.031193 0.007207
-0.005515 0.050680 -0.015906 -0.067642 0.049341 0.079165 -0.028674 0.034309 -0.018118 0.044485
0.041708 0.050680 -0.015906 0.017282 -0.037344 -0.013840 -0.024993 -0.011080 -0.046879 0.015491
-0.045472 -0.044642 0.039062 0.001215 0.016318 0.015283 -0.028674 0.026560 0.044528 -0.025930
-0.045472 -0.044642 -0.073030 -0.081414 0.083740 0.027809 0.173816 -0.039493 -0.004220 0.003064

442 rows × 10 columns

 
코드 실행
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_13/2946282778.py in <module>
      1 # 타겟 추가하기
----> 2 cancer_df['target'] = dataset.target
      3 cancer_df.head()

NameError: name 'cancer_df' is not defined
 
 
실행 완료
[35]:
['clear_data_home',
 'dump_svmlight_file',
 'fetch_20newsgroups',
 'fetch_20newsgroups_vectorized',
 'fetch_lfw_pairs',
 'fetch_lfw_people',
 'fetch_olivetti_faces',
 'fetch_species_distributions',
 'fetch_california_housing',
 'fetch_covtype',
 'fetch_rcv1',
 'fetch_kddcup99',
 'fetch_openml',
 'get_data_home',
 'load_boston',
 'load_diabetes',
 'load_digits',
 'load_files',
 'load_iris',
 'load_breast_cancer',
 'load_linnerud',
 'load_sample_image',
 'load_sample_images',
 'load_svmlight_file',
 'load_svmlight_files',
 'load_wine',
 'make_biclusters',
 'make_blobs',
 'make_circles',
 'make_classification',
 'make_checkerboard',
 'make_friedman1',
 'make_friedman2',
 'make_friedman3',
 'make_gaussian_quantiles',
 'make_hastie_10_2',
 'make_low_rank_matrix',
 'make_moons',
 'make_multilabel_classification',
 'make_regression',
 'make_s_curve',
 'make_sparse_coded_signal',
 'make_sparse_spd_matrix',
 'make_sparse_uncorrelated',
 'make_spd_matrix',
 'make_swiss_roll']

2. 당뇨병 데이터


아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

 
실행 완료
 

※ 아래 '#코드 입력하기' 영역에 직접 입력해 보세요.

강의 영상을 통해 정답 코드를 확인 하실 수 있습니다.

 
실행 완료