TODO
学习曲线和网格搜索代码
错误类型
- 过度简化 -->欠拟合
- 在训练集中表现不好,称这种错误类型为 偏差引起的误差(error due to bias) -->high bias(高偏差误差)
- 过度复杂化 -->过拟合
- 训练集表现好,但测试集上表现不好,偏向于记住而不是学习特点,称这种错误类型为 由方差引起的误差(error due to variance) -->high variance(高方差误差)
模型复杂度图表
计算出 训练误差个数 和 测试误差个数
交叉验证
-
training set(训练参数,训练一堆模型) | cross validation set (对模型做出决定,例如多项式的次数,选出最好的模型) | testing set (模型最终的测试)
Screen Shot 2018-08-31 at 7.47.54 PM.png
k折交叉验证
sklearn
from sklearn.model_selection import KFold
kf = KFold(12,3,shuffle = True)
# 12代表数据集个数,3代表每一个bucket中训练集的个数,shuffle = true 表示随机分配
for train_indices, test_indices in kf:
print(train_indices,test_indices)
学习曲线 (Learning Curves)
判断欠拟合,恰当和过拟合
Screen Shot 2018-08-31 at 8.08.08 PM.png
注:高偏差 -->两条曲线交点偏高,恰当 -->两条曲线交点偏低, 高方差 -->两条曲线不会相交
通过学习曲线检测过拟合和欠拟合
网格搜索
-
logistic regression model
Screen Shot 2018-08-31 at 8.37.08 PM.png
训练集算出多项式的斜率和系数(超参数)等,cv计算F1得分,选择F1 得分最高的模型,测试集保证模型比较适合
2.Training a Decision Tree
超参数之一为深度,参数是树叶和节点等的阈值
Screen Shot 2018-08-31 at 8.39.47 PM.png -
Training a Support Vector Machine
超参数:内核(线性或多项式),gamma参数 -->多个超参数 ->grid search,gamma建议设置几个按指数级增长的值,例如0.1,1,10
Screen Shot 2018-08-31 at 8.43.04 PM.png
在sklearn中的网格搜索
假如训练svm,想在如下参数间做出决定--- kernel : poly或rbf,C: 0.1,1,或10
- 导入GridSearchCV
from sklearn.model_selection import GridSearchCV
- 选择参数
字典,keys是参数名称,values是每个参数可能值的列表
parameters = {'kernel' : ['poly', 'rbf'], 'C': [0.1,1,10]}
- 创建一个评分机制(score)
此处选择F1分数
from sklearn.metrics import make_scorer
from sklearn.metrics import f1_score
scorer = make_scorer(f1_scorer)
- 使用参数(parameter)和评分机制(scorer)创建一个GridSearch对象,使用此对象与数据保持一致(fit the data)
grid_obj = GridSearchCV(clf, parameters, scoring = scorer)
grid_fit = grid_obj.fit(X, y)
- 获得最佳估算器(estimator)
best_clf = grid.fit.best_estimator_
附:每日一题:几句话简述 TF-IDF的思想是什么
解答:
- TF-IDF算法是一种用于信息检索和数据挖掘的常用加权技术。其主要思想是通过给评判是否为关键词的指标分配不同权重,并结合为一个指标。TF-IDF算法认为词频和逆文档频率是两个重要衡量指标,并给予了对应的计算方法。但是否为关键词的指标还应包括词的位置信息,以及其本身与主题的切合度等,所以并不完善。可以考虑给不同位置的词分配不同的权重。还可以考虑其与标题的相似度(比如用余弦相似性的原理?)代替其与主题的切合度。与主题相关的处理方法还可以考虑抓取一些signposting language, 往往作者在传达主题时会用一些特定的句型或词,所以可以考虑通过这个抓取主题,从中挑选出关键词。
- TF(Term Frequency) 词频
- IDF(Inverse Document Frequency)逆文档频率。在词频的基础上,要对每个词分配一个"重要性"权重.权重大小与词的常见程度成反比
- TF-IDF = TF*IDF
- 算法细节:
-
计算词频
0.png
或者
1.png -
计算逆文档频率
2.png -
计算TF-IDF
3.png
-
网友评论