2014年10月30日星期四

我们是怎么管理QQ群的 - 豪情

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
我们是怎么管理QQ群的 - 豪情  阅读原文»

文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境。
以下是我群的一些约定分享一下,给其它行业同仁一点借鉴,以此也侧面推动行业阶梯式的进步,让入门级初中级找到一个适合的学习群。
以下为具体内容:
群号:159758989
人的存在是为了创建价值,群的存在是为了解决问题,你的存在是为了问题快速解决。 为了使你的问题得到快速的解决,请抽空阅读以下约定:
如果你暂时没有问题,可直接进入解决问题环节:
一. 如何提问:
1. 请提供能重现问题的url或资源demo文件包。(url:是以www开头的一级域名或二级域名,demo文件是未上线的html静态页面,带图片的请上传至群共享。提供的资源文件,必须是换个环境之后完整的能重现所说的bug,而不是只有html没有关键css,图片等一个单独文件,如果你所属团队对前端代码有特殊的保密要求,请自行找其它解决办法。)
2. 文字描述不清的bug,用截图示意,且要说明两种状态:现状或期望的状态。
3. 没有图片的代码发
优点:国内访问稍快,发表简单,缺点:功能简单
优点:功能强大,历史记录给力,缺点:访问速度慢
有图片的代码发群共享或申请免费的测试空间:
推荐使用intellij idea / phpstorm / webstorm来管理 svn/git 代码的提交与更新。
Intellij idea群: 244908708 群公告: http://t.cn/8kZZ1Uy
参考:
X-Y 问题
向别人求助时有哪些「潜」规则?
如何在知乎提一个好问题?
如何优雅地向前辈或者高手请教技术问题?
二. 禁 问:
有没有人在?
谁能给我解决一个问题?
我的XXXX位置不对了怎么解决?
群里有人做过XX的东西吗?等等类似的问题。
建议的问法是:
1. 有问题直接问。比如:前端的岗位特点是什么?
2. 直接说场景:我在做xx端东西的时候,在window 7平台的IE7版本下遇到了左右不对齐问题,具体如图所示,代码地址:http://www.jsbin.com/xxxx,在百度中找到的答案,试了之后还是有同样的问题。请有空的同学帮我看看是什么问题?
如果你的问题暂时没人理,那表示有空的同学都未涉猎,赶紧找其它办法。
三. 禁 发:
早上问好,打招呼。
广告,求职(群邮件仅发一次),推广,八卦,
超过行距的自定义表情,约束这个的目的在于:
1. 回查记录的时候不要因为过多的无意义的内容而频繁点击翻页键。
2. 或者有经典的教程资源内容时,方便白天不上网的同学一次性复制记录。
所以建议:不要发超过行距的表情,或自定义qq表情,
3. 禁止在工作时间内利用qq提供的@别人的功能,建议进行手动@[ 昵称 ],这样就不会进行特别提醒,也利于问题的一对一交流。
4. 禁止在群邮件中回复招聘或其它通知邮件。因为你的每一次回复将会有1000多人同时收到,而这条回复对其它人是没有任何意义的。
四. 警告:
字体在10-12之间,
禁止闲聊,无意义回复。
问问题之前最好自己百度google查过,思考过,都不能解决的再问。
禁止把群当手册用。
问题在群里问,不建议单M,不要指代问题只让某人回答,
有些基础不要完全不会,不要打算直接要简单代码。不要做伸手党
不要想着问题提出就立马有人回答。
五. 群约定 :
最近经历了一个人数的增长期或交流的蜜月期,为了使此群航向不发生偏离,也为了使开放,互助,共赢的互联网精神走得更远,在重复一下以前的约定:
1. 此群原则是:高效,高质量的交流,禁止无意义的闲扯,话题内容尽量保持在技术与职业相关范围内。
2. 为了使此群的聊天记录能有效的回溯可查,禁止发与内容无关的或超过文本行距的图片,建议qq默认表情。
3. 有问题代码不建议截图(直接发jsbin.com,有图片的bug直接发群共享),如明显强调代码片段,建议直接发文本代码。为了保护眼睛少受刺激,聊天字体颜色禁用红,紫,等饱和度比较高的颜色,另外字体不建议强调加粗,加粗之后发出来的代码片段很占空间,阅读体验很不友好。建议默认设置,微软雅黑,10号-12号字大小。另外,再强调我群有从事10年及以上的it资深人士,这些人的工作强度是很饱和的,难度是很大,在工作之外参与分享与探讨,尽可能的提供友好的交流体验。搞前端玩的就是体验,建议注重细节。
4. 为了保持高效有力的交流原则,此群不建议问早,提问时问:有人在吗?有人用过xx吗?
有问题建议直接提问,提问之前请组织好文字,换角度看看你的问题是否被别人能容易看懂。
提倡主动学习,自己动手的学习方法及生活风格,有问题先百度,百度之后有问题,在提问。
从长远的角度一般培养的是一种学习,生活的能力,不是一个答案。答案会随着时代与客观因素的变化而变化,方法与能力是永恒不变的。
so,保持清醒的头脑,没有方向时要驻足思考,没有目标时要抬头寻路。庆幸的时,我们一直在路上。
最后谦和,尊重,互助,感恩是此群的四大交流基础。
技术之外完整的人格与良好的人性修养是职业发展的垫脚石。
六. 资源:

