10 분 동안 sklearn 설치, 데이터 획득, 데이터 예비 처리
sklearn 은 기계 학습 에서 자주 사용 하 는 python 제3자 모듈 로 자주 사용 하 는 기계 학습 알고리즘 을 봉인 했다. 그 중에서 1. 분류 (Classification) 2. 회귀 (Regression) 3. 집합 (Clustering) 4. 데이터 강 차원 (Dimensionality reduction) 5. 상용 모델 (Model selection) 6. 데이터 예비 처리 (Preprocessing)본 고 는 sklearn 의 설치 부터 설명 하고 얕 은 것 에서 깊 은 것 으로 들 어가 점차 sklearn 에 착수 할 것 이다.
sklearn 홈 페이지:http://scikit-learn.org/stable/index.html sklearn API:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.preprocessing
skleran 설치
sklearn 의 현재 버 전 은 0.19.1 의존 패키지: Python (> = 2.6 또는 > = 3.3) NumPy (> = 1.6.1) Scipy (> = 0.9)
pip 설치, terminal 직접 실행 하면 됩 니 다.
pip install -U scikit-learn
Anaconda 를 사용 하여 설치 하고 Anaconda 를 추천 합 니 다. NumPy, Scipy 등 상용 도구 가 내장 되 어 있 기 때 문 입 니 다.
conda install scikit-learn
설치 완료 후 python 에서 버 전 을 검사 할 수 있 습 니 다. import sklearn 은 잘못 보고 하지 않 으 면 설치 에 성 공 했 음 을 표시 합 니 다.
>>import sklearn
>>sklearn.__version__
'0.19.1'
데이터 가 져 오기
기계 학습 알고리즘 은 대량의 데 이 터 를 필요 로 한다. skleran 에서 데 이 터 를 얻 을 때 보통 두 가지 방식 을 사용한다. 하 나 는 자체 데이터 세트 를 사용 하고 다른 하 나 는 데이터 세트 를 만 드 는 것 이다.
데이터 세트 가 져 오기
sklearn 은 많은 데이터 세트 를 가지 고 알고리즘 을 테스트 분석 할 수 있 습 니 다. 자신 이 데이터 세트 를 찾 는 고민 을 없 앨 수 있 습 니 다. 그 중에서 아이 리 스 데이터 세트: loadiris () 핸드폰 디지털 데이터 세트: loaddigitals () 당뇨병 데이터 세트: loaddiabetes () 유방암 데이터 세트: loadbreast_cancer () 보스턴 집 값 데이터 세트: loadboston () 체력 훈련 데이터 세트: loadlinnerud()
여기 서 아이 리 스 데이터 세트 를 예 로 들 어 데이터 세트 를 가 져 옵 니 다.
# sklearn
import sklearn.datasets as sk_datasets
iris = sk_datasets.load_iris()
iris_X = iris.data #
iris_y = iris.target #
데이터 세트 만 들 기
skleran 의 샘플 생 성기 (samples generator) 를 사용 하면 데 이 터 를 만 들 수 있 습 니 다. sklearn. datasets. samplesgenerator 에는 샘플 데 이 터 를 대량으로 만 드 는 방법 이 포함 되 어 있 습 니 다.
분류 문제 로 샘플 데 이 터 를 만 듭 니 다.
import sklearn.datasets.samples_generator as sk_sample_generator
X,y=sk_sample_generator.make_classification(n_samples=6,n_features=5,n_informative=2,n_redundant=3,n_classes=2,n_clusters_per_class=2,scale=1,random_state=20)
for x_,y_ in zip(X,y):
print(y_,end=": ")
print(x_)
매개 변수 설명: nfeatures: 특징 개수 = ninformative() + n_redundant + n_repeated n_informative: 다 중 정보 특징의 개수 nredundant: 불필요 한 정보, informative 특징의 무 작위 선형 조합 nrepeated: 중복 정보, 랜 덤 추출 ninformative 와 nredundant 특징 nclasses: 분류 분류 nclusters_per_class: 어떤 분 류 는 몇 개의 cluster 로 구 성 된 randomstate: 랜 덤 피 드, 실험 을 n 반복 가능classes*n_clusters_per_class 는 2 ^ n 보다 작 거나 같 아야 합 니 다.informative
인쇄 결과:
0: [ 0.64459602 0.92767918 -1.32091378 -1.25725859 -0.74386837]
0: [ 1.66098845 2.22206181 -2.86249859 -3.28323172 -1.62389676]
0: [ 0.27019475 -0.12572907 1.1003977 -0.6600737 0.58334745]
1: [-0.77182836 -1.03692724 1.34422289 1.52452016 0.76221055]
1: [-0.1407289 0.32675611 -1.41296696 0.4113583 -0.75833145]
1: [-0.76656634 -0.35589955 -0.83132182 1.68841011 -0.4153836 ]
데이터 세트 구분
기계 학습 과정 은 흔히 데이터 세트 를 구분 해 야 하 며 훈련 집, 테스트 집 으로 나 뉜 다.sklearn 의 modelselection 은 우리 에 게 데이터 세트 를 구분 하 는 방법 을 제공 했다.아이 리 스 데이터 세트 를 예 로 들 어 구분 하 다.
import sklearn.model_selection as sk_model_selection
X_train,X_test,y_train,y_test = sk_model_selection.train_test_split(iris_X,iris_y,train_size=0.3,random_state=20)
매개 변수 설명: arrays: 샘플 배열, 특징 벡터 와 태그 test 포함size: float - 얼마나 큰 비중 을 얻 는 테스트 샘플 (기본 값: 0.25) int - 몇 개의 테스트 샘플 을 얻 었 는 지 trainsize: 같은 testsize random_state: int - 랜 덤 피 드 (피 드 고정, 실험 재현 가능) shuffle - 분할 전에 데 이 터 를 섞 을 지 여부 (기본 True)
뒤에 저희 훈련 모델 이 사용 하 는 데이터 세트 는 모두 이 를 바탕 으로 합 니 다.
데이터 전처리
우 리 는 왜 데이터 예비 처 리 를 해 야 합 니까?일반적으로 실제 생활 에서 우리 가 얻 은 데이터 에는 쓸모없는 정보 가 많 고 심지어 잘못된 정보 도 존재 한다. 기계 학습 에서 'Garbage in, Garbage out' 이 라 고 하 는데 데이터 의 건강 정 도 는 알고리즘 결과 에 큰 영향 을 미친다.데이터 예비 처 리 는 불필요 하고 혼 란 스 러 운 소스 데 이 터 를 응용 요 구 를 만족 시 킬 수 있 도록 하 는 것 이다.물론 데이터 전처리 방법 만으로 도 수천 자의 글 을 쓸 수 있 고, 여기 서 는 몇 가지 기본 적 인 데이터 전처리 방법 만 언급 할 수 있다.skleran 에서 데 이 터 를 미리 처리 하 는 package: preprocessing 을 제공 합 니 다. 직접 가 져 오 면 됩 니 다.
import sklearn.preprocessing as sk_preprocessing
다음 의 예 는 [1, - 1, 2], [0, 2, - 1], [0, 1, - 2] 를 초기 데이터 로 사용 합 니 다.
데이터 의 귀 일화
mean 및 std 기반 표준화
scaler = sk_preprocessing.StandardScaler().fit(X)
new_X = scaler.transform(X)
print(' mean std :',new_X)
인쇄 결과:
mean std :
[[ 1.41421356 -1.33630621 1.37281295]
[-0.70710678 1.06904497 -0.39223227]
[-0.70710678 0.26726124 -0.98058068]]
일정 구간 내 feature 로 규범화range 는 데이터 규범화 의 범위 이다.
scaler = sk_preprocessing.MinMaxScaler(feature_range=(0,1)).fit(X)
new_X=scaler.transform(X)
print(' ',new_X)
인쇄 결과:
[[1. 0. 1. ]
[ 0. 1. 0.25 ]
[ 0. 0.66666667 0. ]]
데이터 의 정규 화
먼저 견본 의 p - 범 수 를 구 한 다음 에 이 견본 의 모든 요 소 는 이 범 수 를 나 누 어야 한다. 그러면 최종 적 으로 모든 견본 의 범 수 를 1 로 나 누 어야 한다.
new_X = sk_preprocessing.normalize(X,norm='l2')
print(' ',new_X)
인쇄 결과:
[[0.40824829 -0.40824829 0.81649658]
[ 0. 0.89442719 -0.4472136 ]
[ 0. 0.4472136 -0.89442719]]
작은 매듭
본 고 는 sklearn 의 설치, sklearn 이 데이터 세트 를 가 져 오고 데이터 세트 를 만 드 는 기본 적 인 방법 을 소개 하 며 데이터 예비 처리 에 자주 사용 되 는 방법 을 소개 했다.다음 편 에 서 는 sklearn 을 어떻게 사용 하여 특징 추출 을 하 는 지, sklearn 을 사용 하여 기계 학습 고전 알고리즘, 모델 의 보존 등 내용 을 중점적으로 설명 할 것 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.