Python 기계 학습 도구 scikit-learn 사용 노트

scikit-learn 은 Python 언어 를 바탕 으로 하 는 기계 학습 도구 입 니 다.
  • 간단 하고 효율 적 인 데이터 발굴 과 데이터 분석 도구
  • 여러 환경 에서 중복 사용 할 수 있 습 니 다
  • NumPy,Scipy,matplotlib 에 구축
  • 오픈 소스,상업 적 사용 가능-BSD 라이선스
  • sklearn 중국어 문서:http://www.scikitlearn.com.cn/
    공식 문서:http://scikit-learn.org/stable/
    sklearn 공식 문서 의 유형 과 구 조 는 다음 과 같다.

    sklearn 은 numpy 와 scipy 를 바탕 으로 하 는 기계 학습 알고리즘 라 이브 러 리 로 매우 우아 하 게 디자인 되 었 으 며,우 리 는 같은 인 터 페 이 스 를 사용 하여 모든 다른 알고리즘 호출 을 실현 할 수 있 습 니 다.
    sklearn 라 이브 러 리 의 4 대 기계 학습 알고리즘:분류,회귀,집합,강 차원.그 중:
  • 자주 사용 하 는 회귀:선형,결정 트 리,SVM,KNN;집적 회귀:랜 덤 숲,Adaboost,GradientBoosting,Bagging,ExtraTrees
  • 자주 사용 하 는 분류:선형,결정 트 리,SVM,KNN,소박 한 베 이 루스;통합 분류:랜 덤 숲,Adaboost,GradientBoosting,Bagging,ExtraTrees
  • 상용 집합:k 평균치(K-means),계층 집합(Hierarchical clustering),DBSCAN
  • 상용 하강 차원:Linear Discriminant Analysis,PCA
  •      특징 추출,데이터 처리,모델 평가 3 대 모듈 도 포함 됐다.
         이 동시에 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 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

    좋은 웹페이지 즐겨찾기