首页 > 编程知识 正文

机器学习系列五 逻辑回归莺尾花数据集,机器学习常用数据集

时间:2023-05-06 14:42:07 阅读:177830 作者:4427

加载数据

importnumpyasnpimportpandasaspddata=PD.read _ CSV (iris.CSV ) #不需要的ID列data.drop ), 删除axis=1,并删除inplace=true(#重复记录data.drop _ duplicates (in place=true ) #以删除de=data [ ' species ' ].drop _ drop 映射的setosavirginicaversicolordata [ ' species ' ]=data [ ' species ' ].map { ' setosa ' :0,' versicolor':1,

类逻辑注册: #逻辑回归def __init__(self,alpha, times ) : #初始化方法#参数: alpha:float学习率# times : int迭代次数self.alpha self.times=timesdefsigmoid (self, z )实现: # sigmoid函数#参数: x :浮点参数的值为x=w.T * x # return p (概率0-1 ) :返回样本属于类别1的概率值,结果预测# x=类别0return1.0/) 1.0NP.exp(-z ) (deffit ) self,x, y ) : )基于提供的训练数据训练模型#参数: X :特征数)训练对象的样本特征属性# y :类阵列形状, (采样数)作为每个样本目标值(标签) X=np.asarray(X ) y=np.asarray(y ) y ) )的创建权重的矢量初始值在0长度上比特征数多1 (1是截距) )创建损耗列表并保存每次迭代的损耗值self.loss_=[]forIinrange ) self.3360 z=NP.dot (x, self.w_[1:] self.w_[0]计算概率值(结果为1 ) p=self.sigmoid(z ) z )通过逻辑回归的成本函数(目标函数) j ) w )=-sum ) yi *。 NP.log(p ) (1-y ) (NP.log )1-p ) ) self.loss _.append (cost ) )调整权重值)公式:根据权重(j列)=self . y-p ) defpredict_proba ) sself.alpha(NP, dot ) y-p ) de预测采样数据#参数: x :类数组形状[采样数、特征数]训练采样特征属性# return :数组预测结果(概率值) X=np.asarray(X (p=self.sigmoid(z )如果将预测数据设置为二维阵列(结构),则后续子画面p=p.reshape (-1,1 ) #容易在水平方向上对两个阵列进行子画面设置(axis=1) x ) X: )参数传递根据样本预测样本数据#参数X:类数组形状(样本数、特征数)待训练样本特征属性# # return :数组类型预测结果(分类值) return NP.arg max (self.predict _ proba ) x )、 axis=1)数据训练和测试T1=data(data(species ) )==0) T2=data (data ) ) species )==1) T1=T1.sample ) len :-1]、T2.iloc [ :40,-1 ]、aandom t2.iloc[:40,-1]、axis=0] test _ x=PD.concat () axis=0) #莺尾花的特征列数为一位lr=logistic regression (alpha=0. 01, times=20 ) lr.fit ) )不标准化就能够处理的train_y ) #预测的概率值# print(lr.predict_proba ) test_x )预测的分类值#print计算精度

#可视化importmatplotlibasmplimportmatplotlib.pyplotasplt #中文显示mpl.rcparams [ ' font.family ' ]=' simhei ' #减号显示mpl.rcplt 标绘预测值PLT.plot (result,' ro ',ms=15,label='预测值')标绘真实值PLT.plot ) test_y.values,' go ',ms=15

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。