python 상용 라 이브 러 리 의 NumPy 와 sklearn 입문
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)
"""
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.