python 상용 라 이브 러 리 의 NumPy 와 sklearn 입문

5725 단어 pythonNumPysklearn
Numpy 와 scikit-learn 은 모두 python 에서 자주 사용 하 는 제3자 라 이브 러 리 입 니 다.numpy 라 이브 러 리 는 대형 행렬 을 저장 하고 처리 할 수 있 으 며 어느 정도 에 python 이 연산 효율 에 있어 부족 한 점 을 보완 했다.바로 numpy 의 존재 로 인해 python 은 수치 계산 분야 의 큰 이기 가 되 었 다.sklearn 은 python 의 유명한 기계 학습 창고 로 그 중에서 대량의 기계 학습 알고리즘 을 밀봉 하고 대량의 공개 데이터 세트 를 내장 하 며 완벽 한 문 서 를 가지 기 때문에 현재 가장 인기 있 는 기계 학습 학습 과 실천 의 도구 가 되 었 다.
1.NumPy 라 이브 러 리
우선 Numpy 라 이브 러 리 가 져 오기

import numpy as np
1.1 numpy.array 와 list

a = [1,2,3,4,5,6] # python      
b = np.array(a) # numpy    
python 은 내 장 된 배열 구조(list)가 있 습 니 다.우 리 는 왜 numpy 의 배열 구 조 를 사용 해 야 합 니까?이 질문 에 대답 하기 위해 서 는 python 에 내 장 된 배열 구조 가 어떤 특징 을 가지 고 있 는 지 살 펴 보 자.list 를 사용 할 때 list 배열 에 저 장 된 데이터 형식 은 같 지 않 고 문자열 일 수도 있 고 정형 데이터 일 수도 있 으 며 클래스 인 스 턴 스 일 수도 있 습 니 다.이런 저장 방식 은 매우 사용 되 어 우리 가 사용 하 는 데 많은 역 사 를 가 져 왔 지만,그것 도 대량의 메모 리 를 소모 하 는 결함 이나 부족 을 부담 했다.왜 그 러 세 요?실제 list 배열 의 모든 요소 의 저장 은 포인터 1 개 와 데이터 1 개가 필요 합 니 다.즉,list 에 저 장 된 것 은 데이터 의 저장 주소(포인터)입 니 다.이 는 원래 생태 의 배열 보다 지침 을 저장 하 는 메모리 소모 가 많 습 니 다.따라서 메모리 소 모 를 줄 이려 면 list 를 np.array 로 교체 하 는 것 이 좋 습 니 다.그러면 많은 공간 을 절약 할 수 있 고 Numpy 배열 은 더 빠 른 수치 계산 을 수행 하 는 우수한 용기 입 니 다.
1.2 numpy 상용 동작
배열 만 들 기

np.array([1,2,3]) #       
np.asarray([1,2,3])
np.array([1,2,3], [4,5,6]) #       

np.zeros((3, 2)) # 3 2   0  
np.ones((3, 2)) # 1  
np.full((3, 2), 5) # 3 2     5
np.array 와 np.asarray 의 차이 점:

def asarray(a, dtype=None, order=None):
 return array(a, dtype, copy=False, order=order)
이 를 통 해 알 수 있 듯 이 이들 의 차 이 는 array 는 새로운 대상 을 복사 하고 새로운 메모리 공간 을 차지 하 며 asarray 는 이 동작 을 수행 하지 않 습 니 다.array 는 깊 은 복사 와 유사 하 며,asarray 는 얕 은 복사 와 유사 합 니 다.
수치 계산
기초 계산

arr1 = np.array([[1,2,3], [4,5,6]])
arr2 = np.array([[6,5], [4,3], [2,1]])

#   arr  
print(arr1.shape) # (2, 3)

#   
np.array([1,2,3,4,5,6])[:3] #array([1,2,3])
arr1[0:2,0:2] #     

#  
np.array([1,2,3]) * np.array([2,3,4]) #        array([2,6, 12])
arr1.dot(b) #     

