机器学习-线性回归-逻辑回归-实战-09

发布时间 2023-12-16 12:48:47作者: jack-chen666

1. 二分类

#!/usr/bin/env python
# coding: utf-8

# In[7]:


import numpy as np
from sklearn import datasets
from sklearn.linear_model import LogisticRegression

isris = datasets.load_iris()
isris.keys(), isris["feature_names"], isris['target']


# In[8]:


X = isris['data'][:,3:]  # 只取之后一个维度petal width (cm)
y = (isris["target"]==2).astype(np.int)  # 是否是属于分类2  转化成 0 1


# In[10]:


log_reg = LogisticRegression(solver="sag", max_iter=1000)
log_reg.fit(X, y)


# In[17]:


X_new = np.linspace(0, 3, 1000).reshape(-1, 1)
y_proba = log_reg.predict_proba(X_new)  # 预测是正样本的概率
y_hat = log_reg.predict(X_new) # 预测值 0 or 1 
y_proba, y_hat


# In[ ]:


2. 多分类任务

医学图示(Medical diagrams):没生病(y=1),感冒(y=2),流感(y=3)

转化成多个二分类的 处理思路,
使用不同的函数去预测输入x,分别计算不同h(x)的值,然后取其中的最大值。哪个i对应的h(x)越大,就认为属于哪个类。

一个与其他的做区分
one-vs-rest
代码修改:

log_reg = LogisticRegression(C=1000, multi_class='ovr', solver="sag", max_iter=1000)
log_reg.fit(X, y)