直接コードに:
1 #-コーディング:GBK - 2 から sklearn.datasets インポートload_breast_cancer 3 から sklearn.tree インポートDecisionTreeClassifier 4 から sklearn.model_selectionのインポート train_test_split 5 から sklearn.tree インポートexport_graphviz 6頭の インポートPDとしてパンダ 7 インポートGraphvizの 8 インポートmglearn 9 から sklearn.ensemble 輸入RandomForestClassifier 10 からsklearn.datasetsはインポートmake_moons 11 から sklearn.ensemble インポートGradientBoostingClassifier 12 から sklearn.svm インポートSVC 13 から pylabのインポート * 14 DEF )(决策树: 15 癌= load_breast_cancer() 16 X_train、X_test、y_train、y_test = train_test_split( 17 癌.DATA、cancer.target、層別化= cancer.target、random_state = 42 ) 18 ツリー= DecisionTreeClassifier(random_state = 0) 19 プリント(X_train) 20 プリント(y_train.shape) 21 tree.fit(X_train、y_train) 22 y_predict = tree.predict(X_test) 23 プリント(" 訓練セット上の精度:{:.3f} " .format(tree.score( X_train、y_train))) 24 プリント(" テストセット上の精度:{:.3f} " .format(tree.score(X_test、y_test))) 25 ''」 26 export_graphviz(木、out_fileパラ= "tree.dot" 、class_names = [ "悪性" "良性"]、FEATURE_NAMEに= cancer.feature_names、 27 不純物= Falseを、 満たされた=真) 28 29 ( "tree.dot")で開くAS F: 30 dot_graphに達し、f.read =() 31は graphviz.Source(dot_graph) 32 '' ' 33で 印刷(" :\ N- {}機能キー" .format(tree.feature_importances_ )) 34である 35 DEF )(ランダムフォレスト: 36 。X-、Y = make_moons(N_SAMPLES = 100、ノイズ= 0.25、random_state = 3 ) 37 。X_train、X_test、y_train、android.permission.FACTOR = train_test_split(X、Y、階層化= Y、random_state = 42 ) 38 '' ' 5つのランダムフォレスト' '' 39 森林= RandomForestClassifier(n_estimators = 5、random_state = 2 ) 40 forest.fit(X_train、y_train) 41 y_pred = forest.predict(X_test) 42 プリント(y_pred) 43 プリント(y_test) 44 プリント(np.mean(y_test == y_pred)) 45 図、軸= plt.subplots(2 、3、figsize =(20、10 )) 46 のための I、(AX、ツリー)に列挙(ZIP(axes.ravel()、forest.estimators_)):ax.set_title(" ツリー{} " .format(I )) 47 mglearn.plots.plot_tree_partition(X_train、y_train、木、AX = AX) 48 mglearn.plots.plot_2d_separator(森林、X_train、フィル= trueの場合、AX =軸[-1、-1]、アルファ= 0.4 ) 49の 軸[-1、-1] .set_title(" ランダムフォレスト" ) 50 mglearn。 discrete_scatter(X_train [:, 0]、X_train [:, 1 ]、y_train) 51 52 DEF 梯度提升树(): 53 癌= load_breast_cancer() 54 X_train、X_test、y_train、y_test = train_test_split(cancer.data、癌。ターゲット、random_state = 0) 55 #gbrt = GradientBoostingClassifier(random_state = 0、MAX_DEPTH = 1) 56 gbrt = GradientBoostingClassifier(random_state = 0、learning_rate = 0.01) 57は gbrt.fit(X_train、y_train) 58 y_pred = gbrt.predict(X_test) 59 プリント(y_pred) 60 プリント(np.mean(y_pred == )android.permission.FACTOR。) 61である 62である DEF SVMイージーベクター(): 63であり 、X、 = Yのmglearn.tools.make_handcrafted_dataset() 64 「」 ' 65 ガンマパラメータは、ガウスカーネルの幅を制御するために、所定のパラメータの式です。それは「近い」との間にドットを決定どのくらいの距離を指します。 66 Cパラメータは、使用される線形モデルに似正則化パラメータです。これは、各点の重要性を制限する(または、より正確には、各点をdual_coef_)。 67 68 '' ' 69 SVM = SVC(カーネル= ' RBF '、C = 10、ガンマ= 0.1).fit(X、Y) 70 mglearn.plots.plot_2d_separator(SVM、X、EPS = 0.5 ) 71 mglearn.discrete_scatter(X [:, 0]、X [:, 1 ]、Y) 72 #画出支持向量 73 SV = svm.support_vectors_ 74 sv_labels = svm.dual_coef_.ravel()> 0 75 mglearn.discrete_scatter(SV [:, 0]、SV [:, 1]、sv_labels、S = 15、markeredgewidth = 3 ) 76 PLT .xlabel(" 機能0 " ) 77 plt.ylabel(" 特集1 " ) 78 plt.show() 79 80 DEF )(ベクタデータを前処理: 81 がん= load_breast_cancer() 82 X_train、X_test、y_train、android.permission.FACTOR = train_test_split(cancer.data、cancer.target、random_state = 0) 83 SVC = SVC() 84 svc.fit(X_train 、y_train) 85 y_pred = svc.predict(X_test) 86 プリント(np.mean(y_pred == android.permission.FACTOR。)) 87 88 '' ' の前処理-ズーム' '' 89 min_on_training = X_train.min(軸= 0) 90 = range_on_training(X_train - min_on_training).MAX(軸= 0) 91である 92 X_train_scaled =(X_train - min_on_training)/ range_on_training 93 X_test_scaled =(X_test - min_on_training)/ range_on_training 94 プリント(" 各機能\ N {}の最小" .format(X_train_scaled.min(軸= 0))) 95 プリント(「最大各機能の\ N {} " .format(X_train_scaled.max(軸= 0))) 96 97 '' ' 变换''' 98 X_test_scaled =(X_test - min_on_training)/ range_on_training 99 SVC = SVCを() 100 svc.fit(X_train_scaled、y_train) 101 y_pred = svc.predict(X_test_scaled) 102 プリント(np.mean(y_pred == android.permission.FACTOR)。) 103 IF __name__ == ' __main__ ' : 104 (ベクトルデータを前処理)