在机器学习的监督学习中,我们将需要处理的数据分为“训练数据”和“测试数据”两种。
机器学习是一门以构建模型对未知数据进行预测的学术体系;而统计学是分析数据对产生这一数据的背景进行描述的学术体系。
大多数情况下,相比训练数据,测试数据所占的分量较少,一般为20%左右。
划分数据的方法:
# 导入执行代码时需要使用的模块
from sklearn import datasets
from sklearn.model_selection import train_test_split
# 读取名为iris的数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 将数据保存到X和y中
X_train,X_test,y_train,y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
# test_size指定的是从整体数据中选择作为测试数据的比例,范围是0-1的数值
# random_state 固定数据。
# 确认训练数据和测试数据的大小
print("X_train :",X_train.shape)
print("y_train :",y_train.shape)
print("X_test :",X_test.shape)
print("y_test :",y_test.shape)
# 导入执行代码时所需要的模块
from sklearn import svm, datasets, model_selection
# 载入名为iris的数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 使用机器学习算法SVM
svc = svm.SVC(C=1,kernel="rbf",gamma = 0.001)
# 通过交叉验证计算得分
# 在程序内部,X,y会被分割为类似x、y、train和test的样式进行处理
scores = model_selection.cross_val_score(svc, X, y, cv=5)
print(scores)
print("平均分数:", scores.mean())