기본 콘텐츠로 건너뛰기

라벨이 인코딩인 게시물 표시

[matplotlib]quiver()함수

[data analysis] 순서형 인코딩(Ordinal encoding)

순서형 인코딩(Ordinal encoding) 순서를 정할 수 있는 범주형 변수의 경우 정수 배열로 인코딩할 수 있습니다. 예를 들어 다음 자료는 3개의 변수와 두개의 샘플을 가집니다. 변수1 변수2 변수3 1 male from US uses Safari 2 female from Europe uses Firefox 각 변수에 따라 알파벳 순으로 순서를 지정할 수 있습니다. male과 female의 경우는 1, 0으로 변환됩니다. OrdinalEncoder() 클래스를 사용합니다. sklearn.preprocessing.OrdinalEncoder(categories="auto") 목록변수를 정수(배열형)로 인코딩하는 클래스 categories를 기본값(auto)으로 지정하면 고유값들을 올림차순으로 지정하고 각각에 대응하는 인덱스로 변환, 동일한 형태의 배열형태로 값을 지정하면 그 값에 대응하여 변환 odeco=preprocessing.OrdinalEncoder() X = [['male', 'from Europe', 'uses Safari'], ['female', 'from US', 'uses Firefox']] odeco.fit(X) print(odeco.categories_) [array(['female', 'male'], dtype=object), array(['from Europe', 'from US'], dtype=object), array(['uses Firefox', 'uses Safari'], dtype=object)] print(odeco.transform(X)) [[1. 0. 1.] [0. 1. 0.]] 위 결과와 같이 각 변수(열) 단위로 순서가 지정됩니다. new=odeco.t...

[data analysis] 라벨 인코딩( Label encoding)

