当前位置: 首页 > news >正文

厦门网站推广¥做下拉去118cr抖音seo是什么意思

厦门网站推广¥做下拉去118cr,抖音seo是什么意思,网站开发 土木,开源网站 做镜像 如何做IDE为Jupyter Notebook scikit-learn官网 scikit-learn是一个专门用于机器学习的工具包 运用到啥函数不知道咋使用#xff1f;戳它–scikit-learn工具包的API文档 不知道用啥模板#xff1f;戳它–scikit-learn样例模型 功能翻译Classification分类Regression回归Cl…IDE为Jupyter Notebook scikit-learn官网 scikit-learn是一个专门用于机器学习的工具包 运用到啥函数不知道咋使用戳它–scikit-learn工具包的API文档 不知道用啥模板戳它–scikit-learn样例模型 功能翻译Classification分类Regression回归Clustering聚类Dimensionality reduction降维算法Model selection模型选择Preprocessing数据预处理 一、首先导入相关的工具包以及x轴y轴字体大小设置 import numpy as np import os %matplotlib inline import matplotlib import matplotlib.pyplot as plt plt.rcParams[axes.labelsize] 14 plt.rcParams[xtick.labelsize] 12 plt.rcParams[ytick.labelsize] 12 import warnings warnings.filterwarnings(ignore) np.random.seed(42)二、数据集读取 使用的数据集是sklearn内置数据集MNIST手写数字识别数据集70000张灰度图像的数字大小为(28,28,1)28 * 28 * 1784每一个图像样本都有784个像素点可以的等价于784个特征。 免费MNIST手写数字识别数据集下载 将下载好的mnist-original放到C:\Users\MyPC\scikit_learn_data下创建一个mldata文件夹 #查看下路径 from sklearn.datasets.base import get_data_home print (get_data_home())#C:\Users\MyPC\scikit_learn_datafrom sklearn.datasets import fetch_openml mnist fetch_openml(mnist_784)#手写数字识别数据集量少好观察 print(mnist)#数据集中X是mnist里面存放类似字典的结构里面所有数据的key是datay是标签存放target #Xmnist将data传入ymnist将target传入 X, y mnist[data], mnist[target] X.shape#(70000, 784) 当前样本数量一共7w个78428*28*1 y.shape#(70000,) 第一行标签为0第二行标签为1以此类推共70000行#前6w张当作训练集training后1w张当作测试集testing #1-6w 这6w个样本为训练集training、6w到最后7w 这1w个样本为testing测试集 X_train, X_test, y_train, y_test X[:60000], X[60000:], y[:60000], y[60000:]# 因为是数据之间是独立的故需要洗牌操作将training训练集和testing测试集打乱顺序 import numpy as npshuffle_index np.random.permutation(60000)#打算数据集的index X_train, y_train X_train[shuffle_index], y_train[shuffle_index]#回传给数据集相当于洗牌打乱操作#原始index值为012...打乱顺序之后的index如下所示 shuffle_index#array([12628, 37730, 39991, ..., 860, 15795, 56422])三、交叉验证 由上几步可得将数据集的前6w为训练集training后1w为测试集testing 首先将整个数据集分为两部分训练集和测试集其中测试集相当于高考测试集是非常非常宝贵的东西仅此一次。故为了效果更好需要中途在进行几次模拟考试类似期中期末考试这时候需要从训练集中再抽取出一部分充当期中期末考试即验证集validation。 例如training中有5份样本交叉验证就是将这5份打乱依次从中随机抽取1份为validation剩下的为training。然后每次通过模型去训练得出一个预测结果求取平均值即可。 # 为了简单起见这里只判断样本是否是5 y_train_5 (y_train5)#是否是5 y_test_5 (y_test5)#将10分类转换为2分类进行演示#训练集前十个样本是不是5 y_train_5[:10]#array([False, False, False, False, False, False, False, False, False, True])SGDClassifier的方法详细参数 #SGDClassifier 梯度下降分类器 from sklearn.linear_model import SGDClassifier sgd_clf SGDClassifier(max_iter5,random_state42)#max_iter最大迭代次数random_state随机种子每次随机策略都一样 sgd_clf.fit(X_train,y_train_5)#通过SGD训练分类器SGDClassifier(alpha0.0001, averageFalse, class_weightNone,early_stoppingFalse, epsilon0.1, eta00.0, fit_interceptTrue,l1_ratio0.15, learning_rateoptimal, losshinge, max_iter5,n_iterNone, n_iter_no_change5, n_jobsNone, penaltyl2,power_t0.5, random_state42, shuffleTrue, tolNone,validation_fraction0.1, verbose0, warm_startFalse)#训练完成之后对该分类器进行测试预测35000这个样本是5为啥然后进行通过索引查下是否是5 sgd_clf.predict([X[35000]])#array([ True])#通过索引验证下35000样本是否是5 y[35000]#5.0Ⅰ交叉验证的实现 cross_val_score方法的详细参数 参数一将训练的模型传入进来 参数二传入当前的训练数据 参数三当前的标签 参数四cv3表示把数据集切分成3分最后进行3次交叉验证会输出3个交叉验证的结果 参数五使用什么指标进行评估得分,accuracy表示使用准确率来进行评估from sklearn.model_selection import cross_val_score cross_val_score(sgd_clf,X_train,y_train_5,cv3,scoringaccuracy)#array([0.9502 , 0.96565, 0.96495])X_train.shape#(60000, 784)#训练的时候传入了6w个样本y_train_5.shape#(60000,)Ⅱ自己对数据集进行切分训练预测 StratifiedKFold方法的详细参数 clone方法的详细参数 因为把数据集切分为多份每一份都需要用的和原来一样的分类器相同的模型相同的参数。 交叉验证为了保证公平每次传入的参数都是相同的。为了保证公平使用了clone方法。 from sklearn.model_selection import StratifiedKFold from sklearn.base import cloneskflods StratifiedKFold(n_splits3,random_state42)#将数据集分成3分随机种子这里设置的为42 for train_index,test_index in skflods.split(X_train,y_train_5):#对每一份数据集进行fit操作split方法切分数据集和标签clone_clf clone(sgd_clf)#克隆分类器X_train_folds X_train[train_index]#通过索引找图片样本y_train_folds y_train_5[train_index]#这三类训练和测试数据都要来源于trainingX_test_folds X_train[test_index]y_test_folds y_train_5[test_index]clone_clf.fit(X_train_folds,y_train_folds)y_pred clone_clf.predict(X_test_folds)n_correct sum(y_pred y_test_folds)print(n_correct/len(y_pred))0.9502 0.96565 0.96495四、Confusion Matrix-混淆矩阵 已知条件一个班100人男80女20。 目标找出所有女生。 结果从班里面找了50人其中20个女的30个男的。 相关Relevant正类无关NonRelevant负类被检索到RetrievedTrue PositivesTP正类判定为正类即准确判断出这是为女生False PositivesFP负类判定为正类“存伪”即分明是男生却判断出是女生没被检索到NotRetrievedFalse NegativesFN正类判定为负类“去真”即分明是女生却判断出是男生True Negatives,TN负类判定为负类即一个男生被判定是男生 故TP20FP30FN0TN50 cross_val_predict方法的详细参数 参数一分类器的名称 参数二训练集 参数三标签 参数四分成几份from sklearn.model_selection import cross_val_predict y_train_pred cross_val_predict(sgd_clf,X_train,y_train_5,cv3)y_train_pred.shape#(60000,)#训练的时候传入了6w个样本得到6w个样本的预测结果X_train.shape#(60000, 784)confusion_matrix方法的详细参数 一般的混淆矩阵参数为2×2 参数一训练值 参数二实际预测结果from sklearn.metrics import confusion_matrix confusion_matrix(y_train_5,y_train_pred)array([[53272, 1307],[ 1077, 4344]], dtypeint64)对于array数组中参数分析 五、Precision精度 and Recall召回率 Positives5 Negatives ≠5 precision_score方法的详细参数 recall_score方法的详细参数 from sklearn.metrics import precision_score,recall_score precision_score(y_train_5,y_train_pred)#0.7687135020350381recall_score(y_train_5,y_train_pred)#0.801328168234643将Precision 和 Recall结合到一个称为F1 score 的指标,调和平均值给予低值更多权重。 因此如果召回和精确度都很高分类器将获得高F 1分数。 f1_score方法的详细参数 from sklearn.metrics import f1_score f1_score(y_train_5,y_train_pred)#0.7846820809248555六、阈值对结果的影响 decision_function方法的详细参数 y_scores sgd_clf.decision_function([X[35000]]) y_scores#array([43349.73739616])t 50000 y_pred (y_scores t)#设置阈值 y_pred#array([False])Scikit-Learn不允许直接设置阈值但它可以得到决策分数调用其decision_function方法而不是调用分类器的predict方法该方法返回每个实例的分数然后使用想要的阈值根据这些分数进行预测 y_scores cross_val_predict(sgd_clf, X_train, y_train_5, cv3, methoddecision_function)y_scores[:10]array([ -434076.49813641, -1825667.15281624, -767086.76186905,-482514.55006702, -466416.8082872 , -311904.74603814,-582112.5580173 , -180811.15850786, -442648.13282116,-87710.09830358])from sklearn.metrics import precision_recall_curve precisions, recalls, thresholds precision_recall_curve(y_train_5, y_scores)y_train_5.shape#(60000,)#6w个样本thresholds.shape#(59698,)#59698个阈值precisions[:10]array([0.09080706, 0.09079183, 0.09079335, 0.09079487, 0.09079639,0.09079792, 0.09079944, 0.09080096, 0.09080248, 0.090804 ])precisions.shape#(59699,)#59699个阈值recalls.shape#(59699,)#59699个阈值对于不同的阈值随着阈值的变换精度和召回率变换的情况如下 def plot_precision_recall_vs_threshold(precisions,recalls,thresholds):plt.plot(thresholds,precisions[:-1],b--,labelPrecision)plt.plot(thresholds,recalls[:-1],g-,labelRecall)plt.xlabel(Threshold,fontsize16)plt.legend(locupper left,fontsize16)plt.ylim([0,1])plt.figure(figsize(8, 4)) plot_precision_recall_vs_threshold(precisions,recalls,thresholds) plt.xlim([-700000, 700000]) plt.show()随着Recall的变换Precision的变换如下 def plot_precision_vs_recall(precisions, recalls):plt.plot(recalls, precisions, b-, linewidth2)plt.xlabel(Recall, fontsize16)plt.ylabel(Precision, fontsize16)plt.axis([0, 1, 0, 1])plt.figure(figsize(8, 6)) plot_precision_vs_recall(precisions, recalls) plt.show()七、ROC curves常用 receiver operating characteristic (ROC) 曲线是二元分类中的常用评估方法 ①它与精确度/召回曲线非常相似但ROC曲线不是绘制精确度与召回率而是绘制true positive rate(TPR) 与false positive rate(FPR) ②要绘制ROC曲线首先需要使用roc_curve函数计算各种阈值的TPR和FPR TPR TP / (TP FN) (Recall) FPR FP / (FP TN) from sklearn.metrics import roc_curve fpr, tpr, thresholds roc_curve(y_train_5, y_scores)def plot_roc_curve(fpr, tpr, labelNone):plt.plot(fpr, tpr, linewidth2, labellabel)plt.plot([0, 1], [0, 1], k--)plt.axis([0, 1, 0, 1])plt.xlabel(False Positive Rate, fontsize16)plt.ylabel(True Positive Rate, fontsize16)plt.figure(figsize(8, 6)) plot_roc_curve(fpr, tpr) plt.show()虚线表示纯随机分类器的ROC曲线; 一个好的分类器尽可能远离该线朝左上角。 比较分类器的一种方法是测量曲线下面积AUC。完美分类器的ROC AUC等于1而纯随机分类器的ROC AUC等于0.5。 Scikit-Learn提供了计算ROC AUC的函数 from sklearn.metrics import roc_auc_scoreroc_auc_score(y_train_5, y_scores)#0.9624496555967156
http://www.huolong8.cn/news/27888/

