机器学习 因子筛选
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
1.引入库
代码如下(示例):
from sklearn.decomposition import PCA
from sklearn.feature_selection import VarianceThreshold
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import StandardScaler
import numpy as np
import matplotlib.pyplot as plt
数据准备
1.归一化
def minmax(tableName):
"""
归一化
:return:
"""
#1.获取数据
data = selectProData(tableName)
#2.实例化一个转换器
transfer = MinMaxScaler(feature_range =[0,1])
#3.调用fit_transform
data_new = transfer.fit_transform(data)
data_new = pd.DataFrame(data_new, columns=data.columns[transfer.get_support(True)])
insertMysqlPro(data_new,tableName+"_minmax")
return None
2.标准化
def stand(tableName):
"""
标准化
:return:
"""
#1.获取数据
data = selectProData(tableName)
data = data.iloc[:,1:].select_dtypes(include=['int64', 'float64'])
print(data)
print(data.values)
#2.实例化一个转换器
transfer = StandardScaler()
#3.调用fit_transform
data_new = transfer.fit_transform(data)
data_new = pd.DataFrame(data_new, columns=data.columns[transfer.get_support(True)])
insertMysqlPro(data_new, tableName + "_stand")
return None
一、过滤式
1.方差过滤
def variance(tableName):
"""
过滤地方插特征
:return:
"""
# 1.获取数据
data = selectProData(tableName)
# 2.实例化一个转换器
transfer = VarianceThreshold(threshold=1.0)
# 3.调用fit_transform
data_new = transfer.fit_transform(data)
data_new = pd.DataFrame(data_new, columns=data.columns[transfer.get_support(True)])
insertMysqlPro(data_new, tableName + "_variance")
return None
方法缺点:在方差阈值选择的时候,有主观性
2.皮尔逊系数
def calcPearson(tableName):
"""
皮尔逊系数
一般划分为3级,r绝对值小于0.4低相关,04~0.7,0.7~1
:param tableName:
:return:
"""
df = selectProData(tableName)
df = df.corr(method='pearson')
sns.set_style('darkgrid')
mask = np.array(df)
mask[np.tril_indices_from(mask)] = False
# plt.figure(figsize = (8, 6))
sns.heatmap(df, mask = mask, annot = True, cmap = 'autumn', linewidths = 0.2)
pngName = tableName+"_热度图滑坡点.png"
path5= r'E:\Image\\'+pngName
#画图中文乱码 如遇中文显示问题可加入以下代码
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.savefig(path5,dpi=500,bbox_inches = 'tight')
plt.show()
insertMysqlPro(df,tableName+"_pearson")
return df
做信度和效度检验
信度使用CronbachAlpha检验
使用spss做
效度度使用
1.巴特利球形度检验
2.kmo检验
3.主成分分析
def pca(tableName):
"""
pca降维,主成分分析
:param tableName:
:return:
"""
# 1.获取数据
data = selectProData(tableName)
data = data.iloc[:, 1:].select_dtypes(include=['int64', 'float64'])
print(data)
# 2.实例化一个转换器
transfer = PCA()
# 3.调用fit_transform
data_new = transfer.fit_transform(data)
data_new = pd.DataFrame(data_new)
print(data_new)
# data_new = transfer.inverse_transform(data_new)
# print(transfer.components_)
explained_variance_ratio_ = transfer.explained_variance_ratio_
explained_variance_ratio_ = explained_variance_ratio_.tolist()
print(explained_variance_ratio_)
df = pd.DataFrame(explained_variance_ratio_)
print(df)
print(len(df))
print(len(df.iloc[0,:]))
print(explained_variance_ratio_)
print(type(explained_variance_ratio_))
print(len(explained_variance_ratio_))
print(len(data.columns))
# insertMysqlPro(data_new, tableName + "_pac")
return None
4.因子分析
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、嵌入式
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。