南大《探索数据的奥秘》课件示例代码笔记16

简介: 南大《探索数据的奥秘》课件示例代码笔记16

Chp8-2

2019 年 12 月 23 日

In [3]: from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
df=pd.read_csv('C:\Python\Scripts\my_data\iris.csv',header=None,
names=['sepal_length','sepal_width','petal_length','
petal_width','target'])
my_data=df[['sepal_length','
sepal_width']].iloc[:50]
def rmse(x,y,coefs): # 注意,自定义函数的语法
yfit=np.polyval(coefs,x)
rmse=np.sqrt(np.mean((y-yfit)**2))
return rmse
xtrain,xtest,ytrain,ytest=train_test_split(my_data['sepal_length'],my_data['
sepal_width'],test_size = 0.5)
train_err=[]
validation_err=[]
degrees=range(1,8)
for i,d in enumerate(degrees):
p=np.polyfit(xtrain,ytrain,d)
train_err.append(rmse(xtrain,ytrain,p))
validation_err.append(rmse(xtest,ytest,p))
1fig,ax=plt.subplots()
ax.plot(degrees,validation_err,lw=2,label='testing error')
ax.plot(degrees,train_err,lw=2,label='training error')
ax.legend(loc=0)
ax.set_xlabel('degree of polynomial')
ax.set_ylabel('RMSE')
Out[3]: Text(0,0.5,'RMSE')

20210611103224722.png

In [54]: from sklearn.model_selection import KFold
my_data=df[['sepal_length','sepal_width']]
nfolds=3
fig,axes=plt.subplots(1,nfolds,figsize=(14,4))
kf=KFold(n_splits =nfolds)
i=0
for training, validation in kf.split(my_data):
x,y=my_data.iloc[training]['sepal_length'],df.iloc[training]['sepal_width']
axes[i].plot(x,y,'ro')
x,y=my_data.iloc[validation]['sepal_length'],df.iloc[validation]['
sepal_width']
axes[i].plot(x,y,'bo')
i=i+1
plt.tight_layout()

20210611103630145.png

In [61]: my_class=[]
for n in range(150):
if n<50:
my_class.append(1)
elif n<100:
my_class.append(2)
else:
my_class.append(3)
print(my_class)
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
In [65]: from sklearn.model_selection import cross_val_score,train_test_split
from sklearn.neighbors import KNeighborsClassifier
knn1 = KNeighborsClassifier(n_neighbors=1)
knn2 = KNeighborsClassifier(n_neighbors=1)
knn1.fit(my_data[['sepal_length','sepal_width']],my_class) # 全部数据用来训练
print('训练集测试集相同时,模型的性能得分是: ',knn1.score(my_data[['sepal_length','
sepal_width']],my_class))# 在训练集上评价性能
print('\n')scores=
cross_val_score(knn2,my_data[['sepal_length','sepal_width']],my_class,cv=5,
scoring='accuracy') # 交叉验证
print('5 折交叉验证时,模型的性能平均得分是: ',
scores.mean())
训练集测试集相同时,模型的性能得分是: 0.9266666666666666
5 折交叉验证时,模型的性能平均得分是: 0.7266666666666667
目录
相关文章
耀世升级发布!阿里第三版Java多线程核心技术手册PDF全彩版
本篇将会带着大家去全面剖析多线程编程的核心库、方法、原理,利用案例方式,透彻讲解高并发本质与应对方法!同时这份PDF全部以Demo式案例来讲解技术点的实现,使读者看到代码及 运行结果后就可以知道该项目要解决的是什么问题,类似于网络中博客的风格,让读者用最短的时间学习知识点,明白知识点如何应用,以及在使用时要避免什么,从而快速学习并解决问题!
南大《探索数据的奥秘》课件示例代码笔记05
南大《探索数据的奥秘》课件示例代码笔记05
83 0
南大《探索数据的奥秘》课件示例代码笔记04
南大《探索数据的奥秘》课件示例代码笔记04
107 0
南大《探索数据的奥秘》课件示例代码笔记10
南大《探索数据的奥秘》课件示例代码笔记10
89 0
南大《探索数据的奥秘》课件示例代码笔记12
南大《探索数据的奥秘》课件示例代码笔记12
81 0
南大《探索数据的奥秘》课件示例代码笔记07
南大《探索数据的奥秘》课件示例代码笔记07
85 0
南大《探索数据的奥秘》课件示例代码笔记14
南大《探索数据的奥秘》课件示例代码笔记14
79 0
南大《探索数据的奥秘》课件示例代码笔记15
南大《探索数据的奥秘》课件示例代码笔记15
56 0
南大《探索数据的奥秘》课件示例代码笔记11
南大《探索数据的奥秘》课件示例代码笔记11
87 0
南大《探索数据的奥秘》课件示例代码笔记17
南大《探索数据的奥秘》课件示例代码笔记17
62 0