03 测试我们的算法

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets 
iris = datasets.load_iris()
iris.keys()
dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names'])
X = iris.data
y = iris.target
X.shape
(150, 4)
y.shape
(150,)

train_test_split

分离出一部分数据做训练,另外一部分数据做测试。

y
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
shuffled_indexes = np.random.permutation(len(X))
shuffled_indexes
array([ 69,  11,   5,   9,  12, 148, 111,  34,  73, 104, 108,  47,  60,102,  95,  75, 139, 110,  55,  77,  49,   6,  92,  32, 124,  21,127, 130,  66,  58,  63,   0,  80, 144,  97,   1,   8,  79, 123,101,  50,  23,  90,  56,  19, 149, 142,  57,  72, 147,  86, 145,15,  91,   4,  62,  41,  39, 135, 112, 115,  38, 138,  33, 125,134,  35,  87,  26, 114,  61, 143, 103,  43,  82, 140, 141,  30,78, 146,  10,  22,  51, 122,  18,  31, 113, 131, 129,   7,  65,59,  36,  85,  81,  28, 116, 118,  83,  67,  52, 109, 119,  16,25,   2, 136,  94,  93,  45, 132,  76,  71,  99,  54,  20,  96,3, 117,  64, 128, 120,  48,  46,  13, 126,  88,  53,  68, 107,121,  40,  29, 133,  89,  44,  42,  98, 137,  17, 100,  84,  24,27,  74, 106,  37,  14,  70, 105])
test_ratio = 0.2
test_size = int(len(X) * test_ratio)
test_indexes = shuffled_indexes[:test_size]
train_indexes = shuffled_indexes[test_size:]
X_train = X[train_indexes]
y_train = y[train_indexes]X_test = X[test_indexes]
y_test = y[test_indexes]
print(X_train.shape)
print(y_train.shape)
(120, 4)
(120,)
print(X_test.shape)
print(y_test.shape)
(30, 4)
(30,)

封装

from playML.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y)
print(X_train.shape)
print(y_train.shape)
(120, 4)
(120,)
print(X_test.shape)
print(y_test.shape)
(30, 4)
(30,)

测试我们的算法

from playML.kNN import KNNClassifiermy_knn_clf = KNNClassifier(k=3)
my_knn_clf.fit(X_train, y_train)
y_predict = my_knn_clf.predict(X_test)
y_predict
array([2, 1, 0, 0, 0, 0, 1, 1, 2, 2, 0, 0, 0, 2, 2, 0, 1, 2, 1, 1, 0, 1, 0,1, 1, 2, 2, 0, 0, 1])
y_test
array([2, 1, 0, 0, 0, 0, 1, 1, 1, 2, 0, 0, 0, 2, 2, 0, 1, 2, 1, 1, 0, 1, 0,1, 1, 2, 2, 0, 0, 1])
sum(y_predict == y_test)
29
sum(y_predict == y_test) / len(y_test)
0.96666666666666667

sklearn中的train_test_split

from sklearn.model_selection import train_test_splittrain_test_split
<function sklearn.model_selection._split.train_test_split>
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=666)
print(X_train.shape)
print(y_train.shape)
(120, 4)
(120,)
print(X_test.shape)
print(y_test.shape)
(30, 4)
(30,)

