一次真实的错误吞并的教训
数据准备最常见的方法是研究一个数据集,审查机器学习算法的期望,然后仔细选择最合适的数据准备技术来转换原始数据,以最好地满足算法的期望。这是缓慢的,昂贵的,并且需要大量的专业知识。 数据准备的另一种方法是并行地对原始数据应用一套通用和常用的数据准备技术,并将所有转换的结果合并到一个大数据集中,从中可以拟合和评估模型。 这是数据准备的另一种哲学,它将数据转换视为一种从原始数据中提取显著特征的方法,从而将问题的结构暴露给学习算法。它需要学习加权输入特征可伸缩的算法,并使用那些与被预测目标最相关的输入特征。
这种方法需要较少的专业知识,与数据准备方法的全网格搜索相比,在计算上是有效的,并且可以帮助发现非直观的数据准备解决方案,为给定的预测建模问题取得良好或最好的性能。 不过,静态导入容易引发混乱(变量名或者方法名容易冲突),因此最好避免使用静态导入。 28、什么是 try-with-resources? try-with-resources 是 Java 7 时引入的一个自动资源管理语句,在此之前,我们必须通过 try-catch-finally 的方式手动关闭资源,当我们忘记关闭资源的时候,就容易导致内存泄漏。 关于 try-with-resources 更详细的内容,可以参照我之前写了另外一篇文章: 我去,你竟然还在用 try–catch-finally 29、什么是 multi-catch?
Java 7 改进的另外一个地方就是 multi-catch,可以在单个 catch 中捕获多个异常,当一个 try 块抛出多个类似的异常时,这种写法更短,更清晰。 投资于员工 发布开源软件的最大内部拥趸之一,通常都是希望能回馈广大编程社区的员工个人。他们借此得到了在日常工作中做公益的机会,也得以围绕工作打出个人的招牌。开源项目也可以让他们的工作更为充实,如果一个项目的受益人不仅是公司,那么人们就更容易发自内心地关注它。 另外,项目得到推广后,关于它的知识也会变得更有价值。公司内使用开源项目的员工会收获可转移的技能,而不是针对专有系统的小众技巧。拥有开源项目使用经历的员工在转职后上岗会更快。和行业大众割裂的专有基础架构只会变成负担,而开源则可以帮你避免这种情况。其他项目的同行们会在软件兼容性上向你看齐,日后使用这些软件时,集成工作也会大大减少。 技术上的自知之明 最后,开源中最重要的好处之一:将你的基础架构作为独立项目发布,有助于你了解自己技术栈的真实水平。如果你的公司是以专有技术为基础,那么对自己程序的盲目自信更像是一种冒险,直接用另一款现有的替代品可能效果会更好。让项目在公司之外凭借其自身优点进行竞争,会帮助你看到更现实的情况(亚马逊 大概是这种策略在大规模背景下应用的最著名的例子)。如果基础架构的某部分能够凭借自身获得成功,那这就说明你前进的道路是正确的。 3. 值得吗?如果你所在公司搭建的某款软件对业务有较强的针对性,那么将其开源的可能性就不会太高。事实上,如果潜在用户看不到它的价值,那么这款软件基本就是无用的。但如果开发的工具泛用性较高,即便它并不完美,开源也可以被列为认真考量的事项。明确的维护承诺也很重要,如果你能够保证长期维护,用户会感激不尽的。反之,如果只是一次性的代码发布,虽然也会有帮助,但要记得提前告诉大家! 有了开放源码,你就能得到你所投入的东西。它可以帮助推动行业发展,使你的公司受益,并激励当前和未来的员工——虽然这需要时间和努力。如果条件合适,它是值得的。
开放源码会让你的付出有所回报,会帮助推动行业发展,使你的公司受益,激励当前和未来的员工——尽管这些都需要付出时间和精力,但如果条件合适,你会发现这些付出都是值得的。 (编辑:阿坝站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |