1. from sklearn.multioutput import MultiOutputClassifier
  2. from sklearn.ensemble import RandomForestClassifier
  3. from sklearn.ensemble import ExtraTreesClassifier
  4. import numpy as np
  5. from pandas import read_csv
  6. import pandas as pd
  7.  
  8. root1="F:/goverment/shuili2/techproblem_text_train.csv"
  9. root2="F:/goverment/shuili2/techproblem_text_test.csv"
  10. root3="F:/goverment/shuili2/text_train_4problem.csv"
  11. root4="F:/goverment/shuili2/text_test_4problem.csv"
  12.  
  13. '''大类小类一起预测'''
  14. #root2="./id="+str(id_num)+"_process_data.csv"
  15. dataset1 = read_csv(root1) #数据转化为数组
  16. dataset1=dataset1.values
  17. dataset2 = read_csv(root2) #数据转化为数组
  18. dataset2=dataset2.values
  19. X_train=dataset1[:,:28]# 28之前都是变量
  20. Y_train=dataset1[:,28:]# 28到之后都是lable
  21. X_test=dataset2[:,:28]
  22. Y_test=dataset2[:,28:]
  23.  
  24. print('多输出多分类器真实输出分类:\n',Y_train)
  25. n_samples, n_features = X_train.shape #4000 29
  26. n_outputs = Y_train.shape[1] # 4000*8
  27. n_classes = 50 # 每种输出有50种分类
  28. forest = RandomForestClassifier(n_estimators=500,random_state=1) # 生成随机森林多分类器
  29. multi_target_forest = MultiOutputClassifier(forest) # 构建多输出多分类器
  30. y_pred = multi_target_forest.fit(X_train, Y_train).predict(X_train)
  31. print('多输出多分类器预测输出分类:\n',y_pred)
  32. pp=multi_target_forest.predict(X_test)
  33. a=pp
  34. k=0
  35. for i in range(len(a)):
  36. if a[i][0]==Y_test[i][0] and a[i][1]==Y_test[i][1] and a[i][2]==Y_test[i][2] and a[i][3]==Y_test[i][3] and a[i][4]==Y_test[i][4] and a[i][5]==Y_test[i][5] and a[i][6]==Y_test[i][6] and a[i][7]==Y_test[i][7]:
  37. k+=1
  38. aa=k/1328*1.0
  39. print(aa)
  40.  
  41. '''只预测大类'''
  42. #root2="./id="+str(id_num)+"_process_data.csv"
  43. dataset3 = read_csv(root1) #数据转化为数组
  44. dataset3=dataset3.values
  45. dataset4 = read_csv(root2) #数据转化为数组
  46. dataset4=dataset4.values
  47. X_train_big=dataset3[:,:28]
  48. Y_train_big=dataset3[:,28:32]
  49. X_test_big=dataset4[:,:28]
  50. Y_test_big=dataset4[:,28:32]
  51. print('只预测大类:多输出多分类器真实输出分类:\n',Y_train_big)
  52. n_samples, n_features = X_train_big.shape #4000 29
  53. n_outputs = Y_train_big.shape[1] # 4000*8
  54. n_classes = 11 # 每种输出有11种分类
  55. forest = RandomForestClassifier(n_estimators=200,random_state=1) # 生成随机森林多分类器
  56. multi_target_forest = MultiOutputClassifier(forest) # 构建多输出多分类器
  57. y_pred = multi_target_forest.fit(X_train_big, Y_train_big).predict(X_train_big)
  58. print('多输出多分类器预测输出分类:\n',y_pred)
  59. pp=multi_target_forest.predict(X_test_big)
  60. a=pp
  61. k=0
  62. for i in range(len(a)):
  63. if a[i][0]==Y_test_big[i][0] and a[i][1]==Y_test_big[i][1] and a[i][2]==Y_test_big[i][2] and a[i][3]==Y_test_big[i][3]:
  64. k+=1
  65. aa=k/1328*1.0
  66. print(aa)
  67.  
  68. '''只预测小类'''
  69. #root2="./id="+str(id_num)+"_process_data.csv"
  70. dataset4 = read_csv(root3) #数据转化为数组
  71. dataset4=dataset4.values
  72. dataset5 = read_csv(root4) #数据转化为数组
  73. dataset5=dataset5.values
  74. X_train_samll=dataset4[:,:28]
  75. Y_train_samll=dataset4[:,28:32]
  76. X_test_samll=dataset5[:,:28]
  77. Y_test_samll=dataset5[:,28:32]
  78. print('只预测小类:多输出多分类器真实输出分类:\n',Y_train_samll)
  79. n_samples, n_features = X_train_samll.shape #4000 29
  80. n_outputs = Y_train_samll.shape[1] # 4000*4
  81. n_classes = 61 # 每种输出有61种分类
  82. forest = RandomForestClassifier(n_estimators=200,random_state=1) # 生成随机森林多分类器
  83. multi_target_forest = MultiOutputClassifier(forest) # 构建多输出多分类器
  84. y_pred = multi_target_forest.fit(X_train_samll, Y_train_samll).predict(X_train_samll)
  85. print('多输出多分类器预测输出分类:\n',y_pred)
  86. pp=multi_target_forest.predict(X_test_samll)
  87. a=pp
  88. k=0
  89. for i in range(len(a)):
  90. if a[i][0]==Y_test_samll[i][0] and a[i][1]==Y_test_samll[i][1] and a[i][2]==Y_test_samll[i][2] and a[i][3]==Y_test_samll[i][3]:
  91. k+=1
  92. aa=k/1328*1.0
  93. print(aa)
  94.  
  95. '''
  96. from pandas import read_csv
  97. import pandas as pd
  98. import numpy as np
  99. from skmultilearn.problem_transform import BinaryRelevance
  100. from sklearn.naive_bayes import GaussianNB
  101. from sklearn.metrics import accuracy_score
  102.  
  103. root1="D:/Anaconda3-5.0.1-Windows-x86_64/anaconda/work/shuili2/data.csv"
  104. #root2="./id="+str(id_num)+"_process_data.csv"
  105. dataset = read_csv(root1) #数据转化为数组
  106. dataset=dataset.values
  107. x_train=dataset[:4000,:29]
  108. y_train=dataset[:4000,29:]
  109.  
  110. x_test=dataset[4000:,:29]
  111. y_test=dataset[4000:,29:]
  112.  
  113. # initialize binary relevance multi-label classifier
  114. # with a gaussian naive bayes base classifier
  115. classifier = BinaryRelevance(GaussianNB())
  116.  
  117. # train
  118. classifier.fit(x_train, y_train)
  119.  
  120. # predict
  121. predictions = classifier.predict(x_test)
  122. accuracy_score(y_test,predictions)
  123. '''
  124.  
  125. '''---------------------------------'''
  126. '''
  127. import numpy as np
  128. import pandas as pd
  129. from keras.models import Sequential
  130. from keras.layers import Dense, Dropout
  131. from keras.wrappers.scikit_learn import KerasClassifier
  132. from keras.utils import np_utils
  133. from sklearn.model_selection import train_test_split, KFold, cross_val_score
  134. from sklearn.preprocessing import LabelEncoder
  135. from pandas import read_csv
  136. from sklearn.naive_bayes import GaussianNB
  137. from sklearn.metrics import accuracy_score
  138.  
  139. root1="D:/Anaconda3-5.0.1-Windows-x86_64/anaconda/work/shuili2/data.csv"
  140. #root2="./id="+str(id_num)+"_process_data.csv"
  141. dataset = read_csv(root1) #数据转化为数组
  142. dataset=dataset.values
  143.  
  144. # load dataset
  145. dataframe = pd.read_csv("data.csv", header=None)
  146. dataset = dataframe.values
  147. X = dataset[:, 0:29].astype(float)
  148. Y = dataset[:, 29:]
  149.  
  150. # encode class values as integers
  151. #encoder = LabelEncoder()
  152. #encoded_Y = encoder.fit_transform(Y)
  153. # convert integers to dummy variables (one hot encoding)
  154. #dummy_y = np_utils.to_categorical(encoded_Y)
  155.  
  156. # define model structure
  157. def baseline_model():
  158. model = Sequential()
  159. model.add(Dense(output_dim=10, input_dim=29, activation='relu'))
  160. model.add(Dropout(0.2))
  161. model.add(Dense(output_dim=8, input_dim=10, activation='softmax'))
  162. # Compile model
  163. model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
  164. return model
  165. estimator = KerasClassifier(build_fn=baseline_model, nb_epoch=200, batch_size=50)
  166. # splitting data into training set and test set. If random_state is set to an integer, the split datasets are fixed.
  167. X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.01, random_state=0)
  168. estimator.fit(X_train, Y_train)
  169.  
  170. # make predictions
  171. pred = estimator.predict(X_test)
  172.  
  173. # inverse numeric variables to initial categorical labels
  174. #init_lables = encoder.inverse_transform(pred)
  175.  
  176. # k-fold cross-validate
  177. seed = 42
  178. np.random.seed(seed)
  179. kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
  180. results = cross_val_score(estimator, X, Y, cv=kfold)
  181. '''
  1. from pandas import read_csv
  2.  
  3. root1="F:/goverment/shuili2/techproblem_text_train.csv"
  4. root2="F:/goverment/shuili2/techproblem_text_test.csv"
  5. root3="F:/goverment/shuili2/text_train_4problem.csv"
  6. root4="F:/goverment/shuili2/text_test_4problem.csv"
  7.  
  8. '''大类小类一起预测'''
  9. #root2="./id="+str(id_num)+"_process_data.csv"
  10. dataset1 = read_csv(root1) #数据转化为数组
  11. dataset1=dataset1.values
  12. dataset2 = read_csv(root2) #数据转化为数组
  13. dataset2=dataset2.values
  14. X_train=dataset1[:,:28]
  15. Y_train=dataset1[:,28:]
  16. X_test=dataset2[:,:28]
  17. Y_test=dataset2[:,28:]
  18.  
  19. from pprint import pprint
  20. pprint(dataset1)
  21.  
  22. ##使用二进制相关性
  23. #scikit-multilearn
  24. from skmultilearn.problem_transform import BinaryRelevance
  25. from sklearn.naive_bayes import GaussianNB
  26.  
  27. #initialize二进制相关多标签分类器
  28. #用高斯朴素贝叶斯基分类器
  29. classifier = BinaryRelevance(GaussianNB())
  30.  
  31. #训练
  32. classifier.fit(X_train, Y_train)
  33.  
  34. #预测
  35. predictions = classifier.predict(X_test)
  36.  
  37. #计算精度用
  38. from sklearn.metrics import accuracy_score
  39. accuracy_score(Y_test,predictions)

