sklearn框架使用例子,多种分类方法的集合,方便模型的融合
1 import numpy as np 2 import pandas as pd 3 from pandas import Series,DataFrame 4 import matplotlib.pyplot as plt 5 from sklearn.svm import NuSVC 6 import xgboost as xgb 7 from xgboost import plot_importance 8 #模型效果评估 9 from sklearn.metrics import r2_score 10 from datetime import datetime 11 from sklearn.model_selection import train_test_split 12 from sklearn.preprocessing import StandardScaler 13 from sklearn.datasets import make_moons, make_circles, make_classification 14 from sklearn.neural_network import MLPClassifier 15 from sklearn.neighbors import KNeighborsClassifier 16 from sklearn.svm import SVC 17 from sklearn.gaussian_process import GaussianProcessClassifier 18 from sklearn.gaussian_process.kernels import RBF 19 from sklearn.tree import DecisionTreeClassifier 20 from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier 21 from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis 22 23 #到多元回归之前是获取数据过程,下面分别采用多种模型对数据进行测试 24 df = pd.read_excel(r'C:\Users\27058\Desktop\task\program\1.xlsx') 25 # print(len(df)) 26 heji = list() #所有训练数据 27 output_1 = list() 28 output_2 = list() 29 output_3 = list() 30 output_4 = list() 31 output_5 = list() 32 # 0:84 33 for i in range(0,72): 34 # 每组训练数据 35 input = list() 36 input.append(df['镍片厚度(mm)'][i]) 37 input.append(df['结果状态'][i]) #是否合格 38 input.append(df['焊点拉力(N)'][i]) 39 input.append(df['镍带是否撕裂'][i]) 40 heji.append(input) 41 42 output_1.append(df['焊针压力(N)'][i]) 43 output_2.append(df['焊接电压1(V)'][i]) 44 output_3.append(df['焊接电压2(V)'][i]) 45 output_4.append(df['焊接时间1(ms)'][i]) 46 output_5.append(df['焊接时间2(ms)'][i]) 47 48 x_train = heji[0:52] 49 y_train = output_2[0:52] 50 x_test = np.array(heji[52:]) 51 y_true = output_2[52:] 52 53 standardScaler = StandardScaler() 54 x_train_fit = standardScaler.fit_transform(x_train) 55 x_test_fit = standardScaler.transform(x_test) 56 print("y_true:",y_true) 57 # logistic回归,用作二分类 58 from sklearn.linear_model import LogisticRegression 59 log_reg = LogisticRegression() 60 log_reg.fit(x_train_fit, y_train) 61 log_reg_pre = log_reg.predict(x_test_fit) 62 print('log:',log_reg_pre) 63 64 #sgd分类 65 from sklearn.linear_model import SGDClassifier 66 sgd_reg = SGDClassifier() 67 sgd_reg.fit(x_train_fit,y_train) 68 sgd_reg_pre = sgd_reg.predict(x_test_fit) 69 print('sgd:',sgd_reg_pre) 70 71 #朴素贝叶斯 72 from sklearn.naive_bayes import GaussianNB 73 gnb = GaussianNB() 74 gnb_y_pred = gnb.fit(x_train_fit, y_train).predict(x_test_fit) 75 print('gnb:',gnb_y_pred) 76 77 # #KNN分类 78 # from sklearn import neighbors 79 # knn = neighbors.KNeighborsClassifier() 80 # knn.fit(x_train_fit, y_train) 81 # knn_pre = knn.predict(x_test_fit) 82 # print('knn:',knn_pre) 83 84 classifiers = [ 85 KNeighborsClassifier(3), 86 # SVC(kernel="linear", C=0.025), 87 SVC(gamma=2, C=1), 88 GaussianProcessClassifier(1.0 * RBF(1.0), warm_start=True), 89 DecisionTreeClassifier(max_depth=5), 90 RandomForestClassifier(max_depth=5, n_estimators=10, max_features=1), 91 MLPClassifier(alpha=1), 92 AdaBoostClassifier(), 93 GaussianNB(), 94 QuadraticDiscriminantAnalysis()] 95 96 names = ["knn", "RBF_SVM", "g_c", 97 "Deci", "Rand", "Net", "AdaBoost", 98 "Bayes", "QDA"] 99 for name, clf in zip(names, classifiers): 100 pre = clf.fit(x_train_fit, y_train).predict(x_test_fit) 101 print(name,pre)
凤舞九天