导入的数据说明
因为气候不同,造就性不同,统计鸢尾花的关键特征数据:花萼长度、花萼宽度、花瓣长度,花瓣宽度
植物学家划分:
setosa(中文名:山鸢尾)
versicolor(中文名:杂色鸢尾)
virginica(中文名:弗吉尼亚鸢尾)
鸢尾花数据集中每个样本包含有四个特种(花萼长度、花萼宽度、花瓣长度,花瓣宽度),用于对鸢尾花的分类
导入包
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
# 1、数据加载
iris = datasets.load_iris()X = iris['data']
y = iris['target']
cond = y != 2 # 筛选出0和1
X = X[cond]
y = y[cond]# 数据拆分
X_train,X_test,y_train,y_test = train_test_split(X,y)
display(y)
模型的创建和模型预测
model = LogisticRegression()
model.fit(X_train,y_train)
y_pred = model.predict(X_test) # 预测分类结果
print('算法预测结果是:',y_pred)
print('真实的类别是:',y_test)
print(model.score(X_test,y_test))
p_ = model.predict_proba(X_test)
p_
(p_[:,1] >= 0.5) * 1
(p_[:,1] < 0.5) * 1
3.2 根据公式手动计算
z = − θ T x z = -\theta^Tx z=−θTx
# 线性回归方程
b = model.intercept_
w = model.coef_
print(b, w)# 逻辑回归函数 ,z表示线性回归方程
def sigmoid(z):return 1 / (1 + np.exp(-z))
如果直接使用w则会出现形状不匹配的报错的情况出现,这个时候需要进行转至
# 转至前:
print(w.shape)
# 转至后
print(w.T.shape)
线性方程 乘法
z = (X_test.dot(w.T) + b)
proba_ = sigmoid(z)
proba_ = np.c_[proba_,1-proba_]
proba_
和上面的预测数据进行对比结果一致
愿君前程似锦,未来可期去💯,感谢您的阅读,如果对您有用希望您留下宝贵的点赞和收藏
本文章为本人学习笔记,如有请侵权联系,本人会立即删除侵权文章。可以一起学习共同进步谢谢,如有请侵权联系,本人会立即删除侵权文章。