python多标签分类模版的更多相关文章

  1. Python-HTML 最强标签分类

    编程: 使用(展示)数据 存储数据 处理数据 前端 1. 前端是做什么的? 2. 我们为什么要学前端? 3. 前端都有哪些内容? 1. HTML 2. CSS 3. JavaScript 4.jQue ...

  2. 前端入门html(常用标签及标签分类)

    day47 参考:https://www.cnblogs.com/liwenzhou/p/7988087.html 任何标签都有有三个属性:ID,class.style <!DOCTYPE ht ...

  3. 使用MXNet远程编写卷积神经网络用于多标签分类

    最近试试深度学习能做点什么事情.MXNet是一个与Tensorflow类似的开源深度学习框架,在GPU显存利用率上效率高,比起Tensorflow显著节约显存,并且天生支持分布式深度学习,单机多卡.多 ...

  4. LM-MLC 一种基于完型填空的多标签分类算法

    LM-MLC 一种基于完型填空的多标签分类算法 1 前言 本文主要介绍本人在全球人工智能技术创新大赛[赛道一]设计的一种基于完型填空(模板)的多标签分类算法:LM-MLC,该算法拟合能力很强能感知标签 ...

  5. scikit-learn一般实例之八:多标签分类

    本例模拟一个多标签文档分类问题.数据集基于下面的处理随机生成: 选取标签的数目:泊松(n~Poisson,n_labels) n次,选取类别C:多项式(c~Multinomial,theta) 选取文 ...

  6. CSS.02 -- 样式表 及标签分类(块、行、行内块元素)、CSS三大特性、背景属性

    样式表书写位置  内嵌式写法 <head> <style type="text/css"> 样式表写法 </style> </head&g ...

  7. html(常用标签,标签分类),页面模板, CSS(css的三种引入方式),三种引入方式优先级

    HTML 标记语言为非编程语言负责完成页面的结构 组成: 标签:被<>包裹的由字母开头,可以结合合法字符( -|数字 ),能被浏览器解析的特殊符号,标签有头有尾 指令:被<>包 ...

  8. 前端 HTML 标签分类

    三种: 1.块级标签: 独占一行,可设置宽度,高度.如果设置了宽度和高度,则就是当前的宽高.如果宽度和高度没有设置,宽度是父盒子的宽度,高度根据内容填充. 2.行内标签:在一行内显示,不能设置宽度,高 ...

  9. htm基础知识,css的链入以及标签分类。

    <!DocTYPE>  DOC--Document 文档  TYPE  类型  文档类型 告诉浏览器这是什么文件 单标签: meta  设置   charset  设置编码 双标签: 开始 ...