前端入门教程

前端入门视频

前端入门资料

http://www.cnblogs.com/sb19871023/p/3894452.html

前端知识体系

七. API手册:

1. API集合

百度网盘离线众多chm

在线api大全

2. Ecmascript 5

es5 en

ECMAScript 6入门

3. 各开发中心

mozilla js参考

safari开发中心

chrome开发中心(chrome的内核已转向blink)

microsoft js参考

js秘密花园

4. jQuery

http://learn.jquery.com/

学习jquery

Hemin在线版jquery 1.11.0手册,适合mac用户

http://jquery.bootcss.com/

jquery 中文api

css88 jq api

5. js template

6. 弹出

artDialog 最新版

模型评估与模型选择 - ☆Ronny丶  阅读原文»

机器学习算法 原理、实现与实战——模型评估与模型选择

1. 训练误差与测试误差

机器学习的目的是使学习到的模型不仅对已知数据而且对未知数据都能有很好的预测能力。

假设学习到的模型是$Y = \hat{f}(X)$,训练误差是模型$Y = \hat{f}(X)$关于训练数据集的平均损失:

$$R_{emp}(\hat{f}) = \frac{1}{N}\sum_{i=1}^NL(y_i,\hat{f}(x_i))$$

其中$N$是训练样本容量。

测试误差是模型$Y = \hat{f}(X)$关于测试数据集的平均损失:

$$e_{test}(\hat{f}) = \frac{1}{N’}\sum_{i=1}^NL(y_i,\hat{f}(x_i))$$

其中$N’$是测试样本容量。

当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(预测错误的个数除以测试数据的总个数)。

训练误差的大小,对判定给定问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知数据集的预测能力,是学习中的重要概念。显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。通常将学习方法对未知数据的预测能力称为泛化能力(generalization ability)。

2. 过拟合与模型选择

我们知道假设空间理论上有无限个模型,它们有着不同的复杂度(一般表现为参数个数的多少),我们希望选择或学习一个合适的模型。

如果一味提高对训练数据的预测能力,所选的模型的复杂度则往往会比真实模型更高。这种现象称为过拟合。过拟合是指学习时选择的模型所包含的参数过多,以致于出现这一模型对已知数据预测很好,但对未知数据预测很差的现象。

下面,以多项式函数拟合问题为例,说明过拟合与模型选择,这是一个回归问题。

现在给定一个训练数据集:

$$T=\{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\}$$

其中,$x_i\in R$是输入$x$的观测值,$y_i\in R$是相应的输出$y$的观测值。多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择最有可能产生这些数据的M次多项式函数,即在M次多项式函数中选择一个对已知数据以及未知数据都有很多预测能力的函数。

