scikit-learn的简单使用

专门用于机器学习的模块。分类,回归,无监督,数据降维,数据预处理等等,包含了常见的大部分机器学习方法。

官网:https://scikit-learn.org


使用前安装该模块:使用pycharm可以进入 Settings-> Project ->Project Interpreter -> 点击右侧,绿色加号

在出来的搜索框输入sklearn-> 点击下面的Install Package 等待提示安装成功即可。


代码(可直接运行)

from sklearn.datasets import load_iris  # 导入鸢尾花数据
# from sklearn.cross_validation import train_test_split
# 上面的被弃用了  新的模块sklearn.model_selection,将以前的sklearn.cross_validation, sklearn.grid_search 和
# sklearn.learning_curve模块组合到一起
from sklearn.model_selection import train_test_split

# 鸢尾花
iris = load_iris()
print("鸢尾花原数据\n", iris)
print("数据大小\n", len(iris['data']))
# 分为训练数据 和测试数据 比例为百分之20
train_data, test_data, train_target, test_target = train_test_split(iris.data, iris.target, test_size=0.2,
                                                                    random_state=1)
# 建模
from sklearn import tree  # 决策树

# 模型训练
clf = tree.DecisionTreeClassifier(criterion='entropy')  # 衡量分裂质量的功能。 支持的标准是基尼杂质的“gini”和信息增益的“entropy”。
clf.fit(train_data, train_target)  # 简单来说,就是求得训练集X的均值啊,方差啊,最大值啊,最小值啊这些训练集X固有的属性。
# 可以理解为一个训练过程进行预测
y_pred = clf.predict(test_data)  # 训练后返回预测结果,是标签值

# 验证
from sklearn import metrics

# 验证真实的值 打印准确度 准确分类得分
print("准确度\n", metrics.accuracy_score(y_true=test_target, y_pred=y_pred))
# 第二种验证 混淆矩阵 横轴表示实际值 纵轴表示预测值 计算混淆矩阵以评估分类的准确性
print("混淆矩阵\n", metrics.confusion_matrix(y_true=test_target, y_pred=y_pred))
# [[11  0  0]
#  [ 0 12  1]  有1表示预测错误 最好的情况是是一个对角矩阵
#  [ 0  0  6]]

# 打印决策树

with open('tree.dot', 'w') as fw:
    tree.export_graphviz(clf, out_file=fw, feature_names=iris.feature_names,
                         class_names=iris.target_names,
                         filled=True, rounded=True,
                         special_characters=True)  # 以DOT格式导出决策树。

#安装graphviz
#生成PDF可视化图像
import pydotplus

graph = pydotplus.graph_from_dot_file("tree.dot")
graph.write_pdf("iris2.pdf")

代码中提到的额外安装graphviz(较为特殊相对于其他python模块)

下载graphviz.msi安装包进行安装             (百度云) 提取码:88jc

将安装路径下的bin目录路径添加到环境变量的path

调用CMD进行测试,输入dot -version 成功则如下图

然后再运行上面的代码

会生成Dot文件tree.dot 这其实就是决策树 但是不方便解读

我们利用安装的graphviz进行转化为pdf 图示 所以还会生成iris.pdf

打开iris.pdf 如图:

小结:

  • train_test_split(iris.data,iris.target,test_size=0.2,random_state=1) 该方法注意移植到了model_selection  其中测试比例为20%
  • tree.DecisionTreeClassifier(criterion='entropy') 该函数是指定衡量分裂质量标准 有:gini(基尼) 和 entropy(增益)
  • fit(train_data,train_target) 该函数可以理解为训练过程 求得均值,方差,最大值等固有属性
  • predict(test_data) 该函数顾名思义就是返回预测结果,就是标签值
  • metrics.accuray_score(y_true=test_target,y_pred=y_pred) 验证测试数据 获取准确分类得分 方式一
  • metrics.confusion_matrix(y_true=test_target,y_pred=y_pred) 验证测试数据 获取准确分类得分 方式二
  • tree.export_graphviz(
    clf, out_file=fw, feature_names=iris.feature_names,
                         class_names=iris.target_names,
                         filled=True, rounded=True,
                         special_characters=True) 以Dot格式输出决策树文件 
  • pydotplus.graph_from_dot_file("tree.dot") 指定被图形化文件
  • write_pdf("iris.pdf") 生成PDF

注意:安装完graphviz后一定要重启一下IDE(pycharm)

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值