Scikit-learn
SKTet(정식 명칭 scikit-learn)은 numpy, scipy, matplotlib과 같은 데이터 과학 패키지를 기반으로 구축된 파이썬 머신러닝 라이브러리로, 샘플 데이터, 데이터 전처리, 모델 검증, 특징 선택, 분류, 회귀, 군집화, 차원 축소 등 머신러닝의 거의 모든 측면을 포함합니다. pytorch, TensorFlow 같은 다양한 프레임워크에서 제공되는 딥러닝 라이브러리와 달리, sklearn은 파이썬 전통 머신러닝에서 선호되는 라이브러리이며, 다른 경쟁 라이브러리는 없습니다.
공식 웹사이트:하이퍼링크 로그인이 보입니다. 근원:하이퍼링크 로그인이 보입니다.
Scikit-learn용 확장
고전적인 머신러닝 프레임워크인 scikit-learn은 탄생 이후 10년 넘게 개발되어 왔지만, 그 컴퓨팅 속도는 사용자들로부터 널리 비판받아왔습니다. Scikit-learn의 확장 프로그램은 여러분을 돕기 위해 설계된 무료 AI 소프트웨어 가속기입니다기존 Scikit-learn 코드는 10배에서 100배 빠른 속도를 제공합니다。 소프트웨어 가속은 벡터 명령어, AI 하드웨어의 메모리 최적화, 스레딩 및 최적화를 통해 달성됩니다.
Scikit-learn 확장 기능을 사용하면 다음과 같은 기능이 있습니다:
- 훈련과 추론은 동일한 수학적 정밀도로 100배 빠릅니다
- GPU 및 멀티 GPU 구성 등 다양한 CPU 하드웨어 구성에서 성능 향상의 혜택을 누릴 수 있습니다
- 코드를 수정하지 않고 기존 Scikit-learn 애플리케이션에 확장 기능을 통합하세요
- 오픈소스 scikit-learn API를 계속 사용하세요
- 몇 줄의 코드를 사용하거나 명령줄에서 확장 기능을 활성화하거나 비활성화하세요
근원:하이퍼링크 로그인이 보입니다. 문서조사:하이퍼링크 로그인이 보입니다.
테스트
먼저, conda를 사용해 환경을 준비하고 다음 명령어로 필요한 패키지를 설치하세요:
새로운 Python 테스트 코드는 다음과 같습니다:
가속 코드는 다음과 같습니다:
소스 코드 해석:
1.X, y = make_regression(n_samples=2000000, n_features=100, 노이즈=1, random_state=42) make_regression는 scikit-learn에서 선형 회귀 문제에 대한 데이터셋을 생성하는 함수입니다. n_samples=2000000: 생성된 데이터셋 2,000,000 내 샘플 수를 지정합니다. n_features=100: 각 샘플이 100개의 특징(즉, 입력 변수)을 가짐을 지정합니다. 노이즈=1: 목표 값 y에 노이즈를 더하는 표준편차는 1입니다. 이는 목표 값에 무작위 섭동이 생긴다는 뜻입니다. random_state=42: 무작위 시드를 42로 설정하여 코드 실행 시 생성된 데이터가 동일하도록 합니다(반복성). 결과: X는 2,000,000개의 샘플과 각각 100개의 특징을 나타내는 NumPy 배열(2000,000, 100)이며; y는 길이 2,000,000의 1차원 배열로, 목표 값을 나타냅니다.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0.33, random_state=42) train_test_split scikit-learn에서 데이터셋을 훈련 세트와 테스트 세트로 나누는 함수입니다. test_size=0.33: 데이터셋의 33%가 테스트 세트에 할당되고 나머지 67%가 훈련 세트에 할당됨을 나타냅니다. random_state=42: 무작위 시드를 42로 설정하여 데이터 분할 결과가 매번 동일하도록 합니다. : 밑줄을 사용해 반환 값을 무시하세요. 여기서는 훈련 세트(X_train와 y_train)만 신경 쓰고 테스트 세트 부분은 무시합니다. 결과: X_train: 학습 집합의 특징 행렬로, (1340000, 100) 모양으로 약 67%의 데이터입니다. y_train: 길이 1,340,000의 훈련 세트의 목표값입니다.
3. model = 선형회귀() 선형회귀는 선형 회귀 모델을 구현하는 scikit-learn의 클래스입니다. 이 코드 라인은 선형 회귀 모델의 인스턴스를 생성하고 변수 모델에 값을 할당합니다. 기본적으로 선형회귀는 데이터를 정규화하지 않습니다(즉, L1 또는 L2 정규화가 없습니다).
4. model.fit(X_train, y_train) 적합은 scikit-learn 모델에서 모델을 훈련시키는 데 사용되는 방법입니다. 여기서 적합 방법을 호출하여 학습 집합 데이터 X_train와 목표값 y_train을 사용하여 선형 회귀 모델을 적합시킵니다. 모델은 최적 가중치(계수)를 계산하고, 예측값과 참값(보통 최소제곱)의 오차를 최소화하기 위해 인터셉트를 수행합니다. 훈련이 완료되면 모델의 매개변수는 model.coef_(특징의 가중치)와 model.intercept_(인터셉트)로 저장됩니다.
실행 시간은 다음과 같습니다:
가속 없이도 가속 후에도 효과가 매우 명확하다는 것을 알 수 있습니다.가속 없이 약 16초, 가속 후 0.1초 정도 걸립니다!!!! |