当前位置: 首页 > news >正文

义乌专业做网站的广州网站推广联盟

义乌专业做网站的,广州网站推广联盟,私人网页服务器,做域名不做网站可以吗一、什么是特征降维 降维是指在某些限定条件下#xff0c;降低随机变量#xff08;特征#xff09;个数#xff0c;得到一组“不相关”主变量的过程 1、降维 降低维度 ndarry 维数#xff1a;嵌套的层数 0维#xff1a;标量#xff0c;具体的数0 1 2 3... …一、什么是特征降维 降维是指在某些限定条件下降低随机变量特征个数得到一组“不相关”主变量的过程 1、降维 降低维度 ndarry     维数嵌套的层数     0维标量具体的数0 1 2 3...     1维向量     2维矩阵     3维多个二维数组嵌套     n维继续嵌套下去 2、特征降维降的是什么 降的是二维数组特征是几行几列的几行有多少样本几列有多少特征 降低特征的个数就是列数 二、降维的两种方式 1、特征选择 2、主成分分析可以理解一种特征提取的方式 三、什么是特征选择 1、定义 数据中包含冗余或相关变量或称特征、属性、指标等旨在从原有特征中找出主要特征 2、例子想要对鸟进行类别的区分 特征 1羽毛颜色 2眼睛宽度 3眼睛长度 4爪子长度 5体格大小 比如还有的特征是否有羽毛、是否有爪子那这些特征就没有意义 3、方法 Filter过滤式主要探究特征本身特点、特征与特征和目标值之间关联 1方差选择法低方差特征过滤过滤掉方差比较低的特征 2相关系数特征与特征之间的相关程度 3方差选择法在文本分类中表现非常不好对噪声的处理能力几乎为0还删除了有用的特征 Embedded嵌入式算法自动选择特征特征与目标值之间的关联 1决策树信息熵、信息增益 2正则化L1、L2 3深度学习卷积等 4对于Embedded方式只能在讲解算法的时候再进行介绍更好的去理解 4、模块 sklearn.feature_selection 四、低方差特征过滤 1、删除低方差的一些特征前面讲过方差的意义。再结合方差的大小来考虑这个方式的角度 1特征方差小某个特征大多样本的值比较相近 2特征方差大某个特征很多样本的值都有差别 2、API sklearn.feature_selection.VarianceThreshold(threshold 0.0) 删除所有低方差特征设置一个临界值低于临界值的都删掉 Variance方差 Threshold阈值 3、Variance.fit_transform(X) Xnumpy array格式的数据[n_samples, n_features] 返回值训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征即删除所有样本中具有相同值的特征 4、数据计算 我们对某些股票的指标特征之间进行一个筛选数据在factor_returns.csv文件当中除去index、date、return列不考虑这些类型不匹配也不是所需要的指标 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.feature_selection import VarianceThreshold import jieba import pandas as pddef datasets_demo():sklearn数据集使用#获取数据集iris load_iris()print(鸢尾花数据集\n, iris)print(查看数据集描述\n, iris[DESCR])print(查看特征值的名字\n, iris.feature_names)print(查看特征值几行几列\n, iris.data.shape)#数据集的划分x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, test_size0.2, random_state22)print(训练集的特征值\n, x_train, x_train.shape)return Nonedef dict_demo():字典特征抽取data [{city: 北京,temperature:100},{city: 上海,temperature:60},{city: 深圳,temperature:30}]# 1、实例化一个转换器类transfer DictVectorizer(sparseFalse)# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new)print(特征名字\n, transfer.get_feature_names())return Nonedef count_demo():文本特征抽取data [life is short,i like like python, life is too long,i dislike python]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new.toarray())print(特征名字\n, transfer.get_feature_names()) return Nonedef count_chinese_demo():中文文本特征抽取data [我 爱 北京 天安门, 天安门 上 太阳 升]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transformdata_new transfer.fit_transform(data)print(data_new:\n, data_new.toarray());print(特征名字\n, transfer.get_feature_names())return Nonedef cut_word(text):进行中文分词return .join(list(jieba.cut(text))) #返回一个分词生成器对象强转成list再join转成字符串def count_chinese_demo2():中文文本特征抽取自动分词# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer CountVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef tfidf_demo():用tf-idf的方法进行文本特征抽取# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer TfidfVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef minmax_demo():归一化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer MinMaxScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef stand_demo():标准化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer StandardScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef variance_demo():过滤低方差特征# 1、获取数据data pd.read_csv(factor_returns.csv)#print(data\n, data)data data.iloc[:, 1:-2]print(data\n, data)# 2、实例化一个转换器类transfer VarianceThreshold(threshold3)# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new, data_new.shape)return Noneif __name__ __main__:# 代码1sklearn数据集使用#datasets_demo()# 代码2字典特征抽取#dict_demo()# 代码3文本特征抽取#count_demo()# 代码4中文文本特征抽取#count_chinese_demo()# 代码5中文文本特征抽取自动分词#count_chinese_demo2()# 代码6 测试jieba库中文分词#print(cut_word(我爱北京天安门))# 代码7用tf-idf的方法进行文本特征抽取#tfidf_demo()# 代码8归一化#minmax_demo()# 代码9标准化#stand_demo()# 代码10低方差特征过滤variance_demo()运行结果 datape_ratio pb_ratio market_cap return_on_asset_net_profit du_return_on_equity ev earnings_per_share revenue total_expense 0 5.9572 1.1818 8.525255e10 0.8008 14.9403 1.211445e12 2.0100 2.070140e10 1.088254e10 1 7.0289 1.5880 8.411336e10 1.6463 7.8656 3.002521e11 0.3260 2.930837e10 2.378348e10 2 -262.7461 7.0003 5.170455e08 -0.5678 -0.5943 7.705178e08 -0.0060 1.167983e07 1.203008e07 3 16.4760 3.7146 1.968046e10 5.6036 14.6170 2.800916e10 0.3500 9.189387e09 7.935543e09 4 12.5878 2.5616 4.172721e10 2.8729 10.9097 8.124738e10 0.2710 8.951453e09 7.091398e09 ... ... ... ... ... ... ... ... ... ... 2313 25.0848 4.2323 2.274800e10 10.7833 15.4895 2.784450e10 0.8849 1.148170e10 1.041419e10 2314 59.4849 1.6392 2.281400e10 1.2960 2.4512 3.810122e10 0.0900 1.731713e09 1.089783e09 2315 39.5523 4.0052 1.702434e10 3.3440 8.0679 2.420817e10 0.2200 1.789082e10 1.749295e10 2316 52.5408 2.4646 3.287910e10 2.7444 2.9202 3.883803e10 0.1210 6.465392e09 6.009007e09 2317 14.2203 1.4103 5.911086e10 2.0383 8.6179 2.020661e11 0.2470 4.509872e10 4.132842e10[2318 rows x 9 columns] data_new[[ 5.95720000e00 1.18180000e00 8.52525509e10 ... 1.21144486e122.07014010e10 1.08825400e10][ 7.02890000e00 1.58800000e00 8.41133582e10 ... 3.00252062e112.93083692e10 2.37834769e10][-2.62746100e02 7.00030000e00 5.17045520e08 ... 7.70517753e081.16798290e07 1.20300800e07]...[ 3.95523000e01 4.00520000e00 1.70243430e10 ... 2.42081699e101.78908166e10 1.74929478e10][ 5.25408000e01 2.46460000e00 3.28790988e10 ... 3.88380258e106.46539204e09 6.00900728e09][ 1.42203000e01 1.41030000e00 5.91108572e10 ... 2.02066110e114.50987171e10 4.13284212e10]] (2318, 8)五、相关系数 1、皮尔逊相关系数(Pearson Correlation Coefficient) 反映变量之间相关关系密切程度的统计指标 2、公式计算案例 1公式 2比如说我们计算年广告费投入与月均销售额 3那么之间的相关系数怎么计算 4最终计算 5结果0.9942 所以我们最终得出结论是广告投入费与月平均销售额之间有高度的正相关关系 4、API from scipy.stats import pearsonr X(N,) array_like Y(N,) array_like Returns(Pearson’s correlation coefficient, p-value)返回值是两个 注pandas上面也有这个求相关系数的方法 5、案例股票的财务指标相关性计算 计算某两个变量之间的相关系数 data [ ] 里面的关键字要用你自己表里面的列名 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.feature_selection import VarianceThreshold from scipy.stats import pearsonr import jieba import pandas as pddef datasets_demo():sklearn数据集使用#获取数据集iris load_iris()print(鸢尾花数据集\n, iris)print(查看数据集描述\n, iris[DESCR])print(查看特征值的名字\n, iris.feature_names)print(查看特征值几行几列\n, iris.data.shape)#数据集的划分x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, test_size0.2, random_state22)print(训练集的特征值\n, x_train, x_train.shape)return Nonedef dict_demo():字典特征抽取data [{city: 北京,temperature:100},{city: 上海,temperature:60},{city: 深圳,temperature:30}]# 1、实例化一个转换器类transfer DictVectorizer(sparseFalse)# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new)print(特征名字\n, transfer.get_feature_names())return Nonedef count_demo():文本特征抽取data [life is short,i like like python, life is too long,i dislike python]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new.toarray())print(特征名字\n, transfer.get_feature_names()) return Nonedef count_chinese_demo():中文文本特征抽取data [我 爱 北京 天安门, 天安门 上 太阳 升]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transformdata_new transfer.fit_transform(data)print(data_new:\n, data_new.toarray());print(特征名字\n, transfer.get_feature_names())return Nonedef cut_word(text):进行中文分词return .join(list(jieba.cut(text))) #返回一个分词生成器对象强转成list再join转成字符串def count_chinese_demo2():中文文本特征抽取自动分词# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer CountVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef tfidf_demo():用tf-idf的方法进行文本特征抽取# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer TfidfVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef minmax_demo():归一化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer MinMaxScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef stand_demo():标准化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer StandardScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef variance_demo():过滤低方差特征# 1、获取数据data pd.read_csv(factor_returns.csv)#print(data\n, data)data data.iloc[:, 1:-2]print(data\n, data)# 2、实例化一个转换器类transfer VarianceThreshold(threshold3)# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new, data_new.shape)# 4、计算某两个变量之间的相关系数r pearsonr(data[pe_ratio], data[pb_ratio])print(相关系数\n, r)return Noneif __name__ __main__:# 代码1sklearn数据集使用#datasets_demo()# 代码2字典特征抽取#dict_demo()# 代码3文本特征抽取#count_demo()# 代码4中文文本特征抽取#count_chinese_demo()# 代码5中文文本特征抽取自动分词#count_chinese_demo2()# 代码6 测试jieba库中文分词#print(cut_word(我爱北京天安门))# 代码7用tf-idf的方法进行文本特征抽取#tfidf_demo()# 代码8归一化#minmax_demo()# 代码9标准化#stand_demo()# 代码10低方差特征过滤variance_demo() 运行结果 datape_ratio pb_ratio market_cap return_on_asset_net_profit du_return_on_equity ev earnings_per_share revenue total_expense 0 5.9572 1.1818 8.525255e10 0.8008 14.9403 1.211445e12 2.0100 2.070140e10 1.088254e10 1 7.0289 1.5880 8.411336e10 1.6463 7.8656 3.002521e11 0.3260 2.930837e10 2.378348e10 2 -262.7461 7.0003 5.170455e08 -0.5678 -0.5943 7.705178e08 -0.0060 1.167983e07 1.203008e07 3 16.4760 3.7146 1.968046e10 5.6036 14.6170 2.800916e10 0.3500 9.189387e09 7.935543e09 4 12.5878 2.5616 4.172721e10 2.8729 10.9097 8.124738e10 0.2710 8.951453e09 7.091398e09 ... ... ... ... ... ... ... ... ... ... 2313 25.0848 4.2323 2.274800e10 10.7833 15.4895 2.784450e10 0.8849 1.148170e10 1.041419e10 2314 59.4849 1.6392 2.281400e10 1.2960 2.4512 3.810122e10 0.0900 1.731713e09 1.089783e09 2315 39.5523 4.0052 1.702434e10 3.3440 8.0679 2.420817e10 0.2200 1.789082e10 1.749295e10 2316 52.5408 2.4646 3.287910e10 2.7444 2.9202 3.883803e10 0.1210 6.465392e09 6.009007e09 2317 14.2203 1.4103 5.911086e10 2.0383 8.6179 2.020661e11 0.2470 4.509872e10 4.132842e10[2318 rows x 9 columns] data_new[[ 5.95720000e00 1.18180000e00 8.52525509e10 ... 1.21144486e122.07014010e10 1.08825400e10][ 7.02890000e00 1.58800000e00 8.41133582e10 ... 3.00252062e112.93083692e10 2.37834769e10][-2.62746100e02 7.00030000e00 5.17045520e08 ... 7.70517753e081.16798290e07 1.20300800e07]...[ 3.95523000e01 4.00520000e00 1.70243430e10 ... 2.42081699e101.78908166e10 1.74929478e10][ 5.25408000e01 2.46460000e00 3.28790988e10 ... 3.88380258e106.46539204e09 6.00900728e09][ 1.42203000e01 1.41030000e00 5.91108572e10 ... 2.02066110e114.50987171e10 4.13284212e10]] (2318, 8) 相关系数(-0.004389322779936261, 0.8327205496564927) 相关系数  (-0.004389322779936261, 0.8327205496564927) 前面一个是相关系数比较接近于0说明这两者不太相关 后面是p-value假设H0xy不相关p-value越大H0成立的概率越大。p-value值表示显著水平越小越好 所以这里是说明前面的相关系数成立的可能性很大 6、特征与特征之间相关性很高怎么办 1选取其中一个 2加权求和 比如revenue和total_expense相关性高各占50% 3主成分分析 7、用图片展示相关性 安装matplotlib 1先安装Pillow 参考资料https://pillow.readthedocs.io/en/latest/installation.html python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow 2再安装matplotlib pip3 install matplotlib from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.feature_selection import VarianceThreshold from scipy.stats import pearsonr import jieba import pandas as pd import matplotlib.pyplot as pltdef datasets_demo():sklearn数据集使用#获取数据集iris load_iris()print(鸢尾花数据集\n, iris)print(查看数据集描述\n, iris[DESCR])print(查看特征值的名字\n, iris.feature_names)print(查看特征值几行几列\n, iris.data.shape)#数据集的划分x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, test_size0.2, random_state22)print(训练集的特征值\n, x_train, x_train.shape)return Nonedef dict_demo():字典特征抽取data [{city: 北京,temperature:100},{city: 上海,temperature:60},{city: 深圳,temperature:30}]# 1、实例化一个转换器类transfer DictVectorizer(sparseFalse)# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new)print(特征名字\n, transfer.get_feature_names())return Nonedef count_demo():文本特征抽取data [life is short,i like like python, life is too long,i dislike python]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new.toarray())print(特征名字\n, transfer.get_feature_names()) return Nonedef count_chinese_demo():中文文本特征抽取data [我 爱 北京 天安门, 天安门 上 太阳 升]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transformdata_new transfer.fit_transform(data)print(data_new:\n, data_new.toarray());print(特征名字\n, transfer.get_feature_names())return Nonedef cut_word(text):进行中文分词return .join(list(jieba.cut(text))) #返回一个分词生成器对象强转成list再join转成字符串def count_chinese_demo2():中文文本特征抽取自动分词# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer CountVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef tfidf_demo():用tf-idf的方法进行文本特征抽取# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer TfidfVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef minmax_demo():归一化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer MinMaxScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef stand_demo():标准化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer StandardScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef variance_demo():过滤低方差特征# 1、获取数据data pd.read_csv(factor_returns.csv)#print(data\n, data)data data.iloc[:, 1:-2]print(data\n, data)# 2、实例化一个转换器类transfer VarianceThreshold(threshold3)# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new, data_new.shape)# 4、计算某两个变量之间的相关系数r1 pearsonr(data[pe_ratio], data[pb_ratio])print(相关系数\n, r1)r2 pearsonr(data[revenue], data[total_expense])print(revenue与total_expense之间的相关性\n, r2)#用图片展示相关性plt.figure(figsize(20, 8), dpi100)plt.scatter(data[revenue], data[total_expense])plt.show()return Noneif __name__ __main__:# 代码1sklearn数据集使用#datasets_demo()# 代码2字典特征抽取#dict_demo()# 代码3文本特征抽取#count_demo()# 代码4中文文本特征抽取#count_chinese_demo()# 代码5中文文本特征抽取自动分词#count_chinese_demo2()# 代码6 测试jieba库中文分词#print(cut_word(我爱北京天安门))# 代码7用tf-idf的方法进行文本特征抽取#tfidf_demo()# 代码8归一化#minmax_demo()# 代码9标准化#stand_demo()# 代码10低方差特征过滤variance_demo()六、主成分分析 1、什么是主成分分析PCA 定义高维数据转化为低维数据的过程在此过程中可能会舍弃原有数据、创造新的变量 作用是数据维数压缩尽可能降低原数据的维数复杂度损失少量信息 应用回归分析或者聚类分析当中 2、如何最好的对一个立体的物体二维表示 现实中是一个水壶拍成照片就是平面的 相当于将三维降到二维在这个过程中可能就会有信息的损失 如何去衡量信息损失有多少直观的检验方法是能不能通过二维的图像能够还原出它还是一个水壶 从这四个图片中可以看到最后一个能识别出是水壶也就是说最后一个从三维降到二维它损失的信息是最少的 3、PCA计算过程 找到一个合适的直线通过一个矩阵运算得出主成分分析的结果 PCA是一种数据降维的技术它并不是将数据拟合到一个模型中而是通过线性变换将原始的高维数据投影到一个低维的子空间中使得投影后的数据仍然尽可能地保留原始数据的信息同时减少了特征的数量和减少了冗余性 4、API sklearn.decomposition.PCA(n_componentsNone) 将数据分解为较低维数空间 n_components 如果传小数表示保留百分之多少的信息 如果传整数减少到多少特征 5、PCA.fit_transform(X) Xnumpy array格式的数据[n_samples, n_features] 返回值转换后指定维度的array 6、数据计算 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.feature_extraction import DictVectorizer from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer from sklearn.preprocessing import MinMaxScaler, StandardScaler from sklearn.feature_selection import VarianceThreshold from scipy.stats import pearsonr from sklearn.decomposition import PCA import jieba import pandas as pd import matplotlib.pyplot as pltdef datasets_demo():sklearn数据集使用#获取数据集iris load_iris()print(鸢尾花数据集\n, iris)print(查看数据集描述\n, iris[DESCR])print(查看特征值的名字\n, iris.feature_names)print(查看特征值几行几列\n, iris.data.shape)#数据集的划分x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, test_size0.2, random_state22)print(训练集的特征值\n, x_train, x_train.shape)return Nonedef dict_demo():字典特征抽取data [{city: 北京,temperature:100},{city: 上海,temperature:60},{city: 深圳,temperature:30}]# 1、实例化一个转换器类transfer DictVectorizer(sparseFalse)# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new)print(特征名字\n, transfer.get_feature_names())return Nonedef count_demo():文本特征抽取data [life is short,i like like python, life is too long,i dislike python]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transform()data_new transfer.fit_transform(data)print(data_new\n, data_new.toarray())print(特征名字\n, transfer.get_feature_names()) return Nonedef count_chinese_demo():中文文本特征抽取data [我 爱 北京 天安门, 天安门 上 太阳 升]# 1、实例化一个转换器类transfer CountVectorizer()# 2、调用fit_transformdata_new transfer.fit_transform(data)print(data_new:\n, data_new.toarray());print(特征名字\n, transfer.get_feature_names())return Nonedef cut_word(text):进行中文分词return .join(list(jieba.cut(text))) #返回一个分词生成器对象强转成list再join转成字符串def count_chinese_demo2():中文文本特征抽取自动分词# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer CountVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef tfidf_demo():用tf-idf的方法进行文本特征抽取# 1、将中文文本进行分词data [今天很残酷明天更残酷后天很美好但绝对大部分是死在明天晚上所以每个人不要放弃今天。,我们看到的从很远星系来的光是在几百万年前之前发出的这样当我们看到宇宙时我们是在看它的过去。,如果只用一种方式了解某样事物你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。]data_new []for sent in data:data_new.append(cut_word(sent))print(data_new)# 2、实例化一个转换器类transfer TfidfVectorizer()# 3、调用fit_transform()data_final transfer.fit_transform(data_new)print(data_final\n, data_final.toarray())print(特征名字\n, transfer.get_feature_names())return Nonedef minmax_demo():归一化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer MinMaxScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef stand_demo():标准化# 1、获取数据data pd.read_csv(dating.txt)#print(data\n, data)data data.iloc[:, 0:3] #行都要列取前3列print(data\n, data)# 2、实例化一个转换器transfer StandardScaler()# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)return Nonedef variance_demo():过滤低方差特征# 1、获取数据data pd.read_csv(factor_returns.csv)#print(data\n, data)data data.iloc[:, 1:-2]print(data\n, data)# 2、实例化一个转换器类transfer VarianceThreshold(threshold3)# 3、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new, data_new.shape)# 4、计算某两个变量之间的相关系数r1 pearsonr(data[pe_ratio], data[pb_ratio])print(相关系数\n, r1)r2 pearsonr(data[revenue], data[total_expense])print(revenue与total_expense之间的相关性\n, r2)#用图片展示相关性plt.figure(figsize(20, 8), dpi100)plt.scatter(data[revenue], data[total_expense])plt.show()return Nonedef pca_demo():PCA降维data [[2,8,4,5], [6,3,0,8], [5,4,9,1]]# 1、实例化一个转换器类transfer PCA(n_components3)# 2、调用fit_transformdata_new transfer.fit_transform(data)print(data_new\n, data_new)# 1、实例化一个转换器类transfer2 PCA(n_components0.9)# 2、调用fit_transformdata_new2 transfer2.fit_transform(data)print(data_new2\n, data_new2)return Noneif __name__ __main__:# 代码1sklearn数据集使用#datasets_demo()# 代码2字典特征抽取#dict_demo()# 代码3文本特征抽取#count_demo()# 代码4中文文本特征抽取#count_chinese_demo()# 代码5中文文本特征抽取自动分词#count_chinese_demo2()# 代码6 测试jieba库中文分词#print(cut_word(我爱北京天安门))# 代码7用tf-idf的方法进行文本特征抽取#tfidf_demo()# 代码8归一化#minmax_demo()# 代码9标准化#stand_demo()# 代码10低方差特征过滤#variance_demo()# 代码11PCA降维pca_demo() 运行结果 data_new[[ 1.28620952e-15 3.82970843e00 5.26052119e-16][ 5.74456265e00 -1.91485422e00 5.26052119e-16][-5.74456265e00 -1.91485422e00 5.26052119e-16]] data_new2[[ 1.28620952e-15 3.82970843e00][ 5.74456265e00 -1.91485422e00][-5.74456265e00 -1.91485422e00]]
http://www.hkea.cn/news/14568913/

