#-*- coding: utf-8 -*- ''' 在数据处理和特征工程中,经常会遇到类型数据,如性别分为[男,女](暂不考虑其他。。。。),手机运营商分为[移动,联通,电信]等,我们通常将其转为数值带入模型,如[0,1], [-1,0,1]等,但模型往往默认为连续型数值进行处理. 独热编码便是解决这个问题,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。 可以理解为对有m个取值的特征,经过独热编码处理后,转为m个二元特征(值只有0和1),每次只有一个激活。 基于树的方法是不需要进行特征的归一化,例如随机森林,bagging 和 boosting等。基于参数的模型或基于距离的模型,都是要进行特征的归一化。 @author: soyo ''' import pandas as pd import numpy import matplotlib.pylab as pl from sklearn.linear_model import LogisticRegression from sklearn.cross_validation import train_test_split from sklearn.utils.extmath import cartesian #numpy.set_printoptions(threshold=numpy.inf) #目的是将print省略的部分都输出 data=pd.read_csv("/home/soyo/文档/LogisticRegression.csv") print data print data.head(5) data_dum=pd.get_dummies(data,prefix='rank',columns=['rank'],drop_first=True) #类别型变量进行独热编码,drop_first=True:删掉了本该有的rank_1 print data_dum.head(5) print "*********************" print data_dum.ix[:,1:].head(5) print data_dum.ix[:,0].head(5) x_train,x_test,y_train,y_test=train_test_split(data_dum.ix[:,1:],data_dum.ix[:,0],test_size=0.1,random_state=1) #x:代表的是数据特征,y:代表的是类标(lable),都被随机的拆分开做交叉验证 print len(x_train),len(x_test) print x_train numpy.savetxt('/home/soyo/文档/new.csv', x_train,fmt="%d", delimiter = ',') print len(y_train),len(y_test) numpy.savetxt('/home/soyo/文档/new2.csv', y_train,fmt="%d", delimiter = ',') print y_train print "***********" print y_test lr=LogisticRegression() lr.fit(x_train,y_train) print "预测结果:" print lr.predict(x_test) print "真实label:" print numpy.array(y_test) print "逻辑回归的准确率为:{0:.3f}%".format(lr.score(x_test, y_test)) print "根据组合数据分析数据之间的关系" gres=numpy.linspace(data['gre'].min(),data['gre'].max(),20) print gres gpas=numpy.linspace(data['gpa'].min(),data['gpa'].max(),20) print gpas # numpy.set_printoptions(threshold=numpy.inf) #目的是将print省略的部分都输出 print cartesian([gres,gpas,[1,2,3,4],[1.]]) #数据组合:组合后的总个数->20*20*4*1=1600个 data_new=pd.DataFrame(cartesian([gres,gpas,[1,2,3,4],[1.]])) print data_new data_new.columns=['gre','gpa','ranks','intercept'] print data_new dummy_ranks=pd.get_dummies(data_new['ranks'],prefix='ranks') #prefix:前缀名 # print dummy_ranks dummy_ranks.columns=['ranks_1','ranks_2','ranks_3','
逻辑回归--数据独热编码+数据结果可视化
最新推荐文章于 2024-07-29 11:26:32 发布
本文深入探讨逻辑回归模型,重点介绍如何使用数据独热编码处理特征,并通过可视化工具展示数据分布和模型预测结果,帮助读者更好地理解和应用逻辑回归。
摘要由CSDN通过智能技术生成