pandasNumpyScikit-Learn本文为阅读《Python 数据分析与挖掘实战》第五章 回归分析笔记代码收录于仓库: https://github。com/JXtreehous...挖掘建模经过数据探索和数据预处理,得到可以直接建模的数据。根据挖掘目标和数据形式,建立分类预测、聚类分析、关联规则、时间序列模式、偏差检测等模型,帮助企业提取数据中蕴含的商业价值,提高企业竞争力。分类和预测是预测问题的两种主要类型。分类主要是预测分类标签(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值。常用分类预测算法算法名称算法描述备注回归分析回归分析是最常用的统计方法,用于确定预测属性(数值)与其他变量之间的定量关系。包括线性回归、非线性回归、Logistic回归、岭回归、主成分回归、偏最小二乘回归决策树决策树采用自上而下递归的方法在内部节点比较属性值,并根据不同的属性值由该节点向下分支,最终的叶子节点为学习划分的类温和人工神经网络。人工神经网络是模仿大脑神经网络的结构和功能建立的信息处理系统,代表神经网络的输入和输出。贝叶斯网络也称为信念网络, 是贝叶斯方法的扩展,是不确定性知识表达和推理领域最有效的理论模型之一 支持向量机支持向量机是一种算法通过某种非线性映射将低维非线性可分性转化为高维线性可分性,在高维空间进行线性分析。回归分析Logistic回归在scikit-learn中,Logistic回归主要和这3个类相关。LogisticRegression:每次都需要指定一个正则化系数。LogisticRegressionCV:使用交叉验证来选择正则化系数C。除了交叉验证和选择正则化系数C外,LogisticRegression和LogisticRegressionCV的使用方法基本相同。logistic_regression_path:比较特别。它拟合数据后,不能直接做出预测。它只能为拟合数据选择合适的逻辑回归系数和正则化系数。主要用于选型。一般情况下,这种逻辑回归误差汇总是不会用到的。对降低贷款拖欠率的银行数据执行逻辑回归建模。path=os.getcwd()"""逻辑回归自动建模"""defprogrammer_1():filename=path+"/data/bankloan.xls"data=pd.read_excel(filename)#x=data.iloc[:,:8].as_matrix()x=data.iloc[:,:8].values#提取所有行,列0到8y=data.iloc[:,8].values#print(data.iloc[:,:8])#print(x)#print(y)rlr=RLR()#构建随机逻辑回归模型,筛选变量rlr.fit(x,y)#训练模型rlr_support=rlr.get_support(indices=True)#获取特征筛选结果,也可以通过.scores方法获取每个特征的得分"""rlr.get_support(indices=True)如果没有indices=True,会报错报机器学习Logistic回归报错汇总:https://blog.csdn.net/sheep8521/article/details/85105221"""#x=data[data.columns[rlr_support].as_matrix()#过滤好的特征x=data[data.columns[rlr_support]].values#过滤好的特征lr=LR()#建立逻辑回归模型lr.fit(x,y)#过滤特征数据后训练模型print("lr:{score}".format(score=lr.score(x,y)))print(u'模型的平均准确率:%s'%lr.score(x,y))# 结果 lr:0.814285714286if__name__=="__main__":programmer_1()通过随机逻辑回归模型过滤特征。有效特征是:服务年限、地址、债务比率和信用卡债务。逻辑回归模型训练结束。模型的平均准确度:0.814285714286使用Scikit-Learn对该数据进行逻辑回归分析。首先,进行特征筛选。特征筛选的方法有很多,主要包含在Scikit_Learn的feature_selection库中。比较简单的方法是通过F检验(f_regression)给出每个特征的F值和p值,这样就可以筛选变量(选择p值大或者p值小的F个特征)。其次,有递归特征消除(RFE)和稳定性选择等相对较新的方法。这里采用稳定性选择法中的随机逻辑回归进行特征筛选,然后利用筛选后的特征建立逻辑回归模型,输出平均正确率。递归特征剔除的主要思想是反复建立一个模型(如SVM或回归模型),然后选择最好(或最差)的特征(可以根据系数选择),将选择的特征放在一边,然后然后对剩余的特征重复此过程,直到遍历所有特征。这个过程中特征被淘汰的顺序就是特征的顺序。因此,寻找最优特征子集是一种贪心算法。Scikit-Learn提供了RFE包,可用于特征剔除,RFECV可通过交叉验证对特征进行排序。稳定性选择是一种比较新的基于子采样和选择算法相结合的方法。选择算法可以是回归、支持向量机或其他类似的方法。其主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断重复,最终总结特征选择结果。例如,您可以计算一个特征被认为重要的频率(它被选为重要特征的次数除以其子集被测试的次数)。理想情况下,重要特征的分数将接近100%。稍弱的特征将具有非零分数,而最无用的特征将具有接近0的分数。Scikit-Learn在随机套索和随机逻辑回归中实现了稳定选择。从以上结果可以看出,采用随机逻辑回归来剔除变量,分别剔除x2、x8、x1、x5,最终模型中包含的变量为常量x3、x4、x6、x7。在构建随机逻辑回归模型时,使用默认阈值0.25,读者可以使用RLR(selection_threshold=0.5)手动设置阈值。此外,在此示例中,可以使用随机套索或什至简单的F回归(f_rgression)获得类似的结果。逻辑回归本质上是一个线性模型,所以这里的模型有效性检验本质上是线性相关检验。因此,选择的变量与结果具有较强的线性相关性,但筛选出的变量不一定与结果无关,因为它们之间可能存在非线性关系。因此,读者还需要根据问题的实际背景来分析筛选结果。非线性关系的变量筛选方法有决策树、神经网络等。常见问题详解Pandas中loc和iloc函数的用法Ndarray、DataFrame、List相互转换方法总结PandasDataFrame:drop()函数
