zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    restframework 使用OrderingFilter实现排序
    restframework 使用django_filters 实现过滤
    Serializer 嵌套使用
    docker 运行scrpyd
    flutter-lol云顶之弈助手app
    微信小程序上传多张图片,后端只保存了最后一张的Bug
    ettercap局域网arp欺骗,轻松窃密
    GoLang邮件发送Demo(继上篇msmtp)
    Mac下命令行发邮件【搭配php(shell_exec...)等脚本语言,轻松发邮件,告别各种依赖库】
    我的第一个RN应用(漂亮的首页和笑话列表)
  • 原文地址:https://www.cnblogs.com/ywheunji/p/10724509.html
Copyright © 2011-2022 走看看