Exemplo n.º 1
0
#-*- 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%
Exemplo n.º 2
0
# 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()))
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
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)))
Exemplo n.º 5
0
#参数初始化
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%
Exemplo n.º 6
0
#-*- 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))  #给出模型的平均正确率
Exemplo n.º 7
0
 
 # 评判结果报告
 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('逻辑回归模型训练结束')
Exemplo n.º 9
0
#-*- 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))
Exemplo n.º 10
0
#-*- 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))
Exemplo n.º 11
0
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)
Exemplo n.º 12
0
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)
	######################################################################################################
	'''

	'''