调用sklearn库分类学习

在《python机器学习及实践》一书的学习中,小豆桑发现似乎一些学习算法由于要调用库,会有类似的过程,于是记录下来,以便时间长后的查阅。

1. 数据预处理
这是一个非常复杂的过程,实际应用中可能大量时间都用在数据收集清理上。
此处简单举例,使用pandas来读取数据。
Read CSV (comma-separated) file into DataFrame
把以逗号分隔的数据读入数据列表
data = pandas.read_csv(‘ https://archive.ics.uci.edu/m1/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data ’,names=column_names)
至此,数据就成为了一个矩阵。

2. 准备测试和训练数据
在这个过程中,通常包括数据的标准化、测试数据和训练的随机采样。
sklearn中的train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签。
格式:
X_train,X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target,test_size=0.3, random_state=0)
参数解释:
train_data:被划分的样本特征集
train_target:被划分的样本标签
test_size:如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量
random_state:是随机数的种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。

from sklearn.linear_model import StandardScaler
ss = StandardScaler()
x_train = ss.fit_transform(x_train)

3. 调用分类模型进行预测
这里以线型分类器来举例,也可以替换成其他分类器。
lr = LogisticRegression()
lr.fit(x_train,y_train)
y_predict = lr.predict(x_test)

4. 性能分析
1)使用模型自身具有的评分函数来分析。
lr.score(x_test, y_test)
2)利用classification_report模块
classification_report(y_test, y_predict,target_name=['Benign', 'Malignant'])
该函数对于初学的小豆桑来说还是略微有些复杂,于是特此说明如下:
召回率和精确率表现情况的衡量
>>> from sklearn.metrics import classification_report
>>> y_true = [0, 1, 2, 2, 2]
>>> y_pred = [0, 0, 2, 2, 1]
>>> target_names = ['class 0', 'class 1', 'class 2']
>>> print(classification_report(y_true, y_pred, target_names=target_names))
             precision recall f1-score support

    class 0 0.50 1.00 0.67 1
    class 1 0.00 0.00 0.00 1
    class 2 1.00 0.67 0.80 3

avg / total 0.70 0.60 0.61 5

对准确率、精确率、召回率的解释
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.
现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.


-----------------------------------------分割线,此处举例借用当时看到一篇博客的例子,但是一时没有记起来是哪篇,等记起来了再说T-T-------------------------

准确率:分正确的人数占总人数的比例
精确率:分辨为女生中是真女生的比例
召回率:真女生中被分辨出来的比例
F1值就是精确率和召回率的调和平均值
F1越大越好
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用以下代码调用sklearn中的支持向量机: ```python from sklearn import datasets from sklearn import svm # 加载数据集 iris = datasets.load_iris() # 创建支持向量机分类器 clf = svm.SVC() # 训练模型 clf.fit(iris.data, iris.target) ``` 在这个例子中,我们加载了鸢尾花数据集,并使用支持向量机分类器训练了模型。你可以根据自己的需求修改数据集和模型参数。 ### 回答2: scikit-learn(sklearn)是一个用于机器学习Python,其中包含了许多实现了各种机器学习算法的工具。其中的支持向量机(Support Vector Machine,SVM)算法是一种常用的监督学习算法。 调用sklearn中的支持向量机方法可以用以下几个步骤完成: 1. 导入所需的和模块,在代码的开头添加以下行: ```python from sklearn import svm ``` 2. 准备好用于训练和测试的数据集。数据集应包含特征向量和相应的目标变量。例如,可以将特征向量存储在一个名为"X"的变量中,目标变量存储在一个名为"y"的变量中。 3. 创建支持向量机分类器的实例。可以使用`svm.SVC()`来创建一个基于支持向量机的分类器,或者使用`svm.SVR()`来创建一个基于支持向量机的回归器。 4. 使用训练数据拟合模型。将训练数据集的特征向量和目标变量作为参数传递给`fit()`方法。 5. 使用训练好的模型进行预测。可以使用`predict()`方法传入测试数据集的特征向量,返回模型对应的预测值。 下面是一个简单的示例代码: ```python from sklearn import svm # 准备训练数据 X = [[0, 0], [1, 1]] y = [0, 1] # 创建支持向量机分类器实例 clf = svm.SVC() # 拟合模型 clf.fit(X, y) # 准备测试数据 test_data = [[0.5, 0.5], [0.2, 0.8]] # 预测测试数据的类别 predictions = clf.predict(test_data) print(predictions) ``` 在这个例子中,我们首先导入了`svm`模块,然后准备了一个简单的训练数据集X和y。接下来,我们创建了一个支持向量机分类器实例clf,并使用`fit()`方法拟合模型。最后,我们准备了一个测试数据集test_data,并使用`predict()`方法预测其所属的类别。最后打印出了预测结果。 通过上述步骤,就可以调用sklearn中的支持向量机方法来进行分类或回归任务。具体的模型参数和方法可以根据实际需求进行调整和定制。 ### 回答3: 支持向量机(SVM)是机器学习中一种常用的分类算法,可以使用sklearn进行调用和应用。 首先,我们需要导入sklearn中的SVM模块: ```python from sklearn import svm ``` 接下来,我们可以通过创建一个SVM分类器对象来对数据进行训练和预测: ```python clf = svm.SVC() # 创建SVM分类器对象 clf.fit(X_train, y_train) # 使用训练数据进行训练 y_pred = clf.predict(X_test) # 使用训练好的模型进行预测 ``` 在上述代码中,X_train是训练数据集的特征向量,y_train是对应的训练标签,X_test是测试数据集的特征向量,y_pred是预测结果。在.fit()方法中,模型使用训练数据进行训练,而.predict()方法则使用训练好的模型对测试数据进行预测。 除了默认的线性核函数,我们还可以使用其他的核函数,例如径向基函数(RBF): ```python clf = svm.SVC(kernel='rbf') # 使用径向基函数作为核函数 ``` 在实际应用中,还可以根据需要设定其他参数,例如正则化参数C、惩罚因子gamma等,以优化模型的性能和准确度: ```python clf = svm.SVC(C=0.8, gamma=0.1) # 设定正则化参数C为0.8,设定惩罚因子gamma为0.1 ``` 调用sklearn中的支持向量机模型,可以方便地实现对数据的分类和预测,提高模型的准确性和泛化能力。注意,在使用SVM算法时,数据的预处理和特征工程同样重要,对数据进行合适的处理可以提高模型的性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值