我们用$y = sin(x)$生成10个数据点,并适当的在$y$值上加了一些误差,下面我们分别用0~9次多项式对数据进行拟合。

image image image

上图给出了$M=1,M=3,M=9$时多项式拟合的情况。当$M=1$时多项式曲线是一条直线,数据拟合效果很差。相反,如果$M=9$,多项式曲线通过每个数据点,训练误差为0。从对给定的训练数据拟合的角度来说,效果是最好的。但是因为训练数据本身存在噪声,这种拟合曲线对未知数据的预测能力往往并不是最好的,这时过拟合现象就会发生。

import numpy as np
import matplotlib.pyplot as plt
import random
x
= np.linspace(0,1,10)
y
= np.sin(2*np.pi*x)
for i in range(0,10):
y
= y + random.uniform(-0.4,0.4)
p
= np.polyfit(x,y,9)
t
= np.linspace(0,1.0,100)
plt.plot(x,y,
'o')
plt.plot(t,np.sin(np.pi
*2*t),label='$y=sin(x)$');
plt.plot(t,np.polyval(p,t),label
='$y = \sum_{i=0}^Mw_ix_i,M=9,x_0=0$');
plt.legend()
plt.show()

3. 正则化与交叉验证

3.1 正则化

前面文章在介绍机器学习策略的时候,已经提到过结构风险最小化的概念。结构风险最小化正是为了解决过拟合问题来提出来的策略,它在经验风险上加一个正则化项。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数的向量的范数。

正则化项可以取不同的形式。例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量的$L_2$范数:

$$L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\frac{\lambda}{2}||w||^2$$

这里,$||w||$表示参数向量$w$的$L_2$范数。

正则化项也可以是参数向量的$L_1$范数:

$$L(w) = \frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\lambda||w||_1$$

这里,$||w||_1$表示参数向量$w$的$L_1$范数。

正则化符合奥卡姆剃刀(Occam’s razor)原理。奥卡姆剃刀应用在模型选择时想法是:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂模型有较小的先验概率,简单的模型有较大的先验概率。

3.2 交叉验证

如果给定的样本数据充足,进行模型选择的一种简单方法是随机地将数据集切分成三部分,分别为训练集、验证集和测试集。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中,选择对验证集有最小预测误差的模型。

但是在许多实际应用中数据是不充分的。为了选择好的模型,可以采用交叉验证方法。交叉验证的基本想法是重复地使用数据;把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。

1. 简单交叉验证

首先随机地将已给数据分为两部分,一部分作为训练集,另一部分作为测试集;然后用训练集在各种条件下训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。

2. S折交叉验证

这种方法应用最多。首先随机地将已给的数据切分为S个互不相交的大小相同的子集;然后利用其中的S-1个子集的数据训练模型,然后用余下的子集测试模型;将这一过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。

3. 留一交叉验证

S折交叉验证的特征情形是$S=N$,称为留一交叉验证,往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。

4. 泛化能力

学习方法的泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上重要的性质。现实中采用最多的办法是通过测试数据集的误差来评价学习方法的泛化能力。但是因为数据是有限的,并不能代表全体未知样本,所以很有可能按照这样评价到得的结果是不可靠的。

下面我们从理论上对学习方法的泛化能力进行分析。

首先给出泛化误差的定义。如果学习到的模型是$\hat{f}$,那么用这个模型对未知数据预测的误差即为泛化误差(generalization error)

$$R_{exp}(\hat{f}) = E_P[L(Y,\hat{f}(X))] = \int_{\mathcal{X}\times\mathcal{Y}}L(y,\hat{f}(x))P(x,y)dxdy$$

泛化误差反映了学习方法的泛化能力,如果一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么这种方法就更有效。事实上,泛化误差就是所学习到的模型的期望风险。


本文链接:模型评估与模型选择,转载请注明。

阅读更多内容

没有评论:

发表评论