精华内容
下载资源
问答
  • 计算机科学与技术(本科)专业 毕业设计(论文)实施意见
  • 空间后方会,很简单的,C#编程,希望大家踊跃下载,多多提出宝贵意见
  • Stata: 交叉项\乘项该这么分析!

    万次阅读 2019-05-08 08:35:35
    什么是共同支持? 理想情况下,为了计算处理变量 D 在给定的调节变量值 X 0 X_0 X 0 ​ 的边际效应,需要满足: 有足够数量的观测值,它们的 X 值接近于 x 0 x_0 x 0 ​ 。 也就是说,使用的数据在 x 0 x_0 x...

    Source:Jens Hainmueller, Jonathan Mummolo and Yiqing Xu, 2018, How Much Should We Trust Estimates from Multiplicative Interaction Models? Simple Tools to Improve Empirical Practice

    原文作者:

    原文链接:http://yiqingxu.org/papers/english/2018_HMX_interaction/main.pdf

    推文作者:刘聪聪 (中山大学),陈点点 (中国人民大学)

    Stata 连享会: 知乎 | 简书 | 码云


    Stata连享会 精品专题 || 精彩推文
    点击此处-查看完整推文列表

    2019暑期“实证研究方法与经典论文”专题班-连玉君-江艇主讲

    2019暑期“实证研究方法与经典论文”专题班-连玉君-江艇主讲

    连享会交乘项\交叉项专题推文系列

    1. 问题介绍

    交叉项探讨的是结果变量 Y,处理变量 D 和调节变量 X 三个变量的关系。

    实证研究应用中经常犯两个错误:

    • 错误1 模型设定错误,假设交叉项的影响是线性的
    • 错误2 数据缺乏共同支持

    1.1 模型设定错误: LIE 假设

    交叉项模型普遍设定为形如下式的回归方程:

    (1) Y = μ + η X + α D + β ( D ⋅ X ) + Z γ + ϵ \tag{1} Y=\mu+\eta X+\alpha D+\beta (D\cdot X)+Z\gamma +\epsilon Y=μ+ηX+αD+β(DX)+Zγ+ϵ(1)

    式中,Z 为控制变量, μ \mu μ 为常数项, ϵ \epsilon ϵ 为干扰项。

    该模型隐含了一个关键假设——线性交互作用假设(linear interaction effect assumption, 下文简写为 LIE) ,即处理变量 D 对结果变量 Y 的边际效应为

    (2) M E D = ∂ Y ∂ D = α + β X \tag{2}ME_D =\frac{\partial Y}{\partial D}=\alpha +\beta X MED=DY=α+βX(2)

    其含义是:

    1. X 每增加一个单位,D 对 Y 的边际作用发生 β \beta β单位变化;
    2. X 对 D 的边际效应的影响在 X 的整个定义域内不变,均为常数 β \beta β

    显而易见,这个假设过于严格,因为我们几乎没有理论或经验理由相信 D 对 Y 的影响的异质性以这种线性形式存在。D 的边际效应更有可能是非单调或非线性的。比如,当 X 较小或较大时,D 的边际效应小,而当 X 在中间的时候, D 的边际效应比较大。

    1.2 调节变量 X 缺乏共同支持

    什么是共同支持?

    理想情况下,为了计算处理变量 D 在给定的调节变量值 X 0 X_0 X0的边际效应,需要满足:

    1. 有足够数量的观测值,它们的 X 值接近于 x 0 x_0 x0
      也就是说,使用的数据在 x 0 x_0 x0附近有足够多的观测值。
    2. 在 X 处的处理变量 D 是有变化的。

    不满足以上的任何一个条件,那么条件边际效应的估计就是以函数形式对没有数据或极少量数据的区域的过度外推或内插,因此估计是脆弱的并且依赖于模型。

    以下情形的数据通常缺乏共同支持:

    1. D 或 X 的分布是高度有偏的
    2. D 或 X 在二者的共同支持区域内没有变化

    模型(1)意味着,处理效应可以用处理变量 D 分别取值为 d 1 d_1 d1 d 2 d_2 d2的差来表示:

    KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲ Eff(d_1,d_2) &…

    可见,在 LIE 假设下,D 对 Y 的影响实质上是线性函数 ( μ + η X + α d 1 + β d 1 X ) (\mu+\eta X+\alpha d_1+\beta d_1 X) (μ+ηX+αd1+βd1X) ( μ + η X + α d 2 + β d 2 X ) (\mu+\eta X+\alpha d_2+\beta d_2 X) (μ+ηX+αd2+βd2X)之差,也即是说,对于所有的 d 1 d_1 d1 d 2 d_2 d2,这一线性形式都成立。如果存在非线性或非单调的影响,或者 X 或 D 的分布有偏,那么这一假设就无法成立。

    比如,当 D 为二值变量时,在 x 0 x_0 x0附近,所有的 D 均取值为 1,此时缺乏 D=0 的观测值,数据不满足共同支持条件,对 D 的边际效应的估计就依赖于对 D=0 的内插或外推,因此高度依赖于模型。

    2. 检验诊断

    问题提出来了,怎么解决呢?作者给出了一种非常简单又有效的办法:数据可视化,通过线性交互作用诊断图进行判断。

    • 第一步,将原始数据按 X 进行分组,画出 Y-D 的散点图。如果 X 是类别变量,那么直接分组;如果 X 是连续变量,那么按照分位数等分成低中高三组。

    • 第二步,检查 Y 与 X 在各组中的关系是否为线性。在散点图上用蓝色线进行线性回归拟合,用红色线进行 LOESS 拟合。如果真实模型是线性的,那么两条线非常接近;反之,当真实模型是非线性的,两条线走势有明显差异。这是对错误 1 的检验。此外,对比同一条拟合线在不同分组中的走势,还可以对交互项的作用方向做出初步判断。

    • 第三步,检验共同支持条件。在散点图上叠加 X 分布的箱型分布图。散点图本身也提供了 X 分布的信息。如果 X 在数据区间内都有分布而且比较均匀,比如 25 分位点到 75 分位点几乎占据整个区域,那么满足共同支持条件;反之,X 集中在某个区间,在另外的区域数据很少或没有观测值,则不满足共同支持条件。

    如果交互作用是双向的(一般模型均如此),那么要把 D 与 X 位置互换,将上述步骤再做一遍。

    如下图所示,图 a 中 D 为类别变量,LOWESS 与 OLS 几乎完全重合,满足线性边际效应;但 X 分布集中在 2.5~3.5 之间,缺乏共同支持。图 b 中 D 为类别变量,LOWESS 为 U 型,说明数据存在非线性;X 分布贯穿整个区域,满足共同支持条件。图 c 中 D 为连续变量,分三组图示,LOWESS 与 OLS 几乎重合,满足线性边际效应;X 在各个分组都有分布且比较均匀,满足共同支持条件。

    LID plots

    3. 估计量

    在散点图的基础上,作者进一步提供了箱型估计量和核估计量两种估计量,对乘法交互模型的拟合结果进行检验,并且提供了将其可视化的程序 interflex

    这里的偏差-方差权衡在于,一方面,这些估计量减少了缺乏共同支持造成的偏差;另一方面,若交互项的影响确实是线性的,则线性模型的结果要比这些估计量更有效。

    3.1 箱型估计量(Binning Estimator)

    按照连续变量的分组方法进行估计,得到低中高(L,M,H)三个边际效应估计系数和相应的置信区间。如下图所示,

    1. 如果
      (1)线性回归线与 L,M,H 不存在显著差异(可根据 Wald 检验判断)
      (2)L,M,H 在整个数据区间内分布比较均匀,不是集中在某个区域
      说明满足 LIE 假设和共同支持条件,线性模型提供的是一致和有效估计量。

    2. 如果箱型估计量 L,M,H 偏离原模型的拟合线,分布在其两侧,说明条件边际作用非线性,拒绝 LIE 假设。

    Binning Estimator

    3.2 核估计量(Kernel Estimator)

    箱型估计量只有三个点,核估计量则呈现了数据区间内的完整曲线。如下图所示,其判断依据为:

    1. 如果核估计量结果接近一条直线,则满足 LIE 假设;如果弯曲程度很大,那么 LIE 假设不满足,线性模型结果不一致。

    2. 置信区间越宽的区域,越缺乏共同支持。

    Kernel Estimator

    4.结论

    文章的主要内容是针对线性交互模型中存在的线性交互作用假设不适用和缺乏共同支持两个主要问题,分析问题的由来(模型设定错误和数据不足)及可能的影响(估计量不一致且有偏或高度依赖模型),提出了问题的识别方法(线性交互作用诊断图 LID plot)以及更有效的估计量(箱型估计量和核估计量),并且把新方法用于已有文章进行检验。

    最后,作者建议分析交互作用的研究者采取以下安全措施:

    1. 画 LID 图以检查原始数据,包括 X|D 和 D|X 两个方面。
    2. 参考箱型估计量。
    3. 参考核估计量。
    4. 谨慎使用线性交互模型。得到箱型或核估计量支持才使用线性模型,并且应当在有充分的共同支持的数据区域计算边际效应。建立线性模型后还要再参考 Brambor, Clark and Golder (2006)一文的使用指导。

    5.interflex 命令介绍

    命令安装 ssc install interflex, replace all

     interflex outcome treat moderator [covar] [if] [in] [weight] [, options]
    //选项解释
    *- fe(varlist)             specify fixed effects variables
    *- type(string)            specify the estimation strategy, including binning (default), linear, and kernal
    *- vce(vcetype)            specify the variance–covariance estimator; vcetype can be homoscedastic (default), robust, cluster, bootstrap, or off
    *-  bw(real)                set the bandwidth for kernel estimations
    

    当使用 interflex 检查LIE和共同支持假设时,其命令结构是在后面顺次加上被解释变量Y,处理变量 D,调节变量 X,以及控制变量。

    各个选项的含义:

    • fe(varlist) 设定固定效应变量;
    • type(string) 设定估计方法,箱型(默认)、线性和核估计量;
    • vce(vcetype) 设定协方差矩阵类型,默认是同方差,也可以选择 robust , cluster 等;
    • bw(real) 可以设定核估计带宽值,以提高效率。

    6.应用

    下面以作者提供的数据进行展示和说明。

    6.1 线性二分类变量处理效应

    use interflex_s1.dta, clear
    twoway (sc Y X) (lowess Y X), by(D) // Plot the raw data
    interflex Y D X Z1 // Estimate a linear interaction model
    

    scatter1

    线性二分类变量处理效应

    当D是二分类变量时,比较简单,通过作出散点图和lowess图可以简单判断下LIE假设是否成立。之后用interflex发现箱型估计量支持使用线性交互模型。

    6.2 线性连续变量处理效应

    use interflex_s2.dta, clear
    egen Xbin = cut(X), group(3)       //生成类别变量
    twoway (sc Y D) (lowess Y D), by(Xbin)
    interflex Y D X Z1, type(kernel) bw(5.0)
    

    scatter2

    线性连续变量处理效应

    当D为连续变量时,情况就更复杂了一点。作者建议说使用分组(Binning)的方法,可以检查出绝大多数的问题。通常可以将样本基于调节变量分成几个等分的几组,在本例中,0 代表 low X ,1 代表 medium X , 2 代表 high X。然后在每一组都作出线性拟合线和 lowess 拟合线。

    可以发现,当X较小,为第0组的时候,Y和D的关系为负;当X为第一组的时候,Y与D的关系是平的;而当X属于第2组,即最大的时候,Y与D的关系为正的。从中也可以简单推测认为是符合LIE假设的。通过 interflex 的核估计量检验,可以认为是符合LIE假设的。

    6.3 非线性二分类变量处理效应

    use interflex_s3.dta, clear
    twoway (sc Y X) (lowess Y X), by(D)
    

    sactter3

    从散点图和 LOWESS 的拟合线中可以看出,数据存在明显的非线性边际效应。因此,运用箱型估计量进行检验:

    interflex Y D X Z1, vce(r)
    p value of Wald test: 0.0000
    

    Binning1

    可以看到,当线性交互模型不正确时,箱型估计量与模型的拟合结果(黑色直线及阴影区域)相去甚远。

    注意图底部的堆积柱状图,它显示了调节变量 X 的分布。柱体的总高度是调节变量 X 在整个样本中的分布,红色和灰色阴影条分别是 X 在处理组和控制组中的分布。若某一个柱体中只有红色或灰色,则该区域缺乏共同支持。

    与此同时,Stata 报告了 Wald 检验的 p 值。其原假设为:交互作用是线性的。拒绝原假设说明存在非线性影响,但接受原假设不一定满足LIE 假设,尤其是在小样本的情况下。

    使用核估计量进一步检验:

     interflex Y D X Z1, type(kernel) bw(0.345)
    

    在选项中设定 type(kernel) 会自动通过交叉验证选择最佳带宽,但程序运行比较费时。在第一次运行结束后复制好带宽的值,放入 bw() 选项中可以提高效率。

    kernel1

    使用核估计得到的边际效应估计量与真实的数据产生过程十分接近。

    6.4 固定效应对结果的影响

    use interflex_s4.dta, clear
    //控制 组别和年份 固定效应
    //画出原始数据
    twoway (sc Y X) (lowess Y X), by(D)
    interflex Y D X Z1, cl(group)
    //如果固定效应没有被控制,那么箱型统计量会有较大的置信区间
    // 控制固定效应
    interflex Y D X Z1, fe(group year) cl(group)
    

    scatter4

    未控制固定效应

    控制固定效应

    当没有控制固定效应时,发现置信区间明显很大;而当控制固定效应之后,置信区间明显变小了。

    文中数据和代码 help interflex 即可得到。(注:help 文档里的数据可以自行到作者网站http://yiqingxu.org/software.html
    上获得。)

    相关资料

    关于我们

    • Stata 连享会(公众号:StataChina)】由中山大学连玉君老师团队创办,旨在定期与大家分享 Stata 应用的各种经验和技巧。
    • 公众号推文同步发布于 CSDN-Stata连享会简书-Stata连享会知乎-连玉君Stata专栏。可以在上述网站中搜索关键词StataStata连享会后关注我们。
    • 点击推文底部【阅读原文】可以查看推文中的链接并下载相关资料。
    • Stata连享会 精品专题 || 精彩推文

    联系我们

    • 欢迎赐稿: 欢迎将您的文章或笔记投稿至Stata连享会(公众号: StataChina),我们会保留您的署名;录用稿件达五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
    • 意见和资料: 欢迎您的宝贵意见,您也可以来信索取推文中提及的程序和数据。
    • 招募英才: 欢迎加入我们的团队,一起学习 Stata。合作编辑或撰写稿件五篇以上,即可免费获得 Stata 现场培训 (初级或高级选其一) 资格。
    • 联系邮件: StataChina@163.com

    往期精彩推文

    点击此处-查看完整推文列表推文列表")


    欢迎加入Stata连享会(公众号: StataChina)

    展开全文
  •   那么,什么k是最佳的?对训练数据构建模形式尝试不同K值,看对训练集本身和测试集预测类别的结果模型如何.最后看K折交叉验证如何支出最好的K.   注:实践中,当扫描这样的参数,使用训练集测试模型是以个糟糕的...

    误差模型:过拟合,交叉验证,偏差-方差权衡

    作者Natasha Latysheva;Charles Ravarani
    发表于cambridgecoding


    介绍

      在本文中也许你会掌握机器学习中最核心的概念:偏差-方差权衡.其主要想法是,你想创建尽可能预测准确并且仍能适用于新数据的模型(这是泛化).危险的是,你可以轻松的在你制定的数据中创建过度拟合本地噪音的模型,这样的模型是无用的,并且导致弱泛化能力,因为噪声是随机的,故而在每个数据集中是不同的.从本质上讲,你希望创建仅捕获数据集中有用成份的模型.另一方面,泛化能力很好但是对于产生良好预测过于僵化的模型是另一个极端(这称之为欠拟合).
      我们使用k-近邻算法讨论并展示这些概念,k-近邻带有一个简单的参数k,可以用不同的参数清楚的展示欠拟合,过拟合以及泛化能力的思想.同时,平衡欠拟合和过拟合之间的相关概念称为偏差-方差权衡.这里有一个表格概括了无论是过拟合或者欠拟合模型中一些不同但相同

      我们将解释这些术语的意思,以及他们如何关联的.同样也会讨论交叉验证,这是评估模型准确率和泛化能力的优秀指标.
      你会在未来的所有博文中遇到这些概念,将涵盖模型优化,随机森林,朴素贝叶斯,逻辑回归以及如何将不同模型组合成为集成元模型.

    产生数据

      让我们从建立人工数据集开始.你可以轻松的使用sklearn.datasets中的make_classification()函数做到这一点.具体来说,你会生成相对简单的二元分类问题.为了让它更有趣一点,让我们的数据呈现月牙型并加入一些随机噪声.这应该能让其更真实并提高分类观测的难度.

    “`

    Creating the dataset

    e.g. make_moons generates crescent-shaped data

    Check out make_classification, which generates linearly-separable data

    from sklearn.datasets import make_moons
    X, y = make_moons(
    n_samples=500, # the number of observations
    random_state=1,
    noise=0.3
    )

    Take a peek

    print(X[:10,])
    print(y[:10])

    “`

    [[ 0.50316464 0.11135559]
    [ 1.06597837 -0.63035547]
    [ 0.95663377 0.58199637]
    [ 0.33961202 0.40713937]
    [ 2.17952333 -0.08488181]
    [ 2.00520942 0.7817976 ]
    [ 0.12531776 -0.14925731]
    [ 1.06990641 0.36447753]
    [-0.76391099 -0.6136396 ]
    [ 0.55678871 0.8810501 ]]
    [1 1 0 0 1 1 1 0 0 0]

      你刚生成的数据集如下图所示:

    “`
    import matplotlib.pyplot as plt
    from matplotlib.colors import ListedColorma
    %matplotlib inline # for the plots to appear inline in jupyter notebooks

    Plot the first feature against the other, color by class

    plt.scatter(X[y == 1, 0], X[y == 1, 1], color=”#EE3D34”, marker=”x”)
    plt.scatter(X[y == 0, 0], X[y == 0, 1], color=”#4458A7”, marker=”o”)

    “`

    <\center>
      接下来,让我们将数据且分为 训练集测试集 .训练集用于开发和优化模型.测试集完全分离,直到最后在此运行完成的模型.拥有测试集允许你在之前看不到的数据之外,模型运行良好的估计.

    “`
    from sklearn.cross_validation import train_test_split

    Split into training and test sets

    XTrain, XTest, yTrain, yTest = train_test_split(X, y, random_state=1, test_size=0.5)

    “`

      使用K近邻(KNN)分类器预测数据集类别.Introduction to Statistical Learning第二章提供了关于KNN理论非常好介绍.我是ISLR书的脑残粉.你同样可以看看之前文章 how to implement the algorithm from scratch in Python.

    介绍KNN中的超参数K

      KNN算法的工作原理是,对新数据点利用K近邻信息分配类别标签.只注重于和它最相似数据点的类,并分配这个新数据点到这些近邻中最常见的类.当使用KNN,你需要设定希望算法使用的K值.
      如果K很高(k=99),模型在对未知数据点类别做决策是会考虑大量近邻.这意味着模型是相当受限的,因为它分类实例时,考虑了大量信息.换句话说,一个大的k值导致相当”刚性”的模型行为.
      相反,如果k很低(k=1,或k=2),在做分类决策时只考虑少量近邻,这是非常灵活并且非常复杂的模型,它能完美拟合数据的精确形式.因此模型预测更依赖于数据的局部趋势(关键的是,包含噪声).
      让我们看一看k=99与k=1时KNN算法分类数据的情况.绿色的线是训练数据的决策边界(算法中的阈值决定一个数据点是否属于蓝或红类).

      在本文最后你会学会如何生成这些图像,但是先让我们先深入理论.
      当k=99(左),看起来模型拟合有点太平滑,对于有点接近的数据可以忍受.模型具有低灵活性低复杂度 .它描绘了一个笼统的决策边界.它具有比较高的偏差 ,因为对数据建模并不好,模型化数据的底层生成过程太过简单,并且偏离了事实.但是,如果你扔到另一个稍微不同的数据集,决策边界可能看起来非常相似.这是不会有非常大差异的稳定模型–它具有低方差.
      当k=1(右侧),你可以看到模型过度拟合噪声.从技术上来说,在训练集生成非常完美的预测结果(在右下角的错误等于0.0),但是希望你可以看到这样的拟合方式对于单独数据点过于敏感.牢记你在数据集中添加了噪声.看起来模型拟合对噪声太过重视并且拟合的非常紧密.你可以说,k=1的模型具有高灵活性高复杂度 ,因为它对数据调优非常紧密.同样具有低偏差,如果不出意外,决策边界肯定适合你观测数据的趋势.但是,在稍微改变的数据上,拟合的边界会大大改变,这将是非常显著的.K=1的模型具有高方差 .
      但是模型的泛化能力如何?在新数据上表现如何?
      目前你只能看到训练数据,但是量化训练误差没多大用处.对模型概括刚学习的训练集性能有多好,你不感兴趣.让我们看看在测试集表现如何,因为这会对模型好坏给你一个更直观的印象.试着使用不同的K值:

    from sklearn.neighbors import KNeighborsClassifier
    from sklearn import metrics 
    knn99 = KNeighborsClassifier(n_neighbors = 99)
    knn99.fit(XTrain, yTrain)
    yPredK99 = knn99.predict(XTest)
    print "Overall Error of k=99 Model:", 1 - round(metrics.accuracy_score(yTest, yPredK99), 2)
    knn1 = KNeighborsClassifier(n_neighbors = 1)
    knn1.fit(XTrain, yTrain)
    yPredK1 = knn1.predict(XTest)
    print "Overall Error of k=1 Model:", 1 - round(metrics.accuracy_score(yTest, yPredK1), 2)

    Overall Error of k=99 Model: 0.15
    Overall Error of k=1 Model: 0.15
      实际上,看起来这些模型对测试集表现的大约同样出色.下面是通过训练集学习到的决策边界应用于测试集.看能否找出两个模型错误的预测.

      两个模型出错有不同的原因.看起来k=99的模型对捕获月牙形数据特征方面表现不是很好(这是欠拟合),而k=1的模型是对噪声严重的过拟合.记住,过拟合的特点是良好的训练表现和糟糕的测试表现,你能在这里观察到这些.
      也许k在1到99的中间值是你想要的?

    knn50 = KNeighborsClassifier(n_neighbors = 50)
    knn50.fit(XTrain, yTrain)
    yPredK50 = knn50.predict(XTest)
    print "Overall Error of k=50 Model:", 1 - round(metrics.accuracy_score(yTest, yPredK50), 2)

    Overall Error of k=50 Model: 0.11
      看起来好了点.让我们检查k=50时模型的决策边界.

      不错!模型拟合类似数据集的实际趋势,这种改善体现在较低的测试误差.

    偏差-方差权衡:结论意见

      希望你现在对模型的欠拟合和过拟合有良好的理解.看现在是否理解本文开头的所有术语.基本上,发现过拟合和欠拟合之间正确的平衡关系相当于偏差-方差权衡.
      总的来说,当你对一个数据集训练机器学习算法,关注模型在一个独立数据模型的表现如何.对于训练集做好分类是不够的.本质上来讲,只关心构建可泛化的模型–对于训练集获得100%的准确率并不令人印象深刻,仅仅是过拟合的指标.过拟合是紧密拟合模型,并且调优噪声而不是信号的情况.
      更清楚的讲,你不是建模数据集中的趋势.而是尝试建模真实世界过程,引导我们研究数据.你恰好使用的具体数据集只是基础事实的一小部分实例,其中包含噪声和自身的特点.
      下列汇总图片展示在训练集和测试集上欠拟合(高偏差,低方差),正确拟合,以及过拟合(低偏差,高方差)模型如何表现:

      建立泛化模型这种想法背后的动机是切分数据集为为一个训练集和测试集(在你分析的最后提供模型性能的准确测量).
      但是,它也有可能过拟合测试数据.如果你对测试集尝试许多不同模型,并为了追求精度不断改变它们,然后测试集的信息可能不经意地渗入到模型创建阶段.你需要一个办法解决.

    使用K折交叉验证评估模型性能

      输入K折交叉验证,这是仅使用训练集衡量模型性能的一个方便技术.该过程如下:你随机划分训练集为k等份;然后,我们在k-1/k的训练集上训练数据;对剩下的一部分评估性能.这给你一些模型性能的指标(如,整体精度).接下来训练在不同的k-1/k训练集训练算法,并在剩下的1部分评估.你重复这个过程k次,得到k个不同的模型性能度量,利用这些值的平均值得到整体性能的度量.继续例子,10折交叉验证背后如下:

      你可以使用k折交叉验证获得模型精度的评估,同样可以利用这些估计调整你的模型直到令你满意.这使得你不用最后测试数据,因此避免了过拟合的危险.换句话说,交叉验证提供一种方式模拟比你实际拥有更多的数据,因此你不用建模最后才使用测试集.k折交叉验证以及其变种是非常流行并且非常有用,尤其你尝试许多不同的模型(如果你想测试不同参数模型性能如何).

    比较训练误差,交叉验证误差和测试误差

      那么,什么k是最佳的?对训练数据构建模形式尝试不同K值,看对训练集本身和测试集预测类别的结果模型如何.最后看K折交叉验证如何支出最好的K.
      注:实践中,当扫描这样的参数,使用训练集测试模型是以个糟糕的主意.相同的方式,你不能使用测试集多次浏览一个参数(每个参数值一次).接下来,你是用这些计算只是作为例子.实践中,只有K折交叉验证是一种安全的方法!

    import numpy as np
    from sklearn.cross_validation import train_test_split, cross_val_score
    
    knn = KNeighborsClassifier()
    
    
    # the range of number of neighbors you want to test
    
    n_neighbors = np.arange(1, 141, 2)
    
    
    # here you store the models for each dataset used
    
    train_scores = list()
    test_scores = list()
    cv_scores = list()
    
    
    # loop through possible n_neighbors and try them out
    
    for n in n_neighbors:
    knn.n_neighbors = n
    knn.fit(XTrain, yTrain)
    train_scores.append(1 - metrics.accuracy_score(yTrain, knn.predict(XTrain))) # this will over-estimate the accuracy
    test_scores.append(1 - metrics.accuracy_score(yTest, knn.predict(XTest)))
    cv_scores.append(1 - cross_val_score(knn, XTrain, yTrain, cv = 10).mean()) # you take the mean of the CV scores

      那么最优的k是多少?当多个同样的预测误差,你随便挑一个最小的作为k值.

    
    # what do these different datasets think is the best value of k?
    
    print(
    'The best values of k are: n'
    '{} according to the Training Setn'
    '{} according to the Test Set andn'
    '{} according to Cross-Validation'.format(
    min(n_neighbors[train_scores == min(train_scores)]),
    min(n_neighbors[test_scores == min(test_scores)]),
    min(n_neighbors[cv_scores == min(cv_scores)])
    )
    )

    最优K是:
    1 according to the Training Set
    23 according to the Test Set and
    11 according to Cross-Validation

      不仅仅是收集最优的k,还需要对一系列测试的K看看预测误差.

    
    # let's plot the error you get with different values of k
    
    plt.figure(figsize=(10,7.5))
    plt.plot(n_neighbors, train_scores, c="black", label="Training Set")
    plt.plot(n_neighbors, test_scores, c="black", linestyle="--", label="Test Set")
    plt.plot(n_neighbors, cv_scores, c="green", label="Cross-Validation")
    plt.xlabel('Number of K Nearest Neighbors')
    plt.ylabel('Classification Error')
    plt.gca().invert_xaxis()
    plt.legend(loc = "lower left")
    plt.show()

      让我们谈谈训练集的分类错误.你考虑少量近邻,训练集会得到低的预测误差.这是有道理的,因为在做新的分类是,逼近每个点只考虑它本身的情况.测试误差遵循类似的轨迹,但是在某个点后由于过拟合而增长.这种现象表明,构建的训练集模型拟合在指定测试集样本上建模效果不好.
      在该图中可以看到,尤其是对于k的低值,采用k折交叉验证突出参数空间的区域(即k的非常低的值),这是非常容易出现过拟合的。尽管交叉验证和测试集的评估导致一些不同的最优解,它们都是相当不错的,并且大致正确。你也可以看到,交叉验证是测试误差的合理估计。这种类型的情节是好的,以获得确定参数如何影响模型表现的良好感觉,并帮助建立数据集的直觉来学习。

    代码展示

      这是生成以上所有图片,训练测试不同kNN算法的代码.代码是scikit-learn样例改编的代码,主要处理决策边界的计算并让图片好看.
    包含机器学习中拆分数据集,算法拟合以及测试的部分。

    def detect_plot_dimension(X, h=0.02, b=0.05):
    x_min, x_max = X[:, 0].min() - b, X[:, 0].max() + b
    y_min, y_max = X[:, 1].min() - b, X[:, 1].max() + b
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    dimension = xx, yy
    return dimension
    
    def detect_decision_boundary(dimension, model):
    xx, yy = dimension # unpack the dimensions
    boundary = model.predict(np.c_[xx.ravel(), yy.ravel()])
    boundary = boundary.reshape(xx.shape) # Put the result into a color plot
    return boundary
    
    def plot_decision_boundary(panel, dimension, boundary, colors=['#DADDED', '#FBD8D8']):
    xx, yy = dimension # unpack the dimensions
    panel.contourf(xx, yy, boundary, cmap=ListedColormap(colors), alpha=1)
    panel.contour(xx, yy, boundary, colors="g", alpha=1, linewidths=0.5) # the decision boundary in green
    
    def plot_dataset(panel, X, y, colors=["#EE3D34", "#4458A7"], markers=["x", "o"]):
    panel.scatter(X[y == 1, 0], X[y == 1, 1], color=colors[0], marker=markers[0])
    panel.scatter(X[y == 0, 0], X[y == 0, 1], color=colors[1], marker=markers[1])
    
    def calculate_prediction_error(model, X, y):
    yPred = model.predict(X)
    score = 1 - round(metrics.accuracy_score(y, yPred), 2)
    return score
    
    def plot_prediction_error(panel, dimension, score, b=.3):
    xx, yy = dimension # unpack the dimensions
    panel.text(xx.max() - b, yy.min() + b, ('%.2f' % score).lstrip('0'), size=15, horizontalalignment='right')
    
    def explore_fitting_boundaries(model, n_neighbors, datasets, width):
    
    # determine the height of the plot given the aspect ration of each panel should be equal
    
    height = float(width)/len(n_neighbors) * len(datasets.keys())
    
    nrows = len(datasets.keys())
    ncols = len(n_neighbors)
    
    
    # set up the plot
    
    figure, axes = plt.subplots(
    nrows,
    ncols,
    figsize=(width, height),
    sharex=True,
    sharey=True
    )
    
    dimension = detect_plot_dimension(X, h=0.02) # the dimension each subplot based on the data
    
    
    # Plotting the dataset and decision boundaries
    
    i = 0
    for n in n_neighbors:
    model.n_neighbors = n
    model.fit(datasets["Training Set"][0], datasets["Training Set"][1])
    boundary = detect_decision_boundary(dimension, model)
    j = 0
    for d in datasets.keys():
    try:
    panel = axes[j, i]
    except (TypeError, IndexError):
    if (nrows * ncols) == 1:
    panel = axes
    elif nrows == 1: # if you only have one dataset
    panel = axes[i]
    elif ncols == 1: # if you only try one number of neighbors
    panel = axes[j]
    plot_decision_boundary(panel, dimension, boundary) # plot the decision boundary
    plot_dataset(panel, X=datasets[d][0], y=datasets[d][1]) # plot the observations
    score = calculate_prediction_error(model, X=datasets[d][0], y=datasets[d][1])
    plot_prediction_error(panel, dimension, score, b=0.2) # plot the score
    
    
    # make compacted layout
    
    panel.set_frame_on(False)
    panel.set_xticks([])
    panel.set_yticks([])
    
    
    # format the axis labels
    
    if i == 0:
    panel.set_ylabel(d)
    if j == 0:
    panel.set_title('k={}'.format(n))
    j += 1
    i += 1
    
    plt.subplots_adjust(hspace=0, wspace=0) # make compacted layout

      然后,你可以这样运行代码:

    
    # specify the model and settings
    
    model = KNeighborsClassifier()
    n_neighbors = [200, 99, 50, 23, 11, 1]
    datasets = {
    "Training Set": [XTrain, yTrain],
    "Test Set": [XTest, yTest]
    }
    width = 20
    
    
    # explore_fitting_boundaries(model, n_neighbors, datasets, width)
    
    explore_fitting_boundaries(model=model, n_neighbors=n_neighbors, datasets=datasets, width=width)

    结论

      偏差-方差权衡出现在机器学习的不同领域.所有算法都可以认为具有一定弹性,而且不仅仅是KNN.发现描述良好数据模式并且可以泛化新数据,这样灵活的最佳点的目标适用于基本上所有算法.

    展开全文
  • 在职员工受训意见调查表 培训课程:___________ 主办部门:_____________ 说明: 1.本表请受训学员详实填写,并请于结训时予主办部门 2.请选答项目号码勾在方框栏内。 3.请你给予率直的反应及批评,这样可以...
  • 在职员工受训意见调查表 培训课程:___________ 主办部门:_____________ 说明: 1.本表请受训学员详实填写,并请于结训时予主办部门 2.请选答项目号码勾在方框栏内。 3.请你给予率直的反应及批评,这样可以...
  • 在职训练学员意见调查表 训练课程名称: 主 办 部 门: 说明:1、本表请受训学员详实填写,并请于结训时予主办部门 2、请将选答项目号码勾在括弧栏内。 3、请你给予率直的反应及批评,这样可以帮助我们对...
  • 单张像片空间后房会 C# 原创 当时老师布置的作业,欢迎大家下载并提宝贵意见
  • 立体像对前方会模型

    千次阅读 2018-08-23 23:13:07
    用单像空间后方会模型来求地面点的空间坐标是不可能的,仅仅通过一个已知像点只能确定该相片的空间方位以及摄影中心至像点的射线空间方向,只有利用同一个像点的立体像对,才能得到两条同名射线在空间相交的点,即...

    前言

    用两张相互重叠的相片构建三维基底是立体摄影测量的基础,同样也是视觉三维重建的基础。这样的原理很容易的扩展为由一系列像对构建的摄影测量网中。用单像空间后方交会模型来求地面点的空间坐标是不可能的,仅仅通过一个已知像点只能确定该相片的空间方位以及摄影中心至像点的射线空间方向,只有利用同一个像点的立体像对,才能得到两条同名射线在空间相交的点,即该地面点的空间位置。

    模型的数学表达

    立体像对与所摄影地面点存在的几何关系,如下图所示:
    这里写图片描述
    为了接下来构造解算模型,首先需要用数学表达式来描述这个几何关系,若在 S1 S 1 S2 S 2 两个方位通过相机对地面拍照,来获取一个立体像对,假设对一个地面特征点 A A ,在像对的左右相片的构像为a1 a2 a 2 ,显然,两条射线 S1a1 S 1 a 1 S2a2 S 2 a 2 交于 A A 。如上图所示,人为规定DXYZ为世界坐标系,为了利用相机内参不变的特性以完成参数拟合,地面特征点及其对应的像点应该以相机为基准进行分析,所以还需要建立两个像空间辅助坐标系: S1U1V1W1 S 1 − U 1 V 1 W 1 S2U2V2W2 S 2 − U 2 V 2 W 2 两个坐标系的原点在相机的位置,为了和世界坐标系更方便的交互,可设置为三个坐标轴对应的平行,即互为平移关系。这里继续设 A A 点在两个像空间辅助坐标系的坐标分别为:(U1,V1,W1) (U2,V2,W2) ( U 2 , V 2 , W 2 ) A A 点对应的像点a1 a2 a 2 的像空间坐标为 (x1,y1,f) ( x 1 , y 1 , − f ) (x2,y2,f) ( x 2 , y 2 , − f ) ,对应的像空间辅助坐标为 (u1,v1,w1) ( u 1 , v 1 , w 1 ) (u2,v2,w2) ( u 2 , v 2 , w 2 ) ,则可建立线性方程组:

    u1v1w1=R1x1y1f,u2v2w2=R2x2y2f [ u 1 v 1 w 1 ] = R 1 [ x 1 y 1 − f ] , [ u 2 v 2 w 2 ] = R 2 [ x 2 y 2 − f ]

    式中, R1 R 1 R2 R 2 为已经求得的左右像片的旋转矩阵。由于要求基线 B B 的三个分量Bu Bv B v Bw B w ,需要求右摄影站点 S2 S 2 S1U1V1W1 S 1 − U 1 V 1 W 1 中的坐标,由下式可得:
    Bu=XS2XS1Bv=YS2YS1Bw=ZS2ZS1 B u = X S 2 − X S 1 B v = Y S 2 − Y S 1 B w = Z S 2 − Z S 1 }

    利用辅助坐标系与世界坐标系的平行关系,且相机光心、像点、物点三点共线,由此可得到:
    S1AS1a1=U1u1=V1v1=W1w1=N1S2AS2a2=U2u2=V2v2=W2w2=N2 S 1 A S 1 a 1 = U 1 u 1 = V 1 v 1 = W 1 w 1 = N 1 S 2 A S 2 a 2 = U 2 u 2 = V 2 v 2 = W 2 w 2 = N 2 }

    式中, U1 U 1 V1 V 1 W1 W 1 为物点 A A S1U1V1W1中的坐标; U2 U 2 V2 V 2 W2 W 2 为物点 A A S2U2V2W2中的坐标。
    由于
    X=XS1+U1=XS2+U2Y=YS1+V1=YS2+V2Z=ZS1+W1=ZS2+W2 X = X S 1 + U 1 = X S 2 + U 2 Y = Y S 1 + V 1 = Y S 2 + V 2 Z = Z S 1 + W 1 = Z S 2 + W 2 }

    上式又可变为:
    XS2XS1=N1u1N2u2=BuYS2YS1=N1v1N2v2=BvZS2ZS1=N1w1N2w2=Bw X S 2 − X S 1 = N 1 u 1 − N 2 u 2 = B u Y S 2 − Y S 1 = N 1 v 1 − N 2 v 2 = B v Z S 2 − Z S 1 = N 1 w 1 − N 2 w 2 = B w }

    上式一、三两式联立,得投影系数得计算公式:
    N1=Buw2Bwu2u1w2u2w1N2=Buw1Bwu1u1w2u2w1} N 1 = B u w 2 − B w u 2 u 1 w 2 − u 2 w 1 N 2 = B u w 1 − B w u 1 u 1 w 2 − u 2 w 1 }

    在具体计算时,取算术平均值的中误差要比观测值的中误差小(小 n n 倍,其中 n n 是观测次数),所以在求地面点坐标时,取摄影站点的平均值:
    X=12[(XS1+N1u1)+(XS2+N2u2)]Y=12[(YS1+N1v1)+(YS2+N2v2)]Z=12[(ZS1+N1w1)+(ZS2+N2w2)]}

    这样就可以获得物点在世界坐标系中的坐标。当然如果仅仅是双工业相机,这个误差往往会很大,如果不考虑成本问题,多添加几个工业相机,则可以利用测量平差来减小误差。而且一般来讲量测物点坐标首先要做的是对每个目做 单像空间后方交会来计算六个外方位元素( XS X S YS Y S ZS Z S φ φ ω ω κ κ ),所以在这一阶段提取特征点的个数和准确率也会直接影响到最终物点坐标的精确度。
    下面是立体像对前方交会模型解算的简单代码,希望各位读者多提宝贵意见。

    #ifndef SPACEINTERSECTION
    #define SPACEINTERSECTION
    #include "math.h"
    
    
    inline void get_auxiliary_coordinate(double3 *auxiliary_coordinate_set, double9 matrix
    , double2 *image_feature,double f)
    {
        double3 image_feature_f;
    
        for (int i = 0; i != 2; ++i)
        {
            memcpy(image_feature_f, image_feature[i], sizeof(double)* 2);
            image_feature_f[2] = f;
    
            MultMatrix(matrix, image_feature_f, auxiliary_coordinate_set[i], 3, 3, 1);
        }
    }
    
    inline void get_baseline_weight(double3 B, double3 s1, double3 s2)
    {
        B[0] = s2[0] - s1[0];
        B[1] = s2[1] - s1[1];
        B[2] = s2[2] - s1[2];
    }
    
    inline void get_projection_coefficient(double2 N, double3 *auxiliary_coordinate_set, double3 B)
    {
        N[0] = (B[0] * auxiliary_coordinate_set[1][2] - B[2] * auxiliary_coordinate_set[1][0])
            / (auxiliary_coordinate_set[0][0] * auxiliary_coordinate_set[1][2] 
            - auxiliary_coordinate_set[1][0] * auxiliary_coordinate_set[0][2]);
    
        N[1] = (B[0] * auxiliary_coordinate_set[0][2] - B[2] * auxiliary_coordinate_set[0][0])
            / (auxiliary_coordinate_set[0][0] * auxiliary_coordinate_set[1][2] 
            - auxiliary_coordinate_set[1][0] * auxiliary_coordinate_set[0][2]);
    }
    
    inline void get_ground_coordinate(double3 groud_coordinate, double2 N
    , double3 *auxiliary_coordinate_set, double3 s1, double3 s2)
    {
        groud_coordinate[0] = 0.5*(s1[0] + N[0] * auxiliary_coordinate_set[0][0] 
            + s2[0] + N[1] * auxiliary_coordinate_set[1][0]);
    
        groud_coordinate[1] = 0.5*(s1[1] + N[0] * auxiliary_coordinate_set[0][1]
            + s2[1] + N[1] * auxiliary_coordinate_set[1][1]);
    
        groud_coordinate[2] = 0.5*(s1[2] + N[0] * auxiliary_coordinate_set[0][2]
            + s2[2] + N[1] * auxiliary_coordinate_set[1][2]);
    }
    
    #endif

    当然,这只是“求”的过程,真正关键的还是内定向、相对定向、绝对定向。在下面的文章中将要继续讨论的。
    参考文献:
    [1] 摄影测量原理 王之卓编著
    [2] 摄影测量学(测绘工程专业) 王佩军,徐亚明编著

    转载请注明出处:https://blog.csdn.net/fourierFeng/article/details/80239502

    展开全文
  • 审稿意见标准模版

    千次阅读 2020-04-08 21:48:04
    曾为读稿夜难眠……曾为写稿白过头……曾为拒稿抑郁过……今为审稿也烦恼……诸君莫烦恼,今天分享一个根据网络资料整理的审稿意见标准模版,分享给各位学人,略解忧愁……乌什马·...

     

    曾为读稿夜难眠……

     

    曾为写稿白过头……

     

    曾为拒稿抑郁过……

     

    今为审稿也烦恼……

     

     

    诸君莫烦恼,今天分享一个根据网络资料整理的审稿意见标准模版,分享给各位学人,略解忧愁……

     

     

    乌什马·尼尔(Ushma S. Neill,2009)给出了一个审稿意见的标准模版

     

    审稿意见一般会包含6个部分的内容,这六部分内容分别是:

     

    1 稿件信息

     

    2 简介

     

    3 论文的优点

     

    4 重点评论

     

    5 次要意见

     

    6 推荐意见

     

     

     

    标准的审稿意见一般按顺序给出这六部分内容。

     

    下面介绍包含六部分内容的审稿意见标准形式。

     

    第1条:稿件信息(Title and author of paper)

     

    审稿意见的抬头是稿件的标题和作者,作者太多时可以只给出第一作者(加上“等”,“et al.”)。也可以加上稿件编号。

     

    稿件的这些信息在收到审稿邀请时一般会提供,因此不需要自己录入,从邮件中复制粘贴即可。

    有的审稿人会在稿件信息前加上"Comments on"或者“Referee‘s commentson”或者“Review‘s comments on”之类的短语。

     

     

    第2条:简介(Summary of paper)

     

    在简介中指出作者考虑了什么问题,做了哪些工作,报道了什么内容。

     

    在简介中,对论文的优缺点不做评价。简介为进行具体评论提供对象或进行铺垫。

     

    第3条:给出论文的优点(Good things about the paper)

     

    从论文涉及的问题的重要性、论文的观点、采用的方法、得到的结果、对结果的解释、给出的结论、成果的价值和论文的写作等几个方面,遴选出值得称赞的地方,借此说明论文有什么值得肯定的优点。如果认为优点不突出,这一条也可以不写。

     

    指出论文有优点会让作者感觉愉快,即使最后的意见以负面为主,也有利于缓和作者与审稿人的关系。

     

    第4条:重点问题(Major comments)

     

    在重点问题(main remarks,major points)中,一般先用几句话概述论文有什么重要不足,用明确的语言告诉作者需要如何面对这些问题。

     

    接下来按条目给出具体意见。条目顺序一般遵循所指出的问题在论文中出现的前后顺序。如果一些问题与论文前后几个部分有相关性,则在最后一个相关部分对应的位置进行评论。

    以下是写具体意见时可以参考的几个方面。

     

    具体意见

     

    1) 指出稿件中存在的主要不足并给出修改建议。从整体思路、分析深度、写作、假设、方法、结果、结论、图表、数据、数学符号与公式、文献引用和逻辑推理等找出可能的不足。

     

    2) 指出一些不太清晰从而无法判断其价值或对错的描述,以便对一些要点的重要性或正确性进行进一步判断。

     

    3)对作者本人没有意识到的稿件中的重要贡献进行赞扬性评价,以便作者在修改稿中用适当语言突出。

     

    4)必要时,要求作者补充一些研究,以便提高论文的价值、弥补一个空缺或回答一些值得关注的问题。

     

    5)指出稿件中可能存在的错误及其影响。

     

    6)指出作者没有意识到的与现有文献或常识有冲突的结论或观点,要求作者补充文献,并提供解释。

     

      

    第5条:次要问题(Minor comments)

     

    次要问题(minor points)涉及写作风格、拼写、语法、图表质量、术语的解释、失误、交叉引用错误、漏引文献和表述方式等。

     

    当次要问题对论文影响较大时,也可以放到主要问题中。

     

    审稿人认为语言存在较多问题时,会建议在修稿时寻求语言专家帮助。

     

    第6条:推荐意见(Recommendations)

     

    最后一段给出推荐意见。有时,推荐意见不会发给作者,只发给主审编辑。

     

    最终推荐意见当然是录用或拒稿(有时会客气地说成“改投它刊”)。但在前几轮审稿过程中,推荐意见一般有四类:

     

    四类推荐意见

     

    1) 直接录用。

     

    2)做小修改后可以录用(thismanuscript may be accepted after minor modification)。

     

    3)重大修改(major revisionor substantial revision)。对于这种情况,最终推荐意见还需要依赖修改稿做出。

     

    4)拒稿(rejection)。

     

    也有不少审稿意见将按自己的顺序书写,例如,把第2-4项揉在一起介绍。有的审稿意见一开始就给出推荐意见,往下的具体意见只是给推荐提供依据。

     

    例如,乌什马·尼尔(Ushma S. Neill)建议把以上介绍的前两个部分合为一段,概述你认为的作者的假设是什么、他们的主要结果和得出的结论是什么。

     

    尼尔认为这样写出的第一段很重要,因为它向我们展示了审稿人认为的主要进展,而不是作者自己可能认为的主要结论。这使得编辑和作者能够了解到该领域的专家如何看待这篇论文。第一段不需要很长,最好以结论是否得到数据的支持以及是否需要重大或微小的修改来结束。

     

    以下10种情况可能会成为拒稿的理由:

    1) 论文的主题没有意义

     

    2) 结果和结论没有价值

     

    3) 论文逻辑或写作不严谨

     

    4) 存在重大原则性错误

     

    5) 低水平工作

     

    6) 基于陈旧方法的工作

     

    7) 结果和结论不可靠

     

    8) 论文内容与目标期刊不符

     

    9) 论文工作质量与目标期刊的要求相距甚远

     

    10)疑似有学术不端。

     

     

    当然,还有额外的一种:

     

    审稿人明显是出于认识不足或者有误解而作出拒稿建议。

     

    编辑 ∑Gemini

    来源:经济政策模拟

    文章推荐

    数学家探索两个几何世界之间的镜像链接

    数学天才帕吉特:他有如电影般的人生际遇

    世界上最奇怪的数学天才,被奖励100万却拒领,宁愿过得像乞丐

    斯坦福大学教育学院院长:学习本身就是一门学问

    如果没有数学,我们如何测量

    数学的真相:物理时空的数字模型还是现实本身?

    展开全文
  • 加入乘项后符号变了!?

    万次阅读 2019-04-09 09:57:57
    作者:连玉君 (知乎 | 简书 | 码云) Stata连享会 精品专题 || 精彩推文 ...Stata:乘项该如何使用?...Stata:图示连续变量的边际效应(乘项) ...最近适逢很多学生写毕业论文,有关乘项的问题又涌上心头...
  • 经过专利文件撰写,修改,提交,钱初审等环节,终于收到了第一次审查意见通知书,结果很惨的是审查员叔叔引用了两篇外文对比文件来说明我的发明专利并不具有创新性。(US 2015/0145995A1)和(US 2015/0325120A1)...
  • 14、我正在写一本有关怎样朋友的书,所以我想请教妳几个问题。 (我认为这是结交女孩子最好的说词!) 15、陪我到外头抽根烟吧! (图书馆内) 16、来,让我帮妳拿,我不忍心看妳累坏了美丽的娇躯。 (一位拿着...
  • 软考高级资格朋友,搭建高级资格俱乐部 一.诚软考高级资格英雄豪杰 笔者想跟北京具有如下高级职称的IT同仁结交朋友: 信息系统项目管理师 系统分析师 系统架构设计师 网络规划设计师 二.目的: 1....
  • 不过你们没有就此停止努力,继续请教导师、按照意见认真修改并写成英文投到了一个SSCI期刊上,结果被录用了。此时,随着努力程度的增加,它对科研成果的边际效应变为正值。 总结上面的例子,我们发现,吃麻辣火锅...
  • 作者:胡杰 (中山大学岭南学院本科...在对有组别或者等级的数据进行处理时,常常需要利用虚拟变量和乘项来探究各组之间或各等级之间的结构性的差异(Structural Difference) 例: 探究婚姻对女性工资造成的结构性...
  • 别跟我这活儿

    千次阅读 2015-06-28 21:40:53
    加班加点儿的做了两个多星期,唉,结果劳了一个别跟我这活儿,啥也不说了,还是等《煎饼侠》拯救不开心吧~~~~  项目开发中,规范真的很重要,没有规范,更别谈约定了。对于小公司杀出来的程序员,习惯...
  • 意见及建议?9 2 一?实习目的 在实践中综合应用第一学年中课堂所学的计算机知识以期能够熟练掌握基本编程语 法程序设计思想为后续课程打下基础 1深入理解面向对象编程思想理解对象的封装继承及多态的含义 2掌握一门...
  • 网站意见反馈(限输入字数)

    千次阅读 2011-09-22 16:53:05
    传统的意见反馈页面。 现在大多数意见反馈可以通过Ajax做了,根本不需要另外新建一个页面通过表单发送。 这里主要就是简单限制输入字数200个, 超出200个后不能提交。 标题为空或者内容不够10个字符长时,也不能...
  • 1)从交叉验证得到的结果可以看出(如上的实例),模型只是给出了对应模型的得分,好像并不能从中直接看出有多么 大的用途(个人意见) 2)那我就有点奇怪,那如果只是能获得模型对预测的得分,这有什么用呢,这...
  • C# CRC 16 验代码

    千次阅读 2011-04-09 12:25:00
    在上次做的项目中用到了CRC16循环校验码,现在把它贴出来供大家参考,也欢迎大家提出意见。   internal class HexMath  {  private const int CRC_LEN = 2;  // Table of CRC values for high-order byte...
  • 以房养老:请不要逼我养老保金好吧?

    千次阅读 多人点赞 2013-09-21 14:00:20
    继清华某叫兽的“推迟15年领养老金”并给出退休到领养老金的这十五年之间可以帮别人洗衣、做饭,做园丁的论调后,所激起舆论浪潮还未落下之际,试点以房养老的《意见》便紧随其后发布,理由可解决养老金短缺,真是一...
  • 比如说,中间的那条白线是什么,如果你没看我之前写的那篇文章你可能都不知道它究竟代表了什么。这也就是我为什么说,图像的傅里叶变换有些多此一举,反而把一个简单的问题弄得很复杂,弄巧成拙了。 言归正传,说了...
  • 关键意见领袖(Key Opinion Leader,简称KOL)是营销学上的概念,通常被定义为:拥有更多、更准确的产品信息,且为相关群体所接受或信任,并对该群体的购买行为有较大影响力的人。 在营销学上,为各厂家宣传的专家...
  • IEEE Access投稿经验分享,多久能给意见,多久能检索.

    千次阅读 热门讨论 2021-04-30 15:22:19
    如果有什么清华北大中科院的大神请绕道。 研一的一年中趁着上课的空闲基本弄完了课题。算法结构或者说网络的完成是在2020年疫情7月份的时候。然后就穿插着写论文做实验。 之后老师又提出意见,修改然后继续做实验...
  • 我如愿以尝被北计算机学院录取

    千次阅读 2008-01-21 17:35:00
    我如愿以尝被北计算机学院录取.有一些感想和经验,愿和大家分享. 首
  • 与《一起读论文|挖掘同行评审意见的价值》一样,这篇论文也研究同行评审过程。但与之不同的是,这篇论文主要从Argument Mining的角度来理解同行评审意见的内容与结构。在这篇论文中,作者发布了AMPERE数据集,用最...
  • 我大概扫了一下,Spring live是一本只讲怎么做而不讲为什么的书,我不太喜欢(偶尔参考一下倒不错),不过有些人特别喜欢这样的书,看自己的个人爱好吧。 三、研究几个用Spring做的开源项目 理论还是要...
  • [ICM ] 2014全美交叉学科竞赛原题及翻译

    万次阅读 多人点赞 2014-02-07 11:38:58
    2014 ICM Problem Using Networks to Measure Influence and Impact One of the techniques to determine influence of academic research is to build and measure properties of citation or co-author networks....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,614
精华内容 15,045
关键字:

交什么意见