Sklearn 您所在的位置:网站首页 模型5算的话是发售价5折吗 Sklearn

Sklearn

2024-03-08 20:00| 来源: 网络整理| 查看: 265

学习资料: sklearn 中文文档: http://www.scikitlearn.com.cn/ pandas cookbook:https://github.com/iamseancheney/pythonbooks/blob/master/Pandas%20Cookbook%20%EF%BC%8DTheodore%20Petrou.pdf

train_test_split函数:划分训练集与测试集 random_state:该组随机数的编号,在重复试验的时候,保证得到一组一样的随机数(划分相同)。种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。改变random_state值的,会使模型的性能改变。

LogisticRegression():参数说明 SVM.SVC():参数说明

惩罚系数C越大,说明越不能容忍出现误差,但容易过拟合。C越小,容易欠拟合。C过大或过小,泛化能力变差。

交叉验证优点:交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合。还可以从有限的数据中获取尽可能多的有效信息。 得分cross_val_score(模型, 所有数据 , 所有数据的标签,折数cv) 代码:

import pandas as pd from sklearn.model_selection import train_test_split from sklearn.model_selection import cross_val_score from sklearn.linear_model import LogisticRegression from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler from sklearn.metrics import accuracy_score #加载数据集 df = pd.read_csv('D:/cross.csv') feat = df.iloc[0:,:9] #行号索引 [行选择,列选择] class_num = df.loc[:,'Class'] #行标签索引 [行标签,列标签] 选取Class列所有数据 #数据处理 X = feat.values y = class_num.values X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1/5, random_state= 12) #标准化——原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。 #消除奇异样本数据导致的不良影响:奇异样本数据的存在会引起训练时间增大,同时也可能导致无法收敛。 sd = StandardScaler() X_train = sd.fit_transform(X_train) X_test = sd.fit_transform(X_test) Lg = LogisticRegression(C = 100.0, random_state=1) #逻辑回归 惩罚系数C 随机数 Lg.fit(X_train, y_train) #训练模型 y_pre = Lg.predict(X_test) #结果预测 Lg_scores = cross_val_score(Lg, X_train, y_train, cv=5) print('LogisticRegression:\n 准确率: %.2f' % accuracy_score(y_test, y_pre)) print(" Scores:%s" %Lg_scores) print(" s:",Lg_scores.mean()) svm = SVC(kernel = 'linear',C = 10.0,random_state=1) #SVM 核函数为线性核:linear svm.fit(X_train, y_train) y_pre1 = svm.predict(X_test) svm_scores = cross_val_score(svm, X_train, y_train, cv=5) print('SVM:\n 准确率: %.4f' % accuracy_score(y_test, y_pre1)) print(" Scores:%s" %svm_scores) print(" s:",svm_scores.mean())

结果:

LogisticRegression: 准确率: 0.98 Scores:[0.9625 0.94375 0.95 0.975 0.975 ] s: 0.96125 SVM: 准确率: 0.9900 Scores:[0.975 0.95625 0.95 0.96875 0.975 ] s: 0.9649999999999999

准确率与得分有差距的原因:之前就把数据分为了训练数据和测试数据,在训练数据中做了5 fold的划分,而模型没有见过test data,有一定程度的过拟合。

数据集: 链接:https://pan.baidu.com/s/1cxiEbYpuhs5-OE9ZpnoouQ 提取码:eh0a



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有