课程1:机器学习入门 | |
lesson 1 | 训练与测试模型 |
|
在机器学习领域中有一些重要的分类算法,在sklearn中,只需要定义分类器,使用classifier.fit(X,y) 使分类器与数据拟合(称为X,y):
from sklearn.linear_model import LogisticRegression classifier = LogisticRegression() classifier.fit(X,y) 可由第一张图变为第二张图,更容易选出蓝点
from sklearn.neural_network import MLPClassifier classifier = MLPClassifier()
from sklearn.tree import DecisionTreeClassifier classifier = DecisionTreeClassifier()
from sklearn.svm import SVC classifier = SVC() 正文内容
classifier = SVC(kernel = 'poly', degree = 2) 参数意义: kernel:linear (线性), poly(多项式), rbf(高斯核) degree:多项式内核的次数(如果选择了多项式内核) gamma :γ 参数 C:C参数
from sklearn.model_selection import train_test_split 自动将数据分出训练集测试集。
测试集永远不能用来训练模型。
|
lesson 2 | 评估指标 |
|
(true positive false negative;false positive true negative)
当基数很大时,第二种情况数量较少时,不适合用准确率判断模型好坏。
β取值在0到无限大之间,β=0,则得出的是精度;β=无限大,则得到的召回率。
接受者操作特性曲线是指在特定刺激条件下,以被试在不同判断标准下所得的false positive rate FP/(FP+TN)横坐标,以true positive rate TP/(TP+FN)为纵坐标,画得的各点的连线。
平均绝对误差 均方误差 R2分数:R2=1-(线性回归模型均方误差/简单模型均方误差) R2越小,说明两个误差很接近,模型效果不好。 |
lesson 3 | 模型选择 |
判断模型是否选的正确 |
最佳模型(TRAINING ERROR和CV ERROR互相接近并交于一个很低的点) 过拟合模型(曲线不会相互接近,交叉验证集保持很高,训练集保持很低) 如果模型有多个参数(称为超参数,则使用网格搜索确定F1值最高的模型)在sklearn中将选择的参数形成一个字典,再创建一个模型评分(如F1)。
假设我们想要训练支持向量机,并且我们想在以下参数之间做出决定:
( 注:这些参数对于你来说,现在可以简单了解一下,我们将在该纳米学位接下来的监督学习部分中详细了解它们。 具体步骤如下所示: 1. 导入 GridSearchCVfrom sklearn.model_selection import GridSearchCV 2.选择参数:现在我们来选择我们想要选择的参数,并形成一个字典。 在这本字典中,键 (keys) 将是参数的名称,值 (values) 将是每个参数可能值的列表。 parameters = {'kernel':['poly', 'rbf'],'C':[0.1, 1, 10]} 3.创建一个评分机制 (scorer)我们需要确认将使用什么指标来为每个候选模型评分。 这里,我们将使用 F1 分数。 from sklearn.metrics import make_scorer from sklearn.metrics import f1_score scorer = make_scorer(f1_score) 4. 使用参数 (parameter) 和评分机制 (scorer) 创建一个 GridSearch 对象。 使用此对象与数据保持一致 (fit the data) 。# Create the object.grid_obj = GridSearchCV(clf, parameters, scoring=scorer) # Fit the datagrid_fit = grid_obj.fit(X, y) 5. 获得最佳估算器 (estimator)best_clf = grid_fit.best_estimator_ 现在你可以使用这一估算器best_clf来做出预测。 |
总结Summary | |
|
Udacity课程机器学习方向笔记(1)机器学习入门
最新推荐文章于 2024-06-22 12:20:07 发布