【高级编程技术】【作业】【第十五周】【1】

sklearn练习

from sklearn import datasets
from sklearn import cross_validation
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
import sklearn.metrics as metrics

def evaluate(y_test, pred):
    acc = metrics.accuracy_score(y_test, pred)
    # f1 = metrics.f1_score(y_test, pred, average='micro')
    # auc = metrics.roc_auc_score(y_test, pred)
    # print('acc =', acc)
    # print('f1 =', f1)
    # print('auc =', auc)
    return acc

print('Naive Bayes:')
scores = []
dataset = datasets.make_classification(n_samples=1000, n_features=10, n_informative=8, n_redundant=2, n_repeated=0, n_classes=4)
kf = cross_validation.KFold(len(dataset[0]), n_folds=10, shuffle=True)
for train_index, test_index in kf:
    x_train, y_train = dataset[0][train_index], dataset[1][train_index]
    x_test, y_test = dataset[0][test_index], dataset[1][test_index]
    clf = GaussianNB()
    clf.fit(x_train, y_train)
    pred = clf.predict(x_test)
    scores.append(evaluate(y_test, pred))
print(sum(scores)/len(scores))

print('SVC:')
scores = []
params = [1e-2, 1e-1, 1e0, 1e1, 1e2]
for train_index, test_index in kf:
    x_train, y_train = dataset[0][train_index], dataset[1][train_index]
    x_test, y_test = dataset[0][test_index], dataset[1][test_index]
    for c in params:
        clf = SVC(C=c, kernel='rbf', gamma=0.1)
        clf.fit(x_train, y_train)
        pred = clf.predict(x_test)
        scores.append(evaluate(y_test, pred))
print(sum(scores)/len(scores))

print('Randm Forest:')
scores = []
params = [10, 100, 1000]
for train_index, test_index in kf:
    x_train, y_train = dataset[0][train_index], dataset[1][train_index]
    x_test, y_test = dataset[0][test_index], dataset[1][test_index]
    for estimate in params:
        clf = RandomForestClassifier(n_estimators=estimate)
        clf.fit(x_train, y_train)
        pred = clf.predict(x_test)
        scores.append(evaluate(y_test, pred))
print(sum(scores)/len(scores))

结果:

Naive Bayes:
0.654
SVC:
0.6838
Random Forest:
0.7853333333333332

Random Forest花的时间最长,评估结果也最高,Naive Bayes花的时间最短,评估成绩也最低。

备注:不知道为什么f1_score和roc_auc_score不能编译通过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OLE2高级编程技术是一种用于开发Windows平台应用程序的技术。OLE2(Object Linking and Embedding 2)是微软公司开发的一种组件化技术,它允许用户在一个应用程序中嵌入或链接其他应用程序的内容,从而实现各种功能的集成。 OLE2高级编程技术主要涉及以下几个方面: 首先,OLE2允许应用程序嵌入其他应用程序的对象,这样用户可以在一个应用程序中直接编辑、展示另一个应用程序的内容。这样的嵌入对象可以是文本、图像、表格等各种类型的数据。在编程中,我们可以使用OLE2的接口和方法来实现对象的嵌入和操作。 其次,OLE2还支持应用程序之间的对象链接。这意味着一个应用程序可以链接到另一个应用程序的对象,并实时地获取它的内容或更新。这种链接可以是单向的,也可以是双向的。在编程中,我们可以使用OLE2的链接接口和方法来实现对象间的链接和通信。 此外,OLE2还具有自动化功能,可以使应用程序通过编程方式自动操作其他应用程序。通过OLE2高级编程技术,我们可以编写脚本或宏,实现应用程序之间的自动化操作。这种自动化可以提高开发效率,实现复杂任务的自动化处理。 最后,OLE2还提供了剪贴板功能,可以在应用程序之间传输数据。通过OLE2高级编程技术,我们可以通过剪贴板将数据从一个应用程序复制或剪切到另一个应用程序,实现数据的共享和交互。 总之,OLE2高级编程技术为开发Windows平台应用程序提供了丰富的对象集成和自动化操作功能。通过学习和应用OLE2编程技术,开发人员可以更加高效地实现不同应用程序之间的集成,提升用户体验和程序功能的丰富性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值