相关文章:

  • 网站功能型和展示型的区别做网站鼎盛
  • 青海 住房和建设厅网站分享网站友情链接
  • 百度回收网站搭建杭州网络整合营销公司
  • 建立网站心得个人网站建设如何赚钱
  • 住房城乡建设部 网站本科毕业 做网站编辑
  • 网站如何设定关键词网页界面设计总结与体会
  • 做网站用什么语言和工具系统门户网站建设常用功能
  • 商丘住房和城乡建设网站美的集团网站建设
  • html语言中文解释大全 | 网站建设 - 红黑联盟论坛国内外贸公司前十名
  • 域名购买成功后怎么做网站网站开发第三方支付
  • 长沙做个网站多少钱郑州做网站推广价格
  • 怎么从网站知道谁做的最大的网站
  • 视觉网站建设dw做的网站怎样做成手机版的
  • 有什么做任务的网站吗做网站解析要多久
  • 机械行业网站 方案二次开发源代码
  • 珠海手机网站建设公司wordpress模版仿制
  • 网站开发看什么书移动互联网开发的学习心得300字
  • 企业建站做网站免费的html模板下载
  • 连锁餐饮网站建设中国跨境电商平台有多少
  • 鑫诺科技网站建设手机上网站
  • 查询网站信息php wap网站源码
  • 建设产品网站长沙网上房地产
  • 天津个人网站建设重庆建筑工程职业学院
  • 新公司注册在哪个网站手机网站一键开发
  • dw制作asp网站模板下载wordpress 登录可见
  • 网站flash引导页下载如何做一个营销型网站
  • 黄石建设网站公司哪家公司建站的
  • 网站音频播放器源码免费作图网站都有哪些
  • 网站公司seowordpress标签转拼音
  • 免费php企业网站管理系统那个网站开发三味