import numpy as np
import pandas as pd
import os
import random
from sklearn import tree
from sklearn.metrics import accuracy_score
os.chdir('/home/PYTHON/')
data=pd.read_csv('wine.csv')
test_score=[]
error1=[]
error2=[]
accuracy=[]
n_fold=10
for i in xrange(n_fold):
train_data = data.sample(frac=0.70,random_state=1)
test_data = data.loc[~data.index.isin(train_data.index)]
tree_model = tree.DecisionTreeClassifier()
predictors = train_data.ix[:,0:13]
train_y = train_data.ix[:,13]
model=tree_model.fit(X = predictors, y = train_y)
test_feat = test_data.ix[:,0:13]
test_y = test_data.ix[:,13]
#Finding the class value of each row and the accuracy
test_preds = model.predict(X=test_feat)
test_score.append(i)
test_score[i] = accuracy_score(test_y, test_preds)
print("Accuracy by acc_score", sum(accuracy)/len(accuracy))
这是什么意思?我需要一些帮助〜
答案 0 :(得分:7)
int foo(int);
int bar(int, ...);
这是两个不同的功能。 foo
的类型为int(int)
。 bar
的类型为int(int,...)
。
...
是C风格的变种,不要与使用...
的变异模板参数混淆。
template <typename T, typename R, typename ...A>
struct decay<T, R(A..., ...)> { using type = R(*)(A..., ...); };
std::decay
中boost::hana
的优化版本的实施的这一部分。 typename T
和T
部分是红色鲱鱼,是优化的一部分。
这是一个匹配R(A..., ...)
的专精,其中A...
和R
是从函数签名中推断出来的。
如果您将double(int, char, ...)
作为第2个参数传递给此hana::details::decay
,则R
将为double
而A...
将为int, char
。并且...
将“匹配C风格的varags”。
这个特殊的专业化的目的是将以C风格的varargs结尾的函数签名映射到指向相同签名的指针。因此,它会将double(int, char, ...)
映射到double(*)(int, char, ...)
。
C style varargs与模板variardic参数不同。他们早于它。
答案 1 :(得分:6)
这种特化是将函数类型衰减到相应的指向函数类型的特殊化之一,它反映了函数lvalues衰减到函数指针prvalues的方式。
这个特殊的特化用于变量参数函数(那些参数列表以省略号结尾,以便它接受与任何参数不匹配的参数)。