1 # coding=utf-8
2 import pandas as pd
3 import numpy as np
4 from sklearn import cross_validation
5 import tensorflow as tf
6
7 global flag
8 flag=0
9
10 def DataPreprocessing():
11 abalone = pd.read_csv("train_data.csv", sep=',', header=0, keep_default_na=True)
12 X_train=np.array(abalone.iloc[:,:6])
13 Y_train_=np.array(abalone.iloc[:,6:])
14 print(X_train)
15 Y_train=[]
16 for i in range(len(X_train)):
17
18 X_train[i][0] = ord(X_train[i][0])-97
19 X_train[i][2] = ord(X_train[i][2])-97
20 X_train[i][4] = ord(X_train[i][4])-97
21
22 # for i in range (len(X_train)):
23 # for j in range(6):
24 # X_train[i][j]=X_train[i][j]-0.0
25 #
26 #X_train.astype(np.float64)
27 # print(X_train,type(X_train),X_train[0][0],type(X_train[0][0]))
28
29 #binary classifier
30 for i in range(len(Y_train_)):
31
32 if Y_train_[i][0]=="draw":
33 Y_train.append(0)
34 else:
35 Y_train.append(1)
36
37
38 # multiple classifer
39
40 return cross_validation.train_test_split(X_train,Y_train,test_size=0.25,random_state=0,stratify=Y_train)
41
42
43 def GetInputs():
44 global flag
45 X_train, X_test, Y_train, Y_test = DataPreprocessing()
46
47 #print(type(X_train),type(X_train[0][0]))
48 #print(X_train)
49 # print(len(X_test))
50 # print(len(Y_train))
51 # print(len(Y_test))
52
53
54 #X_train[X_train.isnull().any(axis=1)]
55 #X_train.fillna('',inplace=True)
56
57 # print(X_train)
58 # print(Y_test)
59
60 x_train=tf.constant(X_train)
61 y_train=tf.constant(Y_train)
62 x_test=tf.constant(X_test)
63 y_test=tf.constant(Y_test)
64 #
65 # print(x_train)
66 # print(y_train)
67 # print(x_test)
68 # print(y_test)
69
70 if flag==0:
71 return x_train,y_train
72 else:
73 return x_test,y_test
74
75
76 def Main():
77
78 global flag
79
80 feature_columns=[tf.contrib.layers.real_valued_column("",dimension=6)]
81
82 clf=tf.contrib.learn.DNNClassifier(feature_columns=feature_columns,hidden_units=[20,40,20],n_classes=2,model_dir="/home/jiangjing/TensorflowModel/chess")
83
84 clf.fit(input_fn=GetInputs,steps=2000)
85
86 flag=1
87 accuracy_score=clf.evaluate(input_fn=GetInputs,steps=1)["accuracy"]
88
89 print("nTest Accuracy:{0:f}".format(accuracy_score))
90
91 if __name__ =="__main__":
92 #DataPreprocessing()
93
94 Main()
95
96 exit(0)