Scikit-learn机器学习算法库代码实践

本文介绍了使用Scikit-learn进行机器学习的实践,包括加载MNIST数据集、训练朴素贝叶斯模型,并详细讨论了从Python2迁移到Python3需要注意的问题,同时提供了性能指标的总结和代码示例。
摘要由CSDN通过智能技术生成

Scikit-learn机器学习库包含的机器学习方法

官网直达scikit-learn: machine learning in Python — scikit-learn 0.21.3 documentation
https://scikit-learn.org/stable/

在这里插入图片描述

本例中用到的方法有:

    classifiers = {
   'NB':naive_bayes_classifier, 
                  'KNN':knn_classifier,
                   'LR':logistic_regression_classifier,
                   'RF':random_forest_classifier,
                   'DT':decision_tree_classifier,
                  'SVM':svm_classifier,
                'SVMCV':svm_cross_validation,
                 'GBDT':gradient_boosting_classifier
    }

1 加载训练集和测试集数据

核心代码注解

# 使用gizp打开文件,read bytes字节方式读取
f = gzip.open(data_file,"rb")
# 使用pickle方法从序列化的数据中按照字节方式加载到内存
train, val, test = pickcle.load(f, encoding = 'bytes')
# 获取训练数据集的样本数和特征维度
num_train, num_feat = train_x.shape
# 对训练集的标记进行去重处理,判断输出空间的维度,如果是2,就说明是一个二分类问题
is_binary_class = (len(np.unique(train_y)) == 2)

Python数据存储:pickle模块的使用讲解 - 风-fmgao - 博客园
https://www.cnblogs.com/fmgao-technology/p/9078918.html

完整代码如下

# python中对数据进行序列化,并保存到对象中的操作模块
import pickle
# 原本是linux中的解压缩命令
import gzip
# 开始读取数据
print('reading training and testing data...') 
# 使用gzip里的方法打开数据文件
f = gzip.open(data_file, "rb")
# 编码方式用bytes字节而不是ascll字符,也不是utf-8,这里自动就加载了训练集和测试集
train, val, test = pickle.load(f,encoding='bytes')
f.close()
# 第一列是特征
train_x = train[0]
# 第二列是标记
train_y = train[1]
test_x = test[0]
test_y = test[1]
# 获取大小,结果是(50000, 784),即50000行,784列,784表示特征的维度
num_train, num_feat = train_x.shape
# 大小是(10000, 784)
num_test, num_feat = test_x.shape
# np.unique(train_y)表示测试数据集去重之后的结果,测试数据集包含0~9的数据
# 如果这个长度是2,说明数字只有两类,变成二分类问题
is_binary_class = (len(np.unique(train_y)) == 2)
print('******************** Data Info *********************') 
print('#training data: %d, #testing_data: %d, dimension: %d' % (num_train, num_test, num_feat))

输出结果:

reading training and testing data...
******************** Data Info *********************
#training data: 50000, #testing_data: 10000, dimension: 784

2 模型训练,预测和性能测试报告

关键代码分析

# 统计花费的时间
time_cost = time.time() - start_time
# 选择模型
model = MultinomialNB(alpha=0.01)
# 模型训练(在训练集上)
model.fit(train_x, train_y)
# 模型预测(在测试集上)
predict = model.predict
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值