随机推荐

  1. eureka -1 - 介绍

    eureka ,服务发现注册中心 eureka 包含server, client两部分. eureka server,服务发现组件,各个微服务启动的时候会向server注册自己的信息(ip,hostn ...

  2. Spring写配置文件时不提示怎么办?

    想要编写xml文件时代码提示,其实只要配置了相应的xsd文件即可,xsd文件也就是xml文件的一个约束.就是决定了你xml文件中可以写哪些东西. xsd文件是xml文件的元数据文件. 以bean标签为 ...

  3. 《利用Python进行数据分析》笔记---第2章--1880-2010年间全美婴儿姓名

    写在前面的话: 实例中的所有数据都是在GitHub上下载的,打包下载即可. 地址是:http://github.com/pydata/pydata-book 还有一定要说明的: 我使用的是Python ...

  4. clean-css 安装 使用

    https://github.com/jakubpawlowicz/clean-css-cli https://davidwalsh.name/clean-css

  5. HDU 2273

    http://acm.hdu.edu.cn/showproblem.php?pid=2273 N辆车排队过马路,不能相撞,问最短时间 ans=车的总长度/最小速度 #include <iostr ...

  6. 上周面试回来后写的Java面试总结,想进BAT必看

    上周陪同之前一起工作的同事去面试(乔治,小袁,鹏飞(面试人)),第一站是去深圳,第二站上海,第三站杭州.面试什么公司我在这里就不多说了,你们知道是一线公司就行.其实本来真的没打算写这篇文章,主要是自己 ...

  7. I.MX6 Kernel BUG at include/linux/netdevice.h:520!

    /*************************************************************************** * I.MX6 Kernel BUG at i ...

  8. 【机器学习】集成学习之sklearn中的xgboost基本用法

    原创博文,转载请注明出处!本文代码的github地址    博客索引地址 1.数据集 数据集使用sklearn自带的手写数字识别数据集mnist,通过函数datasets导入.mnist共1797个样 ...

  9. cocos studio pageview看不到indicator指示点

    发现如果在cocos studio里操作给PageView创建页面元素时,即使setIndicatorEnabled为true也看到下方的指示点,必须调用addWidgetToPage或者insert ...

  10. 在 Visual Studio中 使用Apache Cordova 开发安卓、iOS程序(自定义图标和闪屏)

    方法1 1台安装有linux的电脑,虚拟机也行,并安装imagemagick软件包.我用的是linux mint,直接在软件管理器中安装即可 把https://github.com/shamork/c ...