라벨인코딩(Label ecoding) 자료의 라벨(label)들을 컴퓨터에 입력할 경우 컴퓨터의 경우는 라벨 자체의 값보다는 라벨 그룹내에서 각 라벨의 인덱스를 인식합니다. 이렇게 컴퓨터가 인식할 수 있도록 변환하는 과정을 인코딩(encoding) , 그 반대를 디코딩(decoding) 이라 합니다. 예를 들어 객체 x([-1, 4, 7])의 각 값의 인덱스 0, 1, 2가 됩니다. 그러므로 x의 인코딩 결과는 식 1과 같으며 라벨인코딩이라 합니다. 디코딩(값) 인코딩 (식 A3.2.3) -1 ⇒ 0 4 ⇒ 1 7 ⇒ 2 클래스표시행렬 과 같이 라벨 인코딩의 각 라벨은 데이터의 고유값들을 올림차순으로 정렬한 상태의 인덱스를 사용합니다. 이 고유값들로부터 생성되는 라벨 생성과 데이터를 그 라벨로 전환하는 과정은 LabelEncoder() 클래스를 사용하여 실행할 수 있습니다. 이 클래스의 대상은 1차원 구조의 벡터 데이터 입니다. sklearn.preprocessing.LabelEncoder() 각 변수의 인덱스를 사용하여 명목변수를 수치형으로 전환하는 클래스 x=sklearn.preprocessing.LabelEncoder() x.fit(객체) x.class : 오름차순으로 정렬한 클래스의 이름을 나타냄 x.transform(객체): 클래스의 인덱스를 반환, 인코딩 x.inverse_transform(변환된 객체): 원시데이터로 환원, 디코딩 np.random.seed(2) x=np.random.randint(-10, 10, 10) print(x) [-2 5 3 -2 1 8 1 -2 -3 -8] enc=sklpre.LabelEncoder().fit(x) print(enc.classes_) [-8 -3 -2 1 3 5 8] x1=enc.transform(x) print(x1) [2 5 4 2 3 6 3 2 1 0] print(enc.inverse_transform(x1)) [-...

[data analysis] 변수의 특성

변수의 특성 내용 변수의 종류 테이블 구조 기술통계량 찾기 목록변수의 인코딩(encoding) 비율 변수의 종류 측정, 설문, 연구 등에 의해 생성되는 모든 자료들이 변수가 될 수 있으며 기계학습에서는 특징(feature) 이라는 용어를 사용하기도 합니다. 데이터 셋에서 나타내는 모든 변수들을 포함하는 하나의 세트를 인스턴스 (instance) 또는 샘플(smaple) 이라고 합니다. 예를 들어 표 1은 는 이름, 나이, 성별, 키(height)라는 4개의 변수와 3개의 사건 즉, 인스턴스들을 포함하고 있습니다. 일반적으로 통계분석을 위한 자료는 표 1의 형식과 같이 각 변수는 열(column), 인스턴스는 행(row)으로 구성됩니다. 이러한 자료들의 모음을 데이터 셋(data set) 이라 합니다 표 1 데이터 셋의 일반적인 형태 이름 나이 성별 키 철수 10 남 153 영희 15 여 161 길동 21 남 181 표 2에서 나타낸 것과 같이 모든 변수들은 목록변수와 양적변수로 구분하며 또한 측정 수준에 따라 명목형, 순위형, 이산형, 연속형로 구분합니다. 표 2 변수의 종류 변수 내용 측정수준 목록변수(Categorical variables) 그룹/목록 표시 명목형(Nominal) 순위형(Ordinal) 양적변수(Quantitative variables) 수량/크기 표시 이산형(Discrete) 연속형(Continuous) 목록변수(Categorical variables) 중, 명목형(변수) 은 논리적 순서가 없는 질적 분류만이 가능한 변수입니다. 예로서 사과, 배, 수박의 과일을 분류하기 위해 각각 1,2,3의 숫자를 지정할 수 있습니다. 그러나 이 숫자들은 정성적 또는 정량적인 순위의 의미를 가질 수 없습니다. 순위형 변수 는 단지 순서를 부여하는 것만 가능합니다. 예로서 영화에 대...

문자와 문자열(Character & String)

문자와 문자열(Character & String) 인코딩과 디코딩 문자열의 생성과 인덱스 문자열은 불변(Immutable)객체 문자열 연산 대표적인 문자열 메소드 인코딩과 디코딩 컴퓨터에 입력된 문자 역시 2진수로 변환 합니다. 그러나 문자 자체가 수치형인 2진수로 직접적으로 변환될 수 없습니다. 그러므로 특정한 문자는 대응되는 고유한 정수값을 가지며 그 정수를 2진수로 변환합니다. 이 과정이 이루어지기 위해서는 입력되는 데이터가 문자 또는 숫자인지를 명확히 구분해야 합니다. C 등의 언어에서는 자료형을 미리 선언하는데 반해 파이썬은 작은 따옴표(' ')나 큰 따옴표(" ") 로 문자(character) 또는 문자열(string)임을 선언합니다. 이와같이 입력된 문자는 컴퓨터에서 2진수로 코드화되는데 이 과정을 인코딩(encoding) 이라 하며 반대로 인코딩의 결과인 코드포인트를 문자로 전환하는 과정을 디코딩(decoding) 이라 합니다. 특정한 문자에 대응하는 이진수 값을 코드 포인트(code point) 라고 합니다. 내장함수 ord(문자) 와 chr(정수) 를 사용하여 문자와 정수의 매칭관계를 확인할 수 있습니다. 다음은 문자 'c'에 매칭되는 정수와 이를 이진수로 나타낸 것입니다. ch='c' ord(ch) 99 chr(ord(ch)) 'c' 문자 'c'에 대응하는 정수와 2진수 값은 정수를 이진수를 반환하는 내장함수인 bin() 로 확인할 수 있습니다. bin(ord(ch)) '0b1100011' 하나의 글자를 문자(character) , 한 개 이상의 문자들의 집합을 문자열(string) 이라고 합니다. 다른 많은 프로그래밍언어에서는 문자와 문자열을 엄격히 구별하지만 파이썬에서 둘 모두 문자열(string)로 인식합니다. 그러므로 파이썬에서 문자나 문자열은 한 개 이상의 값들을 포...