1. 程式人生 > >利用python實現資料分析的大致主要流程(簡)

利用python實現資料分析的大致主要流程(簡)

前提:這段程式碼只適用於對資料分析有簡單的基礎認識者
data是樣本資料集,target是對應的樣本目標

1. 分析特徵值

如果特徵值過多,將不需要的特徵值刪減,保留有影響或者影響較大的特徵值

2. 分解data和target

如果target目標值的資料量差異巨大可以使用過取樣,也就是將訓練集樣本量小的目標資料擴大,

3. 交叉驗證

4. 模型引數自動調優

  1. 決策樹、梯度提升樹

    決策樹

    from sklearn.tree import DecisionTreeClassifier
    dtree=DecisionTreeClassifier()
    dtree.fit(data,target)
    dtree_feature=dtree.feature_importances_

    梯度提升樹

    gbc=GradientBoostingClassifier()
    gbc.fit(X_train_new,y_train_new)
    gbc_feature=gbc.feature_importances_
    將權重為0或者權重過小的特徵刪除
    Index=some_feature.argsort()
    some_feature[index] #這個就是根據權重顯示排序後的特徵
    data.columns[index] #這個是分局權重排序後顯示的列名
    用排序後的列名擷取後面幾個後面有意義的特徵
    data2=data [data.columns[index][6:]] #這個例子是擷取下表為6及以後的列

  2. 過取樣:
    先要分解出訓練集和測試集:
    X_train_new,y_train_new=smote.fit_resample(X_train,y_train)
    from imblearn.over_sampling import SMOTE
    smote=SMOTE()
    X_train_new,y_train_new=smote.fit_resample(X_train,y_train)

  3. 交叉驗證:混淆矩陣、交叉表:

    混淆矩陣

    from sklearn.metrics import confusion_matrix
    confusion_matrix(y_test,y_)
    y_test 是目標值的測試資料
    y_ 是利用模型測試資料得到的結果

    交叉表

    pd.crosstab(y_test,y_)

  4. 模型引數自動調優:

    1. 針對邏輯迴歸模型:
      lg=LogisticRegression()
      param_grid={
      ‘C’:[0.1,1,10,100],
      ‘tol’:[1e-3,1e-4,1e-5]
      }
      from sklearn.model_selection import GridSearchCV
      gs=GridSearchCV(lg,param_grid)
      gs.fit(X_test,y_test)
      lg_best=gs.best_estimator_
      lg.score(X_test,y_test)