#-*- coding: utf-8 -*- #逻辑回归 自动建模 import pandas as pd #参数初始化 filename = '../data/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:, :8].as_matrix() y = data.iloc[:, 8].as_matrix() print x print '******************************************' print y from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR rlr = RLR() #建立随机逻辑回归模型,筛选变量 rlr.fit(x, y) #训练模型 print '******************************************' rlr.get_support() #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 print(u'通过随机逻辑回归模型筛选特征结束。') print(u'有效特征为:%s' % ','.join(data.columns[rlr.get_support()])) x = data[data.columns[rlr.get_support()]].as_matrix() #筛选好特征 lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print(u'逻辑回归模型训练结束。') print(u'模型的平均正确率为:%s' % lr.score(x, y)) #给出模型的平均正确率,本例为81.4%
# coding:'utf-8' import pandas as pd from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR filename = 'F:/python data mining/chapter5/demo/data/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:, :8] y = data.iloc[:, 8] rlr = RLR() rlr.fit(x.as_matrix(), y.as_matrix()) # 获取特征筛选结果 # print(rlr.get_support()) print('有效特征: %s' % ','.join(x.columns[rlr.get_support()])) x = x[x.columns[rlr.get_support()]] lr = LR() lr.fit(x.as_matrix(), y.as_matrix()) print('模型的平均正确率: %s' % lr.score(x.as_matrix(), y.as_matrix()))
result.sort() print(result[-1]) model = LR( penalty='l2', tol=0.0001, C=.005, solver='liblinear', max_iter=500, ) model.fit(df, label) print(features, model.coef_) model2 = RLR(C=1, scaling=0.5, sample_fraction=0.6, selection_threshold=0.3, n_resampling=100) model2.fit(df, label) print(model2.get_support()) # dt ------------------------------------------ d = [1, 2, 3, 4, 5, 10, 15, 20, 25] m = ['gini', 'entropy'] result = [ bin_cv(DTC(criterion='entropy', max_depth=depth), df, label).mean() for depth in d ] print(result) pd.Series(result).plot()
import pandas as pda from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR # 1.读取数据 fname = "A:/Python_16/luqu.csv" dataf = pda.read_csv(fname) # 2.将特征(影响因素)和结果变成矩阵的形式。 x = dataf.iloc[:, 1:4].as_matrix() y = dataf.iloc[:, 0:1].as_matrix() # 3.导入模块sklearn.linear_model 下RandomizedLogisticRegression,进行实例化。 r1 = RLR() # 4.通过fit()进行训练模型 r1.fit(x, y) # ***5.通过get_support()筛选有效特征,也是降维的过程,"rank"属性被去除 r1.get_support() t = dataf[dataf.columns[r1.get_support(indices=True)]].as_matrix() # 6.导入模块sklearn.linear_model 下LogisticRegression,进行实例化。 r2 = LR() # 7.通过fit()训练简化后的模型 r2.fit(t, y) # 8.输出LR模型正确率 print("训练结束") print("模型正确率为:" + str(r2.score(x, y)))
#参数初始化 filename = './data/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:, :8].as_matrix() y = data.iloc[:, 8].as_matrix() from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print(u'逻辑回归模型训练结束。') print(u'未经过筛选特性模型的平均正确率为:%s' % lr.score(x, y)) #建立随机逻辑回归模型 rlr = RLR() #帅选变量 rlr.fit(x, y) #rlr.get_support() #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 selected_col = numpy.append(rlr.get_support(),[False]) print(u"通过随机逻辑回归模型筛选特征结束") print(u"有效特征为:%s" % ",".join(data.columns[selected_col])) x = data[data.columns[selected_col]].as_matrix() # 筛选好特征 lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print(u'逻辑回归模型训练结束。') print(u'模型的平均正确率为:%s' % lr.score(x, y)) #给出模型的平均正确率,本例为81.4%
#-*- coding: utf-8 -*- #逻辑回归 自动建模 import pandas as pd #参数初始化 filename = 'pdata.xls' data = pd.read_excel(filename) x = data.iloc[:, :3].as_matrix() y = data.iloc[:, 3].as_matrix() from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR #Lasso/f_rgression rlr = RLR(selection_threshold=0.25) #建立随机逻辑回归模型,筛选变量,默认阈值0.25, rlr.fit(x, y) #训练模型 rlr.get_support() #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 print('通过随机逻辑回归模型筛选特征结束。') print rlr.scores_ print('%s' % ','.join(data.columns[rlr.get_support()])) x = data[data.columns[rlr.get_support()]].as_matrix() #筛选好特征 lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print('逻辑回归模型训练结束。') print('correct_point:%s' % lr.score(x, y)) #给出模型的平均正确率
# 评判结果报告 from sklearn.metrics import classification_report def my_classification_report(y_true, y_pred): from sklearn.metrics import classification_report print( "classification_report(left: labels):") print (classification_report(y_true, y_pred)) my_classification_report(y_test,y_score_pre) #筛选特征RLR from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR Rlogis_reg = RLR(random_state=10) #筛选变量 Rlogis_reg.fit(X_train, y_train) selected_col =list(Rlogis_reg.get_support()) selected_col.append(False) print(u"通过随机逻辑回归模型筛选特征结束") print(u"有效特征为:%s" % ",".join(smote_resampled.columns[selected_col])) X1_train = pd.DataFrame(X_train,columns=names) X1_test = pd.DataFrame(X_test,columns=names) selected_feature =smote_resampled.columns[selected_col] X1_train = X1_train[selected_feature] X1_test = X1_test[selected_feature] # 筛选好特征 RLR=model(LR,X1_train,X1_test,y_train,y_test,model_name='RLR 个4 特征:') #决策树
# -*- coding: utf-8 -*- # 时间 : 2018/9/15 13:38 # 作者 : xcl import pandas as pd filename = 'C:/Users/Administrator/Desktop/bankloan.xls' data = pd.read_excel(filename)#返回值是DataFrame类型 x = data.iloc[:,:8].values#行全选,列选下标0-7 y = data.iloc[:,8].values#行全选,列选下标8 #使用稳定性选择方法中的随机逻辑回归进行特征筛选,利用筛选后的特征建立逻辑回归模型,输出平均正确率 from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR rlr = RLR(selection_threshold=0.25i) #建立随机逻辑回归模型,筛选变量 rlr.fit(x, y) #训练模型 #print(rlr.get_support()) #获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数 #print(rlr.scores_) #print('通过随机逻辑回归模型筛选特征结束') print('有效特征:' , ','.join(data.columns[rlr.get_support(indices=True)])) #print(data.columns[rlr.get_support(indices=True)]) #data.columns[rlr.get_support()]返回的是筛选后的列名,是一个迭代器 #S.join(iterable) 将iterable里面的元素用S连起来,S就是分隔符 x = data[data.columns[rlr.get_support(indices=True)]].values lr = LR() #建立逻辑回归模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 #print('逻辑回归模型训练结束')
#-*- coding: utf-8 -*- #逻辑回归 自动建模 import pandas as pd from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR #参数初始化 filename = '../data/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:,:8].as_matrix()#8个属性 y = data.iloc[:,8].as_matrix()#第九列 结果标签 #稳定性选择方法 挑选特征 rlr = RLR(selection_threshold=0.5) #建立随机逻辑回归模型,筛选变量 特征筛选用了默认阈值0.25 rlr.fit(x, y) #训练模型 rlr.get_support() #获取特征筛选结果 print(u'通过随机逻辑回归模型筛选特征结束。') print(u'有效特征为:%s' % ','.join(data.columns[rlr.get_support()])) x = data[data.columns[rlr.get_support()]].as_matrix() #筛选好特征,重新训练模型 lr = LR() #建立逻辑货柜模型 lr.fit(x, y) #用筛选后的特征数据来训练模型 print(u'逻辑回归模型训练结束。') print(u'模型的平均正确率为:%s' % lr.score(x, y))
#-*- coding:utf-8 -*- import pandas as pd from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR filename = '../../data/5-/bankloan.xls' data = pd.read_excel(filename) x = data.iloc[:, :8].as_matrix() y = data.iloc[:, 8].as_matrix() #开始进行属性规约。 rlr = RLR() #建立随机逻辑货柜模型,筛选变量 rlr.fit(x, y) m = list(rlr.get_support()) #获取特征筛选结果 print(u'适合的特征选出来了。如下:') n = [] for i in range(len(m)): if m[i] == True: n.append(data.columns[i]) print(data.columns[i]) #columns内参数应为int型. x = data[n].as_matrix() #将筛选好特征的数据列出 #以上进行了数据预处理中的属性规约。 #建立逻辑回归模型进行测试。 lr = LR() lr.fit(x, y) print(u'模型训练结束') print(u'模型的平均正确率为:%s' % lr.score(x, y))
import pandas as pd import numpy as np import matplotlib.pylab as plt from scipy import ndimage from sklearn.linear_model import LogisticRegression as LR from sklearn.linear_model import RandomizedLogisticRegression as RLR data = pd.read_csv("luqu.csv") x = data.iloc[:, 1:5] y = data.iloc[:, 0:1] #####首先进行特征筛选##### rlr = RLR() #建立随机逻辑回归模型,进行特征选择和变量筛选 rlr.fit(x, y) #训练模型 egeList = rlr.get_support() #获取筛选后的特征 print("rlr.get_support():") print(egeList) print('有效特征为:' + str(data.iloc[:, 1:5].columns[egeList].values)) print('随机逻辑回归模型特征选择结束!!!') x = data[data.iloc[:, 1:5].columns[egeList]] #筛选好特征值,排除无效的特征值 #####确定逻辑回归参数##### # 为确定参数C值,采用隔点搜索 # 用logspace先产生一组非常微小的数 from sklearn.model_selection import cross_val_score lr = LR() Pars = np.logspace(-4, 4, num=20)
def main(): import read_data import data_standard import numpy as np import pandas as pd ''' ##############################################################数据读入与整理################################################################################## path2014='E:\Master\PPDAMcode\AIR_project\hangzhou.xls' path2015='E:\Master\PPDAMcode\AIR_project\hangzhou2015.xls' path2016='E:\Master\PPDAMcode\AIR_project\hangzhou2016.xls' hangzhou_data=[] ################################################################################## data=read_data.read_data_xls(path2014) for i in range(len(data)-1): if data.iloc[i+1,7]=='优': data.iloc[i+1,7]=1.0 elif data.iloc[i+1,7]=='良好': data.iloc[i+1,7]=2.0 elif data.iloc[i+1,7]=='轻度污染': data.iloc[i+1,7]=3.0 elif data.iloc[i+1,7]=='中度污染': data.iloc[i+1,7]=4.0 elif data.iloc[i+1,7]=='重度污染': data.iloc[i+1,7]=5.0 #for i in range(6): #data.iloc[1:,1+i]=data_standard.data_standard(data.iloc[1:,1+i]) hangzhou_data.append(data) ################################################################################# data=read_data.read_data_xls(path2015) for i in range(len(data)-1): if data.iloc[i+1,7]=='优': data.iloc[i+1,7]=1.0 elif data.iloc[i+1,7]=='良好': data.iloc[i+1,7]=2.0 elif data.iloc[i+1,7]=='轻度污染': data.iloc[i+1,7]=3.0 elif data.iloc[i+1,7]=='中度污染': data.iloc[i+1,7]=4.0 elif data.iloc[i+1,7]=='重度污染': data.iloc[i+1,7]=5.0 #for i in range(6): #data.iloc[1:,1+i]=data_standard.data_standard(data.iloc[1:,1+i]) hangzhou_data.append(data) ################################################################################## data=read_data.read_data_xls(path2016) for i in range(len(data)-1): if data.iloc[i+1,7]=='优': data.iloc[i+1,7]=1.0 elif data.iloc[i+1,7]=='良好': data.iloc[i+1,7]=2.0 elif data.iloc[i+1,7]=='轻度污染': data.iloc[i+1,7]=3.0 elif data.iloc[i+1,7]=='中度污染': data.iloc[i+1,7]=4.0 elif data.iloc[i+1,7]=='重度污染': data.iloc[i+1,7]=5.0 #for i in range(6): #data.iloc[1:,1+i]=data_standard.data_standard(data.iloc[1:,1+i]) hangzhou_data.append(data) ############################################################################ #print(hangzhou_data)#######2014,2015,2016的所有数据在列表hangzhou_data中存放 all_data=pd.DataFrame(np.linspace(1,1091*8,1091*8).reshape(1091,8)) for i in range(len(hangzhou_data[0])-1): for j in range(8): all_data.iloc[i,j]=hangzhou_data[0].iloc[i+1,j+1] ############################################ for i in range(len(hangzhou_data[1])-1): for j in range(8): all_data.iloc[i+365,j]=hangzhou_data[1].iloc[i+1,j+1] ################################################### for i in range(len(hangzhou_data[2])-1): for j in range(8): all_data.iloc[i+730,j]=hangzhou_data[2].iloc[i+1,j+1] #print(all_data) all_data.to_excel('E:\Master\PPDAMcode\AIR_project\hangzhou_air_alldata.xls') ################################################################################################################################################ ''' ############################主成分分析PCA###################################################### import PCA PCA.PCA(all_data.iloc[:,0:6]) #######################RandomizedLogisticRegression筛选特征########## from sklearn.linear_model import RandomizedLogisticRegression as RLR rlr=RLR() rlr.fit(all_data.iloc[:,0:6].as_matrix(),all_data.iloc[:,6].as_matrix()) print() print('通过RandomizedLogisticRegression筛选特征:') print(rlr.get_support()) print() ############################################################################################### #############################准备好训练数据与测试数据################################################################ all_data=read_data.read_data_xls('E:\Master\PPDAMcode\AIR_project\yuanshi_data.xls') import random index=list(range(1091)) test_index = random.sample(index, 90)##test_index is the index of test data随机选出200个样本作为测试样本 train_index=[] for i in range(1091): if i not in test_index: train_index.append(i) ##train_index is the index of train data data_train=all_data.iloc[train_index,0:6].as_matrix() classfy_train=all_data.iloc[train_index,6].as_matrix() AQI_train=all_data.iloc[train_index,7].as_matrix() data_test=all_data.iloc[test_index,0:6].as_matrix() classfy_test=all_data.iloc[test_index,6].as_matrix() AQI_test=all_data.iloc[test_index,7].as_matrix() ######################################################################################################################## ''' ############################运用DecisionTreeClassifier方法进行训练测试############################### import DecisionTreeClassifier DecisionTreeClassifier.DecisionTreeClassifier(data_train,AQI_train,data_test,AQI_test) ###################################################################################################### ''' ############################运用RandomForestClassifier方法进行训练测试############################### import RandomForestClassifier RandomForestClassifier.RandomForestClassifier(data_train,AQI_train,data_test,AQI_test) ###################################################################################################### ''' ############################运用SVM方法进行训练测试############################### import SVM SVM.SVM(data_train,classfy_train,data_test,classfy_test) ###################################################################################################### ''' ''' ############################运用keras方法进行训练测试############################### import Sequential Sequential.Sequential(data_train,classfy_train,data_test,classfy_test) ###################################################################################################### ''' '''