MCPcopy Index your code
hub / github.com/Giyn/DataMiningVisualizationSystem / cross_validation

Function cross_validation

model_assessment/divide_data.py:25–62  ·  view source on GitHub ↗

:param algorihm: 传入算法的类 :param X: 特征集 :param y: 结果集 :param n: 划分个数 :return:

(algorihm, X, y, n, isReg)

Source from the content-addressed store, hash-verified

23 return X_train, X_test, y_train, y_test
24
25def cross_validation(algorihm, X, y, n, isReg): #交叉验证法
26 """
27 :param algorihm: 传入算法的类
28 :param X: 特征集
29 :param y: 结果集
30 :param n: 划分个数
31 :return:
32 """
33 def accuracy_score(y_true, y_predict): # 计算准确率
34
35 if(isReg) :
36 return np.sqrt(np.sum(np.power(y_true - y_predict, 2.0)) / len(y_true))
37 else :
38 return np.sum(y_true == y_predict) / len(y_true)
39 all = np.random.permutation(len(X)) #打乱索引
40 size = len(X) // n
41 # 根据n把数据分成n部分
42 s = []
43 for i in range(0, len(X), size):
44 a = all[i:i+size]
45 s.append(a)
46 result = np.empty((n,)) # 记录准确率
47
48 # 遍历s,交叉验证过程
49 for i in range(n):
50 b = copy.deepcopy(s)
51 verify = b.pop(i) # 弹出一个元素做验证集
52 train = np.hstack(b) # 其他元素合并做训练集
53 # 根据索引找元素
54 verify_real_X = np.array([X[j] for j in verify])
55 verify_real_y = np.array([y[j] for j in verify])
56 train_real_X = np.array([X[j] for j in train])
57 train_real_y = np.array([y[j] for j in train])
58 # 代入验证类
59 algorihm.fit(train_real_X, train_real_y)
60 verify_predict = algorihm.predict(verify_real_X) #计算预测值
61 result[i] = accuracy_score(verify_real_y, verify_predict) # 计算准确率
62 return np.mean(result) # 准确率求均值返回
63
64def bootstraping(X, y): #自助法
65 """

Callers 1

fitFunction · 0.85

Calls 3

accuracy_scoreFunction · 0.70
fitMethod · 0.45
predictMethod · 0.45

Tested by

no test coverage detected