[云炬python3玩转机器学习]4-3 训练数据集,测试数据集相关推荐

  1. [云炬python3玩转机器学习笔记] 1-3课程所使用的主要技术栈

    课程环境 语言:Python3 框架:Scikit-learn 其他框架:numpy,matplotlib... IDE:Jupyter Notebook,PyCharm,ANACONDA 课程学习基 ...

  2. [云炬python3玩转机器学习笔记] 3-2 Jupter Notebook魔法命令

    xxxxxxxxxx### %run %run¶ In [1]:%run myscript/hello.py hello Machine Learning ! . . .In [2]:xxxxxxxx ...

  3. [云炬python3玩转机器学习笔记] 3-1 Jupyter Notebook

    1+2for _ in range(5):print("Hello, Machine Learning!")5+5*29+9print("天津云炬网络科技有限公司&quo ...

  4. [云炬python3玩转机器学习] 5-6最好的衡量线性回归法的指标: R Squared

    RMSE MAE 无法解决 不同模型之间的误差值比较,如预测房产数据误差为5万元,而预测学生成绩误差是10分,无法进行比较算法是用在哪个问题上好 R Squared就可以解决这种问题 y = y均值这 ...

  5. [云炬python3玩转机器学习笔记] 2-6关于回归和分类

    在这一章,我们了解到了,机器学习主要可以处理的两大类问题,是回归和分类.看起来,似乎有些局限,但是,非常出人意料的,在我们现实生活中,很多问题,都可以通过化简,或者转换的手段,转换成分类问题或者回归问 ...

  6. [云炬python3玩转机器学习笔记] 2-5机器学习相关的哲学思考

    2-5机器学习相关的哲学思考

  7. [云炬python3玩转机器学习笔记] 2-4批量学习、咋西安学习、参数学习和非参数学习

    机器学习的其他分类: 在线学习(online learining)和批量学习(离线学习 batch learning/offline learning): 批量学习(之前没有具体说明的话,都可以用批量 ...

  8. [云炬python3玩转机器学习笔记] 2-2机器学习主要任务

    机器学习(监督学习)的主要任务 一.分类:将给定的数据进行分类- 二分类任务:二选一的方式,yes/no- 多分类任务:结果不仅仅在两个结果中,而是很多结果,获得的结果很明确- 数字识别- 图像识别- ...

  9. [云炬python3玩转机器学习笔记] 2-1机器学习基础概念

    机器学习基础概念 一.关于数据 本文约定: 大写表示矩阵 小写表示向量 上标代表第几个样本 下标代表第几个特征 一般向量都表示为列向量 特征空间:每个维度都可以表示一个特征,形成一个空间(2D,3D, ...

  10. [云炬python3玩转机器学习笔记] 1-1什么是机器学习

    一. 什么是机器学习 机器学习本质是在模拟人类进行思考学习,人类的思考学习大部分来自经验的积累,机器学习也一样 二.机器学习的应用场景 (一)已投入生产的 (二)未来需要运用机器学习的领域 在未来,A ...

最新文章

  1. 网站优化只需五步技巧分享推广无界限
  2. HTTP 错误 500.21 - Internal Server Error PageHandlerFactory-Integrated
  3. android air创建文件夹,安卓版Airdrop将上线:无需安装APP,轻松实现文件隔空投送...
  4. IPC——流套接字通信
  5. 线性表11|单链表小结:腾讯面试题 - 数据结构和算法16
  6. KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
  7. 吃货注意接收,精美美食图片壁纸来喽
  8. 整数反转Java_详解 LeetCode_007_整数反转(Java 实现)
  9. 项目实战:DIY光驱激光雕刻机-激光切割机 (含制作步骤 实物 图纸 程序 上位机软件 )下载
  10. 微星电脑win、ctrl等组合键时而失灵
  11. IOS逆向-静态分析
  12. 如何使用hMailServer+云服务器搭建个人邮箱
  13. 数学建模——摘要写作
  14. JavaScript - 通过居民身份证号码获取年龄和性别(函数封装)
  15. 搜索广告的整体架构-子模块划分
  16. 14-eval 函数
  17. 给不给你升职,领导关心的是什么?
  18. 数据分析项目实战——Airbnb数据分析
  19. MacBook的分屏
  20. Robomongo的安装和配置

热门文章

  1. 【递归】【线段树】【堆】AtCoder Regular Contest 080 E - Young Maids
  2. implicit assignment of unexported field
  3. MBProgressHUD
  4. 计算机组成原理课后习题答案一
  5. hdu 5108(分解质因数)
  6. LeetCode 169.求众数
  7. Python中的三引号的用法
  8. NYOJ 14 会场安排问题
  9. NYOJ 248 BUYING FEED (贪心)
  10. k8s创建pod的步骤