sklearn之train_test_split()解析_愤怒的汽水的博客-程序员信息网_sklearn spilt

技术标签: python  机器学习  基础知识  

train_test_split()是sklearn.cross_validation模块中用来随机划分训练集和测试集,以Iris数据集为例。

有以下四个特征

  • sepal length in cm
  • sepal width in cm
  • petal length in cm
  • petal width in cm

分为3个类别:

  • Iris Setosa
  • Iris Versicolour
  • Iris Virginica
mport pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None) # 加载Iris数据集作为DataFrame对象
X = df.iloc[:, [0, 2]].values # 取出2个特征,并把它们用Numpy数组表示

plt.scatter(X[:50, 0], X[:50, 1],color='red', marker='o', label='setosa') # 前50个样本的散点图
plt.scatter(X[50:100, 0], X[50:100, 1],color='blue', marker='x', label='versicolor') # 中间50个样本的散点图
plt.scatter(X[100:, 0], X[100:, 1],color='green', marker='+', label='Virginica') # 后50个样本的散点图
plt.xlabel('petal length')
plt.ylabel('sepal length')
plt.legend(loc=2) # 说明放在左上角
plt.show()

在这里插入图片描述
train_test_split是交叉验证中常用的函数,功能是从样本中随机的按比例选取train data和test data,形式为:
X_train,X_test, y_train, y_test = cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0)

参数代表含义:
train_data:所要划分的样本特征集
train_target:所要划分的样本结果
test_size:样本占比,如果是整数的话就是样本的数量
random_state:是随机数的种子。

from sklearn import datasets
import numpy as np
from sklearn.cross_validation import train_test_split

iris = datasets.load_iris() # 加载Iris数据集。
X = iris.data[:, [2, 3]]
y = iris.target # 标签已经转换成0,1,2了
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0) # 为了看模型在没有见过数据集上的表现,随机拿出数据集中30%的部分做测试

# 为了追求机器学习和最优化算法的最佳性能,我们将特征缩放
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(X_train) # 估算每个特征的平均值和标准差
sc.mean_ # 查看特征的平均值,由于Iris我们只用了两个特征,结果是array([ 3.82857143,  1.22666667])
sc.scale_ # 查看特征的标准差,结果是array([ 1.79595918,  0.77769705])
X_train_std = sc.transform(X_train)
# 注意:这里我们要用同样的参数来标准化测试集,使得测试集和训练集之间有可比性
X_test_std = sc.transform(X_test)

# 训练感知机模型
from sklearn.linear_model import Perceptron
# n_iter:可以理解成梯度下降中迭代的次数
# eta0:可以理解成梯度下降中的学习率
# random_state:设置随机种子的,为了每次迭代都有相同的训练集顺序
ppn = Perceptron(n_iter=40, eta0=0.1, random_state=0)
ppn.fit(X_train_std, y_train)

# 分类测试集,这将返回一个测试结果的数组
y_pred = ppn.predict(X_test_std)
# 计算模型在测试集上的准确性
accuracy_score(y_test, y_pred)



在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35385463/article/details/94393075

智能推荐

FPGA(4)移位寄存器的编写方法(HC595驱动)_梦灵-影的博客-程序员信息网_hc595驱动

module seg_HC595_diver(sys_clk,sys_rst,seg,sel,stcp_reg,shcp_pose,ds,oe); input sys_clk,sys_rst; input wire [7:0] seg;//段选 input wire [5:0] sel;//位选 output stcp_reg,shcp_pose,ds,oe; reg shcp_pose;//.

DATAGUARD手记(DUPLICATE)(四)_congnen9588的博客-程序员信息网

http://zhouwf0726.itpub.net/post/9689/395349http://zhouwf0726.itpub.net/post/9689/395350http://zhouwf0726.itpub.ne...

导入Keras、TensorFlow 时出现报错:Failed to load the native TensorFlow runtime._librauee的博客-程序员信息网_deepfaker failed to load the native

