《机器学习》习题2-2
Posted SeigroWanfmos
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《机器学习》习题2-2相关的知识,希望对你有一定的参考价值。
《机器学习》习题2-2
数据集包括100个样本,其2的期望中正例反例各一半,假定学习算法所产生的模型是将新样本预测为训练样本数较多的类别,给出用10折交叉验证法对错误率进行评估的结果。
分析:
所抽取的训练集会有正例反例各占一半,利用十折交叉验证抽到的样本正反例概率一致,错误率的期望是0.5。
#由于本人是非计算机专业本科生,代码粗糙也可能运行起来会有问题,仅供参考,代码有误还望指出~
##10折交叉验证法
from sklearn.datasets import make_blobs
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
%matplotlib inline
##创建一个合成数据集
X, Y = make_blobs(n_features=2,n_samples=100,centers=2,random_state=0)
##此处n_features表示 X具备特征数为2,样本个数100;centers表示y只有0或1(center=2),维数为100
##n_features表示每一个样本有多少特征值
##n_samples表示样本的个数
##centers是聚类中心点的个数,可以理解为label的种类数
##random_state是随机种子,可以固定生成的数据,0_state,默认不固定
##cluster_std设置每个类别的方差
print (X.shape)
print (Y.shape)
print (X)
print (Y)
from sklearn.model_selection import KFold
KF = KFold(n_splits=10)
for train_index, test_index in KF.split(X):
print("TRAIN", train_index, "TEST", test_index)
X_train, X_test = X[train_index], Y[test_index]
Y_train, Y_test = Y[train_index], Y[test_index]
print("对于数据X训练数据:", X_train)
print("对于数据X测试数据:", X_test)
print("对于数据Y训练数据:", Y_train)
print("对于数据Y测试数据:", Y_test)
print( KF.get_n_splits(X))#K
##p显示所有的训练组和测试组
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn import datasets, svm
SVC = svm.SVC()
##设定惩罚参数,默认1.0
scores=cross_val_score(SVC, X, Y, cv=10, scoring='accuracy')
print(scores)
#estimator:估计方法对象(分类器)
#X:数据特征(Features)
#y:数据标签(Labels)
#cv:几折交叉验证
#n_jobs:同时工作的cpu个数(-1代表全部)
print(scores.mean())
##用。mean()求scores内的平均值
以上是关于《机器学习》习题2-2的主要内容,如果未能解决你的问题,请参考以下文章
原Coursera—Andrew Ng机器学习—Week 11 习题—Photo OCR
机器学习技法:Homework #5 特征变换&Soft-Margin SVM相关习题
分享《自然语言处理理论与实战》PDF及代码+唐聃+《深入浅出Python机器学习》PDF及代码+段小手+《深度学习实践:计算机视觉》PDF+缪鹏+《最优化理论与算法第2版》高清PDF+习题解答PDF+