scikit-learn(sklearn)学习笔记五

此次笔记的内容:cross validation交叉验证
我们先沿用第一次笔记的代码

import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split#切割训练集与测试集
from sklearn.neighbors import KNeighborsClassifier#K临近学习

iris=load_iris()
X=iris.data
y=iris.target

X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=4)
knn=KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train,y_train)
print(knn.score(X_test,y_test))
0.9736842105263158

但是我们这么做,如果总样本太少,测试集与验证集就不能像上述的去划分。

from sklearn.model_selection import cross_val_score
knn=KNeighborsClassifier(n_neighbors=5)
scores=cross_val_score(knn,X,y,cv=5,scoring='accuracy')#会被分为五组
print(scores)
[0.96666667 1.         0.93333333 0.96666667 1.        ]
print(scores.mean())
0.9733333333333334

然后我们开始讨论如何选择n_neighbors的参数

from sklearn.model_selection import cross_val_score
import matplotlib.pyplot as plt 
k_range=range(1,31)
k_scores=[]
for k in k_range:
	knn=KNeighborsClassifier(n_neighbors=k)
	scores=cross_val_score(knn,X,y,cv=10,scoring='accuracy')#分成了10个data,用于分类

	k_scores.append(scores.mean()) 
	
plt.plot(k_range,k_scores)
plt.xlabel('Value of K forKNN')
plt.ylabel('Cross-Validataed Accuracy')
plt.show()

效果如下
在这里插入图片描述
此外如果我们像用于线性回归
只需把scores=cross_val_score(knn,X,y,cv=10,scoring=‘accuracy’)更改为loss=-cross_val_score(knn,X,y,cv=10,scoring=‘neg_mean_squared_error’)效果如下在这里插入图片描述
然后我们就开始讨论过拟合
我们先举例看怎么去观查过拟合

from sklearn.model_selection import learning_curve#可视化学习过程
from sklearn.datasets import load_digits
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np

digits=load_digits()
X=digits.data
y=digits.target
train_sizes,train_loss,test_loss=learning_curve(SVC(gamma=0.001),X,y,cv=10,scoring='neg_mean_squared_error',train_sizes=[0.1,0.25,0.5,0.75,1])
train_loss_mean=-np.mean(train_loss,axis=1)
test_loss_mean=-np.mean(test_loss,axis=1)

plt.plot(train_sizes,train_loss_mean,'o-',color='r',label='Training')
plt.plot(train_sizes,test_loss_mean,'o-',color='g',label='Cross-validation')

plt.xlabel('Training examples')
plt.ylabel('Loss')
plt.legend(loc='best')
plt.show()

在这里插入图片描述

from sklearn.model_selection import validation_curve
from sklearn.datasets import load_digits
from sklearn.svm import SVC
import matplotlib.pyplot as plt
import numpy as np

digits=load_digits()
X=digits.data
y=digits.target
param_range=np.logspace(-6,-2.3,5)
train_loss,test_loss=validation_curve(SVC(1),X,y,param_name='gamma',param_range=param_range,cv=10,scoring='neg_mean_squared_error')
train_loss_mean=-np.mean(train_loss,axis=1)
test_loss_mean=-np.mean(test_loss,axis=1)

plt.plot(param_range,train_loss_mean,'o-',color='r',label='Training')
plt.plot(param_range,test_loss_mean,'o-',color='g',label='Cross-validation')

plt.xlabel('gamma')
plt.ylabel('Loss')
plt.legend(loc='best')
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以通过以下步骤在Jupyter Notebook中安装Scikit-learn: 1. 打开Jupyter Notebook并创建一个新的Python笔记本。 2. 在笔记本中输入以下命令:`!pip install scikit-learn` 3. 运行该命令并等待安装完成。 4. 在笔记本中导入Scikit-learn库并开始使用它。 希望这可以帮助您安装Scikit-learn并在Jupyter Notebook中使用它。 ### 回答2: Jupyter Notebook是一个流行的数据科学工具,而scikit-learnPython中的一个机器学习库。在使用Jupyter Notebook进行机器学习项目时,scikit-learn是一个非常有用的工具。在这里,我们将说明如何安装scikit-learn,以便你可以在Jupyter Notebook中使用它。 在安装scikit-learn之前,您需要确保已经安装了Python环境。如果还没有,请先安装Python环境。 安装scikit-learn scikit-learn可以使用pip,在命令行中输入以下命令安装: ```python pip install sklearn ``` 在安装过程中,可能会遇到依赖项问题。解决这个问题的最佳方法是使用Anaconda,它是一个流行的数据科学平台,包括Python环境和许多常见的数据科学包,其中就包括scikit-learn。 使用Anaconda安装scikit-learn 如果你使用Anaconda,你可以打开Anaconda命令提示符并输入以下命令来安装scikit-learn: ``` conda install scikit-learn ``` 然后按回车键,Anaconda将开始解析依赖项和安装scikit-learn。 验证scikit-learn是否安装成功 如果您已经完成了以上步骤,则应该已经成功安装了scikit-learn。要验证是否已成功安装,您可以在Jupyter Notebook中运行以下代码: ```python import sklearn as sk print(sk.__version__) ``` 如果您看到代码输出了版本号,则说明scikit-learn已成功安装。 在Jupyter Notebook中使用scikit-learn 在Jupyter Notebook中使用scikit-learn时,您需要导入相关的模块。以下是在Jupyter Notebook中使用scikit-learn的示例代码: ```python # 导入scikit-learn模块 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 加载iris数据集 iris = load_iris() # 创建特征数据和标签数据 X = iris.data y = iris.target # 将数据分为训练数据和测试数据 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0) # 创建一个k近邻分类器 knn = KNeighborsClassifier(n_neighbors=5) # 训练模型 knn.fit(X_train, y_train) # 使用模型进行预测 y_pred = knn.predict(X_test) # 输出模型的准确性 print("Accuracy:", knn.score(X_test, y_test)) ``` 本文介绍了如何在Jupyter Notebook中安装和使用scikit-learn。如果您想使用Python进行机器学习项目,scikit-learn是一个非常值得使用的机器学习库。 ### 回答3: jupyter notebook是一款交互式的代码笔记本,而sklearn则是常用的机器学习库。在使用jupyter notebook进行机器学习时,安装sklearn是必不可少的。下面将详细介绍如何在jupyter notebook上安装sklearn。 一、安装Anaconda 在安装sklearn之前,首先需要安装Anaconda,因为Anaconda内置了许多科学计算库,如numpy、pandas等。 安装方法: 1.到Anaconda官网(https://www.anaconda.com/)下载对应操作系统的安装包。 2.安装完成后,打开Anaconda Prompt。 二、安装sklearn 1.在Anaconda Prompt中输入以下命令: pip install scikit-learn 2.等待安装完成后,在jupyter notebook中检查是否已成功安装sklearn。 二、安装其他依赖库 在使用sklearn时,还需要其他的依赖库,如matplotlib等。可以在Anaconda Prompt中使用pip依次安装这些库。 安装方法: 1.打开Anaconda Prompt。 2.输入以下命令: pip install matplotlib pip install seaborn 3.等待安装完成后,在jupyter notebook中检查是否已成功安装这些依赖库。 总结: 以上便是在jupyter notebook中安装sklearn的步骤,需要注意的是,在安装sklearn之前需要安装Anaconda,同时还需要安装其他依赖库。通过以上步骤,就可以在jupyter notebook中愉快地使用sklearn进行机器学习了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值