因为某些原因需要在cpu的环境下安装tensorflow,但是出现了Failed to load the native TensorFlow runtime的报错,下面是我的解决办法使用如下命令升级所有的包conda upgrade --all 使用如下命令安装tensorflowconda install tensorflow虽然pip install tensorfl...

MAC系统下解决Teamviewer 是商业用途只能连5分钟的问题--修改Teamviewer的id_not_found_404_的博客-程序员信息网

借鉴https://bbs.feng.com/read-htm-tid-11907107.html本人下载的是最新版本的teamview---1.4官网下载地址:https://www.teamviewer.com/cn/download/mac-os/用了几天之后发现自己被鉴定为商业用途,只能远程控制几分钟...炒鸡烦人!!!!!!自己就从网上找了个办法,自己改改使用,发现...

随便推点

计算机硕博连读最快几年,“硕博连读”到底是不是一个坑?_满洲第一奇男子的博客-程序员信息网

原标题:“硕博连读”到底是不是一个坑?近年来“硕博连读”四个字的热度是越来越高,很显然硕士学历的身价再一次开始下降,大家都纷纷开始考虑要不要读博了,很多研究生导师也会在学生研一或研二结束时问其要不要硕博连读,有些导师不但问,还会劝:小杨呀,我看你平时科研能力还不错,要不要硕博连读,就不用再参加考试了,直接攻读博士,5年就可以毕业,多省事儿…… 差点就心动了!到底什么是“硕博连读”呢?其实就和本硕连..._1671465600

springboot配置mybatis-generator生成mybatis相关接口、xml文件、和实体类_慢慢慢蜗牛的博客-程序员信息网

开发工具idea。1、在pom.xml中增加mybatis-generator相关配置。红框部分需要注意下,这个是一会儿需要新增的文件。附上源码 <!--自动生成mybatis xml文件--> <plugin> <groupId>org.mybatis.genera...

解决keras报错:EOFError: Compressed file ended before the end-of-stream marker was reached_Avrilzyx的博客-程序员信息网

(trainX,trainY),(testX,testY)=cifar10.load_data()python在下载时,出现上述错误提示,一般这种问题都是因为所下载文件已经存在或下载了部分。若再重新下载,这会出现上述错误。解决方式:找到下载的文件目录,比如:C:\Users\Admin.keras\datasets,找到,删除。...

5-3Keras报错:`Dense` can accept only 1 positional arguments ('units',), but you passed the following p_Mm901的博客-程序员信息网

model.add(Dense(20, 64))Traceback (most recent call last): File "", line 1, in model.add(Dense(20, 64))File "d:\ProgramData\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 46, in w

使用uni-app的框架进行图片或视频的(项目需求可能还有其它非图片和视频的文件,比如ppt的上传)上传_小也同学的博客-程序员信息网

思路第一步用uni.chooseImage或 uni.chooseMedia选取图片或视频,成功返回选中的图片或视频的参数信息,包括图片展示的路径(也就是本地图片的路径)、图片大小、图片格式等信息。第二步拿到本地的图片或视频的信息之后先用后台提供的上传文件的接口,对接接口之后会返回服务器(也就是线上不是本地的图片信息了)上存在的图片或视频的信息(就可以直接在浏览器输入展示图片或视频了)注意点uni-app有专门上传文件的api(uni.uploadFile)需要去看官网了解使用,其它不同的框架估

使用flume将kafka数据sink到HBase_专注于大数据技术栈的博客-程序员信息网

1. hbase sink介绍如果还不了解flume请查看我写的其他flume下的博客。接下来的内容主要来自flume官方文档的学习。顺便也强烈推荐flume 1.6 官方APIhbase的sink主要有以下两种。两种方式都提供和HBASE一样的一致性保证,即行级原子性1.1 HbaseSinkagent的配置时提供两种序列化模式:SimpleHbaseEventSer...

推荐文章

热门文章

相关标签