sklearn.preprocessing
9756 단어 빅 데이터
sklearn.preprocessing.
scale
(X, axis=0, with_mean=True, with_std=True, copy=True) X
표준 화 된 데이터 (배열 또는 희소 행렬)
axis
0 은 한 열 에 대해 같은 조작 을 하 는 것 을 나타 내 고, 1 은 한 줄 에 대해 같은 조작 을 하 는 것 을 나타 낸다.
with_mean
평균 값 중심 화 (true)
with_std
분산 규모 화 (true)
표준화 과정 은 두 단계 이다. 평균 값 의 중심 화 (평균 값 이 0 으로 변 함).방 차 의 규모 화.
from sklearn import preprocessing
import numpy as np
# , ,
x = np.array([[1., -1., 2.],
[2., 0., 0.],
[0., 1., -1.]])
# , ,
x_scale = preprocessing.scale(x)
x_scale
>>> array([[ 0. , -1.22474487, 1.33630621],
[ 1.22474487, 0. , -0.26726124],
[-1.22474487, 1.22474487, -1.06904497]])
# , 0,1
x_scale.mean(axis=0)
>>> array([ 0., 0., 0.])
x_scale.std(axis=0)
>>> array([ 1., 1., 1.])
# axis=1 ,axis=0
x_scale.mean(axis=1)
>>> array([ 0.03718711, 0.31916121, -0.35634832])
귀 일화
표준 화 는 특징 매트릭스 (각 열 은 같은 특징의 서로 다른 수치 로) 의 열 처리 데이터 에 따라 z - score 를 구 하 는 방법 을 통 해 견본 의 모든 특징의 값 을 같은 볼 륨 으로 변환 하 는 것 이다. 귀 일 화 는 특징 매트릭스 (각 줄 은 서로 다른 특징의 수치) 의 줄 처리 데이터 에 따라 샘플 벡터 가 점 승 연산 이나 다른 핵 함수 가 유사 성 을 계산 할 때 통 일 된 기준 을 가 지 는 데 목적 을 둔다. 즉, 모두 '단위 벡터' 로 전환 하 는 것 이다.
sklearn.preprocessing.
normalize
(X, norm=’l2’, axis=1, copy=True, return_norm=False) Normalization 각 샘플 을 norm 1 의 정상 분포 로 귀 일 화 했 습 니 다.
함수 normalize 는 배열 과 유사 한 데이터 세트 를 조작 하 는 간단 한 방법 을 제공 합 니 다. l1 또는 l2 패 러 다 임 (norm 매개 변수) 을 사용 합 니 다.
x = np.array([[1., -1., 2.],
[2., 0., 0.],
[0., 1., -1.]])
X_normalized = preprocessing.normalize(x, norm='l2')
print(X_normalized)
>>> [[ 0.40824829 -0.40824829 0.81649658]
[ 1. 0. 0. ]
[ 0. 0.70710678 -0.70710678]]
[0, 1] 로 귀 일화
x = np.array([[1., -1., 2.],
[2., 0., 0.],
[0., 1., -1.]])
min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform(x)
print(X_train_minmax)
>>> [[0.5 0. 1. ]
[1. 0.5 0.33333333]
[0. 1. 0. ]]
# scaler
min_max_scaler.scale_
array([ 0.5 , 0.5 , 0.33...])
min_max_scaler.min_
array([ 0. , 0.5 , 0.33...])
이치 화 - 특징의 이치 화 Binarizer
특징의 이치 화 는 수치 형의 특징 데 이 터 를 불 형식의 값 으로 바 꾸 는 것 을 말한다.실 용적 인 Binarizer 를 사용 할 수 있 습 니 다.기본 값 은 0 에서 2 값 으로 0 보다 큰 것 은 모두 1 로 표시 하고 0 보다 작은 것 은 모두 0 으로 표시 합 니 다.
binarizer = preprocessing.Binarizer().fit(x)
print(binarizer.transform(x))
>>> [[1. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]]
분류 특징 인 코딩
OneHotEncoder(categorical_features='all', dtype=<...>,
handle_unknown='error', n_values='auto', sparse=True)
카 테 고리 형 변 수 를 모델 에 직접 사용 하려 면 one - of - k 인 코딩 이나 one - hot 인 코딩 을 사용 할 수 있 습 니 다.이것들 은 모두 OneHotEncoder (독 열 코드) 를 통 해 이 루어 질 수 있 으 며 n 가지 값 이 있 는 특징 을 n 개의 이원 적 특징 으로 바 꿀 수 있다.기본적으로 n 값 은 데이터 세트 를 통 해 자동 으로 추 정 됩 니 다.예 를 들 어 데이터 에는 2 가지 성별, 3 가지 가능 한 곳, 4 가지 가능 한 브 라 우 저 가 집중 되 어 있다.그리고 인 코딩 할 때 9 열 에 있 는 array 배열 에서 앞의 2 개의 디지털 인 코딩 성별, 다음 3 개의 디지털 인 코딩 부분, 마지막 4 개의 디지털 인 코딩 브 라 우 저.분 산 된 특징 에 대해 서 는 기본적으로 원 - hot (독 열) 인 코딩 에 따라 이 분 산 된 특징 이 수치 가 있 는 만큼 이 특징 을 나타 낸다.분 산 된 특징 을 원 - hot 인 코딩 으로 사용 하면 특징 간 의 거리 계산 이 더욱 합 리 적 입 니 다.분 산 된 특징 이 one - hot 인 코딩 을 한 후에 인 코딩 후의 특징 은 모든 차원 의 특징 이 연속 적 인 특징 으로 볼 수 있다.연속 형 특징 에 대한 획일 화 방법 과 마찬가지 로 모든 1 차원 특징 을 획일 화 할 수 있다.예 를 들 어 귀 일 화 는 [- 1, 1] 또는 귀 일 화 는 평균 값 이 0 이 고 방 차 는 1 이다.
from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) # fit
enc.transform([[0, 1, 3]]).toarray() #
>>> [[1. 0. 0. 1. 0. 0. 0. 0. 1.]]
# , , ,
# , , 。
# OneHotEncoder n_values,
enc = preprocessing.OneHotEncoder(n_values=[2,3,4]) # 2 3 4
# enc n_values_ ,
print(enc.n_values_) #
[2 3 4]
feature_indices_: , i , feature_indices_[i] feature_indices_[i+1],sklearn ,
n_features+1。 ,feature_indices_ (0,3,8)。
0 , 0 3, 1 2; 1 ,
3 8, 5 7。 0 , 1-0=1 2-0=2;
1 , 5-3=2 7-3=4。 (1,2,2,4) 。
상례 에 따 르 면 데이터 행렬 은 4 * 3, 즉 4 개의 데이터, 3 개의 특징 차원 이다.
0 0 3 첫 번 째 열 은 첫 번 째 특징 차원 으로 두 가지 수치 가 있 는데 각각 0 과 1 이기 때문에 대응 하 는 인 코딩 방식 은 10, 01 이다.
1 1 0 두 번 째 열 은 두 번 째 특징 차원 으로 세 가지 수치 가 있 는데 각각 0, 1 과 2 이기 때문에 대응 하 는 인 코딩 방식 은 100, 010, 001 이다.
0 2 1 세 번 째 열 은 세 번 째 특징 차원 으로 네 가지 수치 가 있 는데 각각 0, 1, 2 와 3 이기 때문에 대응 하 는 인 코딩 방식 은 1000, 0100, 0010, 0001 이다.
1 0 2
인 코딩 할 인자 [0, 1, 3], 0 - > 10, 1 - > 010, 3 - > 0001 이 므 로 100001 입 니 다.
>>> genders = ['female', 'male']
>>> locations = ['from Africa', 'from Asia', 'from Europe', 'from US']
>>> browsers = ['uses Chrome', 'uses Firefox', 'uses IE', 'uses Safari']
>>> enc = preprocessing.OneHotEncoder(categories=[genders, locations, browsers])
>>> # Note that for there are missing categorical values for the 2nd and 3rd
>>> # feature
>>> X = [['male', 'from US', 'uses Safari'], ['female', 'from Europe', 'uses Firefox']]
>>> enc.fit(X)
OneHotEncoder(categorical_features=None,
categories=[...],
dtype=<...>, handle_unknown='error',
n_values=None, sparse=True)
>>> enc.transform([['female', 'from Asia', 'uses Chrome']]).toarray()
array([[1., 0., 0., 1., 0., 0., 1., 0., 0., 0.]])
부족 한 데 이 터 를 보충 하 다.
scikit - learn 모델 에 서 는 입력 한 데이터 가 수치 형 이 고 의미 가 있다 고 가정 합 니 다. 데이터 가 부족 한 것 이 NAN 이나 빈 값 으로 표시 되면 식별 하고 계산 할 수 없습니다.부족 한 값 을 보완 하려 면 평균치, 중위 수, 중수 등 을 사용 할 수 있다.Imputer 라 는 종 류 는 실현 할 수 있다.배열 에 nan 이 존재 하 는 지 여 부 는 np. isnan () 을 사용 하여 판단 할 수 있 습 니 다.
strategy = "constant" 일 때 fillvalue 는 상수 로 채 우 는 거 예요.
>>> import numpy as np
>>> from sklearn.impute import SimpleImputer
>>> imp = SimpleImputer(missing_values=np.nan, strategy='mean')
>>> imp.fit([[1, 2], [np.nan, 3], [7, 6]])
SimpleImputer(copy=True, fill_value=None, missing_values=nan, strategy='mean', verbose=0)
>>> X = [[np.nan, 2], [6, np.nan], [7, 6]]
>>> print(imp.transform(X))
[[4. 2. ]
[6. 3.666...]
[7. 6. ]]
#################
from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
imp.fit([[1, 2], [np.nan, 3], [7, 6]])
x = [[np.nan, 2], [6, np.nan], [7, 6]]
print(imp.transform(x))
#
#imp.fit(x)
#imp.transform(x)
[[4. 2. ]
[6. 3.66666667]
[7. 6. ]]
빈 칸 데이터
#
tem='1,2,3, ,3,4,5,6,7,8, ,9'
print tem
#
tem = tem.replace(' ','nan').split(',')
print tem
#
x = np.array(tem,dtype = float).reshape((4,3))
print x
1,2,3, ,3,4,5,6,7,8, ,9
['1', '2', '3', 'nan', '3', '4', '5', '6', '7', '8', 'nan', '9']
[[ 1. 2. 3.]
[ nan 3. 4.]
[ 5. 6. 7.]
[ 8. nan 9.]]
Imputer().fit_transform(x)
array([[ 1. , 2. , 3. ],
[ 4.66666667, 3. , 4. ],
[ 5. , 6. , 7. ],
[ 8. , 3.66666667, 9. ]])
Imputer () 의 인 자 는 다음 과 같 습 니 다. 1. missing_values: 기본 값 (default = "NaN") 2. strategy: string 문자 형식, optional (default = "mean"), 보통 mean (평균치), median (중위), most빈번 하 다 3. axis: 축방향, 기본 값 은 (열 방향, axis = 0), 줄 은 (axis = 1) help 명령 을 통 해 Imputer 에 대한 설명 을 표시 할 수 있 습 니 다. help(Imputer())
다항식 특징 생 성 PolynomialFeatures
입력 데이터 의 비 선형 특징 을 고려 하여 모델 의 복잡 도 를 높이 는 것 은 매우 유용 하 다.간단 하고 자주 사용 하 는 방법 은 여러 가지 특징 으로 특징의 고급 과 상호작용 항 을 얻 을 수 있다.
다음 코드 는 (X1, X2) 를 (1, X1, X2, X1 ^ 2, X1X2, X2 ^ 2) 로 바 꿉 니 다.
from (X1,X2,X3) to (1,X1,X2,X3,X1X2,X1X3,X2X3,X1X2X3). interaction_only = True 자체 제곱 없 음
>>> import numpy as np
>>> from sklearn.preprocessing import PolynomialFeatures
>>> X = np.arange(6).reshape(3, 2)
>>> X
array([[0, 1],
[2, 3],
[4, 5]])
>>> poly = PolynomialFeatures(2)
>>> poly.fit_transform(X)
array([[ 1., 0., 1., 0., 0., 1.],
[ 1., 2., 3., 4., 6., 9.],
[ 1., 4., 5., 16., 20., 25.]])
>>> X = np.arange(9).reshape(3, 3)
>>> X
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> poly = PolynomialFeatures(degree=3, interaction_only=True)
>>> poly.fit_transform(X)
array([[ 1., 0., 1., 2., 0., 0., 2., 0.],
[ 1., 3., 4., 5., 12., 15., 20., 60.],
[ 1., 6., 7., 8., 42., 48., 56., 336.]])
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
spark 의 2: 원리 소개Google Map/Reduce 를 바탕 으로 이 루어 진 Hadoop 은 개발 자 에 게 map, reduce 원 어 를 제공 하여 병렬 일괄 처리 프로그램 을 매우 간단 하고 아름 답 게 만 들 었 습 니 다.S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.