Python 기계 학습 도구 scikit-learn 사용 노트
9666 단어 python기계 학습scikit-learn
공식 문서:http://scikit-learn.org/stable/
sklearn 공식 문서 의 유형 과 구 조 는 다음 과 같다.
sklearn 은 numpy 와 scipy 를 바탕 으로 하 는 기계 학습 알고리즘 라 이브 러 리 로 매우 우아 하 게 디자인 되 었 으 며,우 리 는 같은 인 터 페 이 스 를 사용 하여 모든 다른 알고리즘 호출 을 실현 할 수 있 습 니 다.
sklearn 라 이브 러 리 의 4 대 기계 학습 알고리즘:분류,회귀,집합,강 차원.그 중:
이 동시에 sklearn 은 대량의 데이터 세트 를 내장 하여 데이터 세트 를 얻 고 정리 하 는 시간 을 절약 했다.
sklearn 을 사용 하여 기계 학습 을 하 는 절 차 는 일반적으로 가 져 오기 모듈-데이터 생 성-모델 구축-훈련-예측 5 단계 로 나 뉜 다.
다음은 코드 노트.
、
*****************
"""
##1.1 sklearn
from sklearn import datasets
iris = datasets.load.iris() #
X = iris.data #
y = iris.target # label
##1.2
from sklearn.datasets.samples_generator import make_classification
X, y = make_classification(n_samples=6, n_features=5, n_informative=2,
n_redundant=2, n_classes=2, n_clusters_per_class=2, scale=1.0,
random_state=20)
# n_samples:
# n_features:
# n_classes:
# random_state: ,
#
for x_,y_ in zip(X,y):
print(y_,end=': ')
print(x_)
"""
0: [-0.6600737 -0.0558978 0.82286793 1.1003977 -0.93493796]
1: [ 0.4113583 0.06249216 -0.90760075 -1.41296696 2.059838 ]
1: [ 1.52452016 -0.01867812 0.20900899 1.34422289 -1.61299022]
0: [-1.25725859 0.02347952 -0.28764782 -1.32091378 -0.88549315]
0: [-3.28323172 0.03899168 -0.43251277 -2.86249859 -1.10457948]
1: [ 1.68841011 0.06754955 -1.02805579 -0.83132182 0.93286635]
"""
"""
*****************
、
*****************
"""
from sklearn import preprocessing
##2.1
data = [[0, 0], [0, 0], [1, 1], [1, 1]]
# 1. mean std
scaler = preprocessing.StandardScaler().fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
# 2.
scaler = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(train_data)
scaler.transform(train_data)
scaler.transform(test_data)
#feature_range: , ()
#2.2
X = [[ 1., -1., 2.],
[ 2., 0., 0.],
[ 0., 1., -1.]]
X_normalized = preprocessing.normalize(X, norm='l2')
print(X_normalized)
"""
array([[ 0.40..., -0.40..., 0.81...],
[ 1. ..., 0. ..., 0. ...],
[ 0. ..., 0.70..., -0.70...]])
"""
## 2.3 One-Hot
data = [[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]
encoder = preprocessing.OneHotEncoder().fit(data)
enc.transform(data).toarray()
"""
*****************
、
*****************
"""
# :
# :train_test_split(*arrays, **options)
from sklearn.mode_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, 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)
"""
"""
*****************
、
*****************
"""
## E
#
model.fit(X_train, y_train)
#
model.predict(X_test)
#
model.get_params()
#
model.score(data_X, data_y) # :R square; : acc
## 4.1
from sklearn.linear_model import LinearRegression
#
model = LinearRegression(fit_intercept=True, normalize=False,
copy_X=True, n_jobs=1)
"""
---
fit_intercept: 。False-
normalize: fit_intercept False , 。 , X l2- 。
n_jobs:
"""
## 4.2
from sklearn.linear_model import LogisticRegression
#
model = LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0,
fit_intercept=True, intercept_scaling=1, class_weight=None,
random_state=None, solver='liblinear', max_iter=100, multi_class='ovr',
verbose=0, warm_start=False, n_jobs=1)
"""
---
penalty: ( :l2)
dual: n_samples > n_features False( )
C: ,
n_jobs:
random_state:
fit_intercept:
"""
## 4.3 NB
from sklearn import naive_bayes
model = naive_bayes.GaussianNB() #
model = naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
model = naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)
"""
MultinomialNB
---
alpha:
fit_prior: ;false-
class_prior: ;
binarize: , None,
"""
## 4.4 DT
from sklearn import tree
model = tree.DecisionTreeClassifier(criterion='gini', max_depth=None,
min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features=None, random_state=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
class_weight=None, presort=False)
"""
---
criterion : gini/entropy
max_depth: ,None-
min_samples_split: ,
min_samples_leaf:
max_features:
max_leaf_nodes:
min_impurity_decrease: , 。
"""
## 4.5
from sklearn.svm import SVC
model = SVC(C=1.0, kernel='rbf', gamma='auto')
"""
---
C: C
gamma: 。 ,If gamma is ‘auto' then 1/n_features will be used instead.
"""
## 4.6 k KNN
from sklearn import neighbors
# kNN
model = neighbors.KNeighborsClassifier(n_neighbors=5, n_jobs=1) #
model = neighbors.KNeighborsRegressor(n_neighbors=5, n_jobs=1) #
"""
---
n_neighbors:
n_jobs:
"""
## 4.7
from sklearn.neural_network import MLPClassifier
#
model = MLPClassifier(activation='relu', solver='adam', alpha=0.0001)
"""
---
hidden_layer_sizes:
activation:
solver : {‘lbfgs', ‘sgd', ‘adam'}
alpha:L2 ( ) 。
"""
"""
*****************
、
*****************
"""
## 5.1
from sklearn.model_selection import cross_val_score
cross_val_score(model, X, y=None, scoring=None, cv=None, n_jobs=1)
"""
---
model:
cv : k-fold
scoring: -‘accuracy'、‘f1'、‘precision'、‘recall' 、‘roc_auc'、'neg_log_loss'
"""
## 5.2
from sklearn.model_selection import validation_curve
train_score, test_score = validation_curve(model, X, y, param_name, param_range, cv=None, scoring=None, n_jobs=1)
"""
---
model: fit predict
X, y:
param_name:
param_range:
cv:k-fold
---
train_score: (array)
test_score: (array)
"""
"""
*****************
、
*****************
"""
## 6.1 pickle
import pickle
#
with open('model.pickle', 'wb') as f:
pickle.dump(model, f)
#
with open('model.pickle', 'rb') as f:
model = pickle.load(f)
model.predict(X_test)
## 6.2 sklearn joblib
from sklearn.externals import joblib
#
joblib.dump(model, 'model.pickle')
#
model = joblib.load('model.pickle')
이상 은 Python 기계 학습 도구 scikit-learn 의 사용 노트 에 대한 상세 한 내용 입 니 다.Python 기계 학습 도구 scikit-learn 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.