GM11灰色预测函数
def GM11(x0):
x1 = x0.cumsum()
z1 = (x1[:len(x1)-1]+x1[1:])/2.0
z1 = z1.reshape((len(z1), 1))
B = np.append(-z1, np.ones_like(z1), axis=1)
Yn = x0[1:].reshape((len(x0)-1, 1))
[[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn)
f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2))
delta = np.abs(x0+np.array([f(i) for i in range(1, len(x0)+1)]))
C = delta.std()/x0.std()
P = 1.0*(np.abs(delta-delta.mean()) < 0.6745*x0.std())/len(x0)
return f, a, b, x0[0], C, P
算法适用场景
分类
大于10万数据SVM逻辑回归
sklearn.svm.SVC()
sklearn.linear_model.LogisticRegression(solver=“liblinear”, penalty=“l2”, C = 1.0)
小于10万数据 线性核SVD
sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver=“svd”)
文本数据 朴素贝叶斯
sklearn.naive_bayes.GaussianNB()
非文本数据KNN
sklearn.neighbors.KNeighborsClassifier(n_neighbors=3)
无效SVC组合分类
svm.SVC(kernel=‘linear’) svm.SVC(kernel=‘poly’,degree=3) svm.SVC(kernel=‘rbf’)
聚类
小于1万数据KMeans
sklearn.cluster.KMeans(n_clusters=2, random_state=0)
无效 GMM
sklearn.mixture.GaussianMixture(n_components=2, random_state=0)
大于1万数据MiniBatchKMeans
sklearn.cluster.MiniBatchKMeans(init=‘k-means++/random’, n_clusters=3)
回归
小于10万行数据
特征少 lasso
sklearn.linear_model.Lasso(alpha=0.1)
特征多 用岭回归
sklearn.linear_model.Ridge(alpha=0.1)
无效 RBF核SVD
sklearn.kernel_ridge.KernelRidge(kernel=‘rbf’, alpha=0.1, gamma=10)
大于10万行数据 线性回归
sklearn.linear_model.LogisticRegression(C=1, penalty=‘l1/l2’)