Bunch数据属性
Bunch本质上的数据类型是字典类型dict,属性有:
- DESCR:数据描述。print(“数据集描述:”, load_iris().DESCR)
- target_names:标签名。可自定义,默认为文件夹名
- filenames:文件名。
- target:文件分类,print(“标签名:\n”, load_iris().target)
- data:数据数组
from sklearn.datasets import load_iris
from sklearn.feature_extraction import DictVectorizer
def datasets():
#print("数据集:", load_iris())
#print("数据集描述:", load_iris().DESCR)
#print("特征值:\n", load_iris().data)
print("标签名:\n", load_iris().target)
print("标签名:\n", load_iris().keys())
print("标签名:\n", load_iris().target_names)
def dictdemo():
# 字典特征提取,将字典中属于类别的转化成 one-hot
data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 100}, {'city': '深圳', 'temperature': 100}]
# 实例化一个转换器
# sparse稀疏矩阵默认ture,将非零值的位置表示出来
transform = DictVectorizer(sparse=False)
data_new = transform.fit_transform(data)
print("data_new:\n", data_new)
print("特征名:\n", transform.get_feature_names())
# 调用fit-transform()
return None
if __name__ == '__main__':
#dictdemo()
datasets()
降维处理
特征选择
1、Filter低方差过滤特征
删除一些低方差的一些特征,表示特征相近通过transfer = VarianceThreshold(threshold=10)参数调整
1、获取数据
data = pd.read_csv(".abc.csv")
#所有行,第一列到倒数第三列
data.iloc[:,1:-2]
2、实列化一个转化器类
from sklearn.feature_selection import VarianceThreshold
transfer = VarianceThreshold()
3、调用fit_transform
data_new = transfer.fit_transform(data)
2、相关系数
皮尔逊相关系数
其值在>0,表示正相关,一个增一个也增,负相关的话则相反,
越接近1正相关越强,越接近-1负相关越强,0.4<r<0.7显著性相关,0.7<r<1强相关
#引入API
from scipy.stats import pearsonr
pearsonr(data["a"], data["b "])
相关系数很高时
- 选取其中一个
- 加权求和
- 主成分分析
主成分分析
应用:回归,聚类
定义:高维转低维的过程,并且尽可能的保留信息
``
#将数据分解成比较低维的空间
#n_components为小数时表示保留百分之多少的信息为整数时表示减少到多少的特征
from sklearn.decomposition import PCA
transfer = PCA(n_components=2)
transfer.fit_transform(data)