• 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:Users27058Desktop	askprogram1.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)
  • 相关阅读:
    PAT (Advanced Level) 1086. Tree Traversals Again (25)
    PAT (Advanced Level) 1085. Perfect Sequence (25)
    PAT (Advanced Level) 1084. Broken Keyboard (20)
    PAT (Advanced Level) 1083. List Grades (25)
    PAT (Advanced Level) 1082. Read Number in Chinese (25)
    HDU 4513 吉哥系列故事――完美队形II
    POJ Oulipo KMP 模板题
    POJ 3376 Finding Palindromes
    扩展KMP
    HDU 2289 Cup
  • 原文地址:https://www.cnblogs.com/ywheunji/p/10724509.html
Copyright © 2020-2023  润新知