文章目录
一、sklearn.datasets.make_hastie_10_21. 产生数据:2. 验证数据的正态性3. 数据可视化4. 代码
二、sklearn.datasets.make_circles1. 产生数据:2. 验证数据的正态性3. 数据可视化4. 代码
三、sklearn.datasets.make_moons1. 产生数据:2. 验证数据的正态性3. 数据可视化4. 代码
一、sklearn.datasets.make_hastie_10_2
产生一个相似的二元分类数据集,有10个维度
1. 产生数据:
注意这里的标签是二元的,用 -1 和 1 表示
2. 验证数据的正态性
3. 数据可视化
由于数据有 10 个特征,如果对于每个特征为一个坐标轴进行数据可视化,超高维度的数据是无法做到的,这里只取前 2 个和前 3 个特征进行空间上的可视化,大约看一下数据特征的分布。
4. 代码
from sklearn
.datasets
import make_hastie_10_2
import numpy as np
import pandas as pd
data
, target
= make_hastie_10_2(n_samples
=100)
df
= pd
.DataFrame(data
)
df
['target'] = target
df
[0].plot(kind
='kde',secondary_y
=True
,label
='df[0]')
df
[1].plot(kind
='kde',secondary_y
=True
,label
='df[1]')
plt
.legend()
df1
= df
[df
['target']==-1]
df2
= df
[df
['target']==1]
df1
.index
= range(len(df1
)) # 调整行索引(养成良好的数据处理习惯)
df2
.index
= range(len(df2
))
ax
= plt
.gca(projection
='3d') # 建立三维坐标轴,可视化三维图像
ax
.scatter(df1
[0],df1
[1],df1
[2],color
='red')
ax
.scatter(df2
[0],df2
[1],df2
[2],color
='green')
plt
.figure(figsize
=(3,3))
plt
.scatter(df1
[0],df1
[1],color
='red')
plt
.scatter(df2
[0],df2
[1],color
='green')
二、sklearn.datasets.make_circles
产生同心圆型的二维二元分类 (标签为 0, 1) 数据集来测试某些算法的性能,可以为数据集添加噪声,可以为二元分类器产生一些球形判决界面的数据。
1. 产生数据:
这里的标签是二元的,用 0 和 1 表示
2. 验证数据的正态性
3. 数据可视化
4. 代码
from sklearn
.datasets
import make_circles
import numpy as np
import pandas as pd
data
, target
= make_circles()
df
= pd
.DataFrame(data
)
df
['target'] = target
df
[0].plot(kind
='kde',secondary_y
=True
,label
='df[0]') # 分布完全重合,所以只有一条线
df
[1].plot(kind
='kde',secondary_y
=True
,label
='df[1]')
plt
.legend()
df1
= df
[df
['target']==0]
df2
= df
[df
['target']==1]
df1
.index
= range(len(df1
)) # 调整行索引(养成良好的数据处理习惯)
df2
.index
= range(len(df2
))
plt
.figure(figsize
=(3,3))
plt
.scatter(df1
[0],df1
[1],color
='red')
plt
.scatter(df2
[0],df2
[1],color
='green')
三、sklearn.datasets.make_moons
产生月牙形的二维二元分类 (标签为 0, 1) 数据集来测试某些算法的性能,可以为数据集添加噪声,可以为二元分类器产生一些球形判决界面的数据。
1. 产生数据:
这里的标签是二元的,用 0 和 1 表示
2. 验证数据的正态性
3. 数据可视化
4. 代码
from sklearn
.datasets
import make_moons
import numpy as np
import pandas as pd
data
, target
= make_moons()
df
= pd
.DataFrame(data
)
df
['target'] = target
df
[0].plot(kind
='kde',secondary_y
=True
,label
='df[0]') # 分布完全重合,所以只有一条线
df
[1].plot(kind
='kde',secondary_y
=True
,label
='df[1]')
plt
.legend()
df1
= df
[df
['target']==0]
df2
= df
[df
['target']==1]
df1
.index
= range(len(df1
)) # 调整行索引(养成良好的数据处理习惯)
df2
.index
= range(len(df2
))
plt
.figure(figsize
=(3,3))
plt
.scatter(df1
[0],df1
[1],color
='red')
plt
.scatter(df2
[0],df2
[1],color
='green')