#    
np.sum(arr1) #        21
np.sum(arr1, axis=0) #    array([5, 7, 9])
np.sum(arr1, axis=1) #     array([ 6, 15])

#     
np.max(arr1, axis=0/1)
np.min(a, axis=0/1)
진급 계산

arr = np.array([[1,2], [3,4], [5,6]])

#         
print((arr>2))
 """
 [[False False]
 [ True True]
 [ True True]]
 """
print(arr[arr>2]) # [3 4 5 6]

#    
arr.reshape(2,3)
 """ 
 array([[1, 2, 3],
 [4, 5, 6]])
 """
arr.flatten() #    array([1, 2, 3, 4, 5, 6])
arr.T #   
2.sklearn 라 이브 러 리
만약 당신 이 sklearn 을 신속하게 사용 하고 싶다 면,나의 다른 블 로 그 는 당신 의 요 구 를 만족 시 킬 수 있 을 것 입 니 다.
python 의 중요 한 기계 학습 라 이브 러 리 입 니 다.그 중에서 대량의 기계 학습 알고리즘 을 봉 인 했 습 니 다.예 를 들 어 분류,회귀,강 차원 과 집합;감독 학습,비 감독 학습,데이터 변환 3 대 모듈 도 포함 됐다.sklearn 은 완벽 한 문 서 를 가지 고 있어 서 손 쉽게 사용 할 수 있 는 장점 을 가진다.그리고 대량의 데이터 세트 를 내장 하여 데이터 세트 를 얻 고 정리 하 는 시간 을 절약 했다.그래서 이 를 광범 위 하 게 응용 하 는 중요 한 기계 학습 창고 로 만 들 었 다.sklearn 에서 자주 사용 하 는 방법 을 간단히 소개 하 겠 습 니 다.
학습 을 감독 하 다

sklearn.neighbors #    
sklearn.svm #     
sklearn.kernel_ridge # -   
sklearn.discriminant_analysis #    
sklearn.linear_model #      

sklearn.ensemble #    
sklearn.tree #   
sklearn.naive_bayes #     
sklearn.cross_decomposition #    
sklearn.gaussian_process #    

sklearn.neural_network #    
sklearn.calibration #    
sklearn.isotonic #    
sklearn.feature_selection #    
sklearn.multiclass #       
이상 의 모든 모델 은 여러 개의 알고리즘 을 포함 하고 호출 할 때 직접 import 하면 됩 니 다.예 를 들 어:

from sklearn.linear_model import LogisticRefression
lr_model = LogisticRegression()
무 감독 학습

sklearn.decomposition #      
sklearn.cluster #   
sklearn.manifold #     
sklearn.mixture #       
sklearn.neural_network #        
sklearn.covariance #      
데이터 변환

sklearn.feature_extraction #     
sklearn.feature_selection #     
sklearn.preprocessing #    
sklearn.random_projection #     
sklearn.kernel_approximation #    
데이터 세트


그 밖 에 sklearn 은 통 일 된 API 인터페이스 도 있 습 니 다.우 리 는 똑 같은 인 터 페 이 스 를 사용 하여 서로 다른 기계 학습 알고리즘 을 실현 할 수 있 습 니 다.일반적으로 절 차 를 실현 할 수 있 습 니 다.
step 1.데이터 로드 및 예비 처리
step 2.분류 기 정의,예:lrmodel = LogisticRegression()
step 3.훈련 집 훈련 모형 사용:lrmodel.fit(X,Y)
step 4.훈련 된 모델 로 예측:ypred = lr_model.predict(X_test)
step 5.모델 에 대한 성능 평가:lrmodel.score(X_test, y_test)
일반 명령:
1.데이터 세트 분할

#   :               
#   :train_test_split(*arrays, **options)
from sklearn.mode_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
"""
  
---
arrays:    ,         

test_size:
  float-            (  :0.25)
  int -          

train_size:  test_size

random_state:
  int -     (    ,     )
  
shuffle -               (  True)

  
---
      ,  =2*len(arrays), 
  (train-test split)
"""
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기