24,000 카테고리의 클래스를 인코딩하는 방법은 무엇입니까?


10

저는 현재 유전체학에 대한 로지스틱 회귀 모델을 연구하고 있습니다. 공변량으로 포함하려는 입력 필드 중 하나는 genes입니다. 약 24,000 개의 알려진 유전자가 있습니다. 전산 생물학에서이 수준의 가변성을 갖는 많은 특징이 있으며 수십만 개의 샘플이 필요합니다.

  • 내가 LabelEncoder()그 24K 유전자 라면
  • 그리고 OneHotEncoder()그들 ...

2.2GHz 쿼드 코어 i7 CPU에서 24,000 개의 컬럼으로 케 라스 교육 시간이 합리적이지 않습니까?

그렇다면 인코딩에 대한 다른 접근 방식이 있습니까?

어떻게 든이 기능에 내 모델 레이어를 전용으로 사용해야합니까?

이것은 24K 입력 노드가 필요하다는 것을 의미합니까?


VAE를 사용하여 표현을 배우지 않겠습니까? 나는 유전자 서열 학습에서 (NLP에서와 같이) 표현이 단순한 PCA와 비교할 때 많은 의미가 있다고 생각합니다.
n1tk

답변:


10

예, 24k 기능에서 one-hot 인코딩을 사용하려면 24k 입력 노드가 필요합니다. 그러나 이것은 Keras (또는 다른 딥 러닝 라이브러리)에는 문제가되지 않습니다. 자연어 처리는 종종 같은 구장에서 어휘 크기의 단어에 대해 원 핫 인코딩을 사용합니다.

"심층"모델을 사용하는 경우 숨겨진 레이어 중 하나가 데이터의 차원을 줄여야합니다. 별도의 전처리 단계는 일반적으로 필요하지 않습니다.

훈련 시간은 무리가 없어야합니다.


위생 검사 감사합니다.
HashRocketSyntax 1

나는 당신이 sklearn의 PCA가 아닌 레이어를 언급 한 것을 보았습니다. 자동 엔코더를 차원 축소의 형태로 추천 하시겠습니까?
HashRocketSyntax 1

2
Keras를 사용한다고 언급 했으므로 신경망을 사용하고 있습니까? 네트워크 어딘가에 입력보다 노드 수가 적은 레이어가 있으면 네트워크가 자동으로 차원 축소를 수행합니다. 하나의 회귀 출력 만 있다고 가정합니다. 따라서 간단한 방법 중 하나는 입력 레이어 (d = 24k), 하나 이상의 중간 레이어 (d = 1k 또는 이와 유사한 것)와 출력 레이어 (d = 1)를 갖는 것입니다.
C. Yduqoli

NLP에서는 비슷한 크기의 레이어가 일반적이지만 CPU에서 최신 NLP 모델을 교육하는 것은 일반적으로 무리가 있지만 강력한 GPU는 실제로 작은 '장난감'모델 이외의 모든 것에 대한 NLP의 테이블 스테이크입니다. 반면에 물리적 GPU와 클라우드 GPU 모두 쉽게 사용할 수 있기 때문에 큰 장벽이 아닙니다.
Peteris September

6

범주 형 변수에 대한 엔티티 임베드 ( 원래 pager )가 여기에 매우 적합한 접근법입니다. 여기 또는 여기를 읽으 십시오 . 실제로 여기저기서 코드 조각을 넣고 완전한 실행 구현을했습니다.이 git repo를 참조하십시오.. 신경망을 사용하여 매우 높은 기본 범주 형 변수를 쉽게 처리합니다. 나는 OHE의 장단점을 나열하지 않을 것이고, 당신은 단지 구글이지만, 주요 단점 중 하나입니다. 매우 높은 기본 범주 형 변수를 가질 때 불필요하게 지형 공간이 급격히 증가하고 있다고 생각합니다. 그리고 더 중요한 것은 OHE는 내 지식으로는 그러한 관계가 존재한다면 범주 간의 의미 론적 관계를 설명하지 않습니다! 그러나 엔터티 임베딩은 NLP의 단어 임베딩에 대한 개념으로, 범주를 인코딩하기 위해 학습되는 가중치는 범주 내 관계를 잠재적으로 캡처 할 수 있습니다.


3

일반적으로, 그 유전자의 수는 훨씬 더 작은 의미있는 특징으로 감소되어야합니다. 그런 다음 축소 된 기능 세트를 모델에서 사용할 수 있습니다. 예를 들어, PCA (Principal Component Analysis)는 가장 일반적인 감소 기술 중 하나이며 유전자 발현 데이터에 사용 되었습니다 .

" : 원칙, 관행 및 기회 기계 생물학 및 의학 데이터 통합을위한 학습" Zitnika 등으로. 유전자에 대한 다양한 기능 엔지니어링 기술을 다룹니다.


감사합니다. 기능 공간을 관련 유전자 (및 wgs의 조절 영역) 수로 줄입니다.
HashRocketSyntax 1

PCA, 매니 폴드, 군집 / 밀도, 신경망의 종류 등 어떤 차원의 차원 축소가 권장되는지 묻는 것이 너무 멍청한 질문입니까?
HashRocketSyntax 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.