질문 1:
이제 데이터가 400,000개가 넘습니다. 이 데이터에 대한 모델을 구축하려면 일종의 기계 학습 분류 알고리즘을 사용해야 합니다. 제가 직면한 문제는 데이터가 너무 커서 한 번에 읽을 수 없다는 것입니다. 이에 대해 질문하고 싶습니다. 데이터를 처리하는 방법은 무엇입니까?
질문 2:
sklearn 교차 검증에 대한 질문이 있습니다. 10,000개의 훈련 데이터가 있는 경우 교차 검증 원칙에 따라 KFold 방법을 사용하여 이 10,000개의 훈련 데이터 세트를 n개의 훈련 그룹으로 나눌 수 있습니다(기차 데이터는 0.7을 차지함). 지금은 이해가 되지 않습니다. 즉, 첫 번째 그룹의 훈련 세트에 대해 fit()을 수행한 다음 테스트 세트에 대해 예측 검증을 수행하여 예측 정확도를 얻습니다. 정확성? 다음 훈련 세션에 영향을 미치나요? 또한 마지막으로 훈련된 모델이 다음 fit() 함수에 사용됩니까?
저는 최근 데이터 마이닝과 빅데이터 분석을 공부하고 있습니다. 1번 문제에 대해 참고할 아이디어가 있습니다. 한 번에 읽을 수 없기 때문에 분산 데이터 모델을 구축하고 데이터를 일괄적으로 읽어서 결정하면 됩니다. 주소 데이터노드(변수 이름일 수 있음), 네임노드(이름과 주소에 해당하는 테이블)를 만든 다음 데이터를 얻을 때 먼저 네임노드의 주소(변수가 데이터에 해당함)를 확인합니다. 필요) 그런 다음 주소에 액세스하여 데이터를 처리합니다. 저는 초보이기 때문에 개인적인 생각을 말씀드리는 것 뿐입니다. 답변이 독특하지 않고 참고용일 뿐입니다. 마음에 들지 않으시면 비판하지 마세요.
400,000은 많지 않고 최대 몇 기가바이트입니다...
메모리가 실제로 8G만큼 작더라도 여전히 특정 시나리오에 따라 다릅니다. 예를 들어 단순히 tf-idf, 하나의 생성기, 마지막 tf만 계산합니다. -idf 사전이 메모리에 있습니다.
교차 검증은 단지 오류가 가장 작은 것을 선택하는 것입니다. 이전에 언급한 영향 뒤에는 부스팅이라는 개념이 있습니다.
이런 종류의 Q&A 웹사이트는 질문 하나와 피트 하나가 있는 것이 가장 좋습니다. 필요한 경우 두 개의 별도 질문을 사용하여 이중 질문을 피하기 위해 링크를 연결할 수 있습니다
(1) 속도를 최적화하는 방법을 참조하면 (a) 가능한 한 간단한 알고리즘을 사용하고 (b) 실제 조건을 기반으로 메모리 사용량 및 속도를 프로파일링하는 등 실험을 제어할 수 있는 다양한 방법이 있음을 알 수 있습니다. c) 모든 중첩 루프를 Numpy 배열로 교체해 보십시오. (d) 보다 효율적인 C/C++ 함수 라이브러리를 조정하려면 필요한 경우 Cython Wrapper를 사용하십시오. 이는 단지 기본적인 원칙과 방향일 뿐입니다. 사실 속도 문제든 공간 문제든 작업하려는 문제의 병목 현상 분석에 따라 다릅니다. 코드를 최적화한 후 병렬 컴퓨팅 및 기타 방법을 사용할지 여부를 고려할 수 있습니다
(2) 귀하의 질문은 수학적 요구 사항과 경험적 요구 사항을 구별해야 합니다. 여기의 질문과 답변은 꽤 도움이 될 것입니다.