相关文章:

  • 国内简洁网站设计怎么棋牌网站建设
  • 检查网站是否做网站地图网络游戏推广
  • 免费域名注册服务网站网站建设---部署与发布
  • 房地产平面设计网站天津网站建设信息
  • 帝国cms手机网站制作企业网站建设犇类建筑
  • 用新域名做网站排名快吗网站建设捌金手指下拉十六
  • iis5.1新建网站加盟编程教育哪家好
  • 广州做网站制作公司开发网站需要什么人员
  • 郑州优化网站公司有哪些小的电商网站
  • 网站建设中gifwordpress能用的插件
  • 河间网站建设公司哪些网站做免费送东西的广告6
  • 网站建设收费标准新闻企业网站php源码免费下载
  • 福州网站设计软件公司办宽带需要多少钱
  • 北京 网站备案月付购物网站建站
  • 有经验的永州网站建设wordpress 加速版
  • 个人网站注销原因seo网站优化培训多少价格
  • 网站cms相关知识温州中小企业网站制作
  • 电脑网站转手机版自考都到哪个网站找题做
  • 除了做视频网站还能做什么网站深圳网站建设制作开发公司
  • 网站前台设计模板网上服装定制平台
  • 网站备份怎么做做新闻微网站有哪些方面
  • 邢台做网站备案东营列表网
  • 做网站几天能学会今天国际大事新闻
  • 建个网站大概需要多久seo搜索排名优化
  • app制作教程课seo标题关键词怎么写
  • 学做宝宝衣服网站网站建设流程html
  • 烟台网站建设多少钱足球最新比赛消息
  • 养殖p2p网站建设你好多莉wordpress
  • 创业项目网站建设规划陕西交通建设集团网站贴吧
  • 做淘宝客的网站所需空间义乌专业做网站