You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2475 lines
72 KiB
Markdown
2475 lines
72 KiB
Markdown
7 months ago
|
```python
|
||
|
from sklearn import datasets
|
||
|
iris = datasets.load_iris()
|
||
|
print(iris.DESCR)
|
||
|
```
|
||
|
|
||
|
.. _iris_dataset:
|
||
|
|
||
|
Iris plants dataset
|
||
|
--------------------
|
||
|
|
||
|
**Data Set Characteristics:**
|
||
|
|
||
|
:Number of Instances: 150 (50 in each of three classes)
|
||
|
:Number of Attributes: 4 numeric, predictive attributes and the class
|
||
|
:Attribute Information:
|
||
|
- sepal length in cm
|
||
|
- sepal width in cm
|
||
|
- petal length in cm
|
||
|
- petal width in cm
|
||
|
- class:
|
||
|
- Iris-Setosa
|
||
|
- Iris-Versicolour
|
||
|
- Iris-Virginica
|
||
|
|
||
|
:Summary Statistics:
|
||
|
|
||
|
============== ==== ==== ======= ===== ====================
|
||
|
Min Max Mean SD Class Correlation
|
||
|
============== ==== ==== ======= ===== ====================
|
||
|
sepal length: 4.3 7.9 5.84 0.83 0.7826
|
||
|
sepal width: 2.0 4.4 3.05 0.43 -0.4194
|
||
|
petal length: 1.0 6.9 3.76 1.76 0.9490 (high!)
|
||
|
petal width: 0.1 2.5 1.20 0.76 0.9565 (high!)
|
||
|
============== ==== ==== ======= ===== ====================
|
||
|
|
||
|
:Missing Attribute Values: None
|
||
|
:Class Distribution: 33.3% for each of 3 classes.
|
||
|
:Creator: R.A. Fisher
|
||
|
:Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)
|
||
|
:Date: July, 1988
|
||
|
|
||
|
The famous Iris database, first used by Sir R.A. Fisher. The dataset is taken
|
||
|
from Fisher's paper. Note that it's the same as in R, but not as in the UCI
|
||
|
Machine Learning Repository, which has two wrong data points.
|
||
|
|
||
|
This is perhaps the best known database to be found in the
|
||
|
pattern recognition literature. Fisher's paper is a classic in the field and
|
||
|
is referenced frequently to this day. (See Duda & Hart, for example.) The
|
||
|
data set contains 3 classes of 50 instances each, where each class refers to a
|
||
|
type of iris plant. One class is linearly separable from the other 2; the
|
||
|
latter are NOT linearly separable from each other.
|
||
|
|
||
|
|details-start|
|
||
|
**References**
|
||
|
|details-split|
|
||
|
|
||
|
- Fisher, R.A. "The use of multiple measurements in taxonomic problems"
|
||
|
Annual Eugenics, 7, Part II, 179-188 (1936); also in "Contributions to
|
||
|
Mathematical Statistics" (John Wiley, NY, 1950).
|
||
|
- Duda, R.O., & Hart, P.E. (1973) Pattern Classification and Scene Analysis.
|
||
|
(Q327.D83) John Wiley & Sons. ISBN 0-471-22361-1. See page 218.
|
||
|
- Dasarathy, B.V. (1980) "Nosing Around the Neighborhood: A New System
|
||
|
Structure and Classification Rule for Recognition in Partially Exposed
|
||
|
Environments". IEEE Transactions on Pattern Analysis and Machine
|
||
|
Intelligence, Vol. PAMI-2, No. 1, 67-71.
|
||
|
- Gates, G.W. (1972) "The Reduced Nearest Neighbor Rule". IEEE Transactions
|
||
|
on Information Theory, May 1972, 431-433.
|
||
|
- See also: 1988 MLC Proceedings, 54-64. Cheeseman et al"s AUTOCLASS II
|
||
|
conceptual clustering system finds 3 classes in the data.
|
||
|
- Many, many more ...
|
||
|
|
||
|
|details-end|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
import matplotlib.pyplot as plt
|
||
|
import numpy as np
|
||
|
|
||
|
```
|
||
|
|
||
|
|
||
|
```python
|
||
|
sl = iris.data[:,0:1]
|
||
|
sw = iris.data[:,1:2]
|
||
|
plt.plot(sl,sw, '.k')
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_2_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
iris.target
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
|
||
|
|
||
|
|
||
|
|
||
|
# Decision boundaries
|
||
|
|
||
|
|
||
|
```python
|
||
|
import numpy as np
|
||
|
import matplotlib.pyplot as plt
|
||
|
t = np.linspace(-10,10, 100)
|
||
|
sig = 1/(1+np.exp(-t-4))
|
||
|
plt.plot(t,sig, '.b', label=r"$\sigma$")
|
||
|
plt.legend(loc='upper left', fontsize =20)
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_5_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
# Iris-Setosa Classifier based on petal width
|
||
|
|
||
|
|
||
|
```python
|
||
|
X = iris.data[:,3:4]
|
||
|
y = (iris.target == 0).astype(int)
|
||
|
```
|
||
|
|
||
|
|
||
|
```python
|
||
|
from sklearn.linear_model import LogisticRegression
|
||
|
mylr = LogisticRegression(solver='lbfgs', random_state=42)
|
||
|
mylr.fit(X,y)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<style>#sk-container-id-1 {
|
||
|
/* Definition of color scheme common for light and dark mode */
|
||
|
--sklearn-color-text: black;
|
||
|
--sklearn-color-line: gray;
|
||
|
/* Definition of color scheme for unfitted estimators */
|
||
|
--sklearn-color-unfitted-level-0: #fff5e6;
|
||
|
--sklearn-color-unfitted-level-1: #f6e4d2;
|
||
|
--sklearn-color-unfitted-level-2: #ffe0b3;
|
||
|
--sklearn-color-unfitted-level-3: chocolate;
|
||
|
/* Definition of color scheme for fitted estimators */
|
||
|
--sklearn-color-fitted-level-0: #f0f8ff;
|
||
|
--sklearn-color-fitted-level-1: #d4ebff;
|
||
|
--sklearn-color-fitted-level-2: #b3dbfd;
|
||
|
--sklearn-color-fitted-level-3: cornflowerblue;
|
||
|
|
||
|
/* Specific color for light theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-icon: #696969;
|
||
|
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* Redefinition of color scheme for dark theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-icon: #878787;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 pre {
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 input.sk-hidden--visually {
|
||
|
border: 0;
|
||
|
clip: rect(1px 1px 1px 1px);
|
||
|
clip: rect(1px, 1px, 1px, 1px);
|
||
|
height: 1px;
|
||
|
margin: -1px;
|
||
|
overflow: hidden;
|
||
|
padding: 0;
|
||
|
position: absolute;
|
||
|
width: 1px;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-dashed-wrapped {
|
||
|
border: 1px dashed var(--sklearn-color-line);
|
||
|
margin: 0 0.4em 0.5em 0.4em;
|
||
|
box-sizing: border-box;
|
||
|
padding-bottom: 0.4em;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-container {
|
||
|
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
|
||
|
but bootstrap.min.css set `[hidden] { display: none !important; }`
|
||
|
so we also need the `!important` here to be able to override the
|
||
|
default hidden behavior on the sphinx rendered scikit-learn.org.
|
||
|
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
|
||
|
display: inline-block !important;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-text-repr-fallback {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
div.sk-parallel-item,
|
||
|
div.sk-serial,
|
||
|
div.sk-item {
|
||
|
/* draw centered vertical line to link estimators */
|
||
|
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
|
||
|
background-size: 2px 100%;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: center center;
|
||
|
}
|
||
|
|
||
|
/* Parallel-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel-item::after {
|
||
|
content: "";
|
||
|
width: 100%;
|
||
|
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel {
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
justify-content: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel-item {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel-item:first-child::after {
|
||
|
align-self: flex-end;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel-item:last-child::after {
|
||
|
align-self: flex-start;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-parallel-item:only-child::after {
|
||
|
width: 0;
|
||
|
}
|
||
|
|
||
|
/* Serial-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-1 div.sk-serial {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
padding-right: 1em;
|
||
|
padding-left: 1em;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
|
||
|
clickable and can be expanded/collapsed.
|
||
|
- Pipeline and ColumnTransformer use this feature and define the default style
|
||
|
- Estimators will overwrite some part of the style using the `sk-estimator` class
|
||
|
*/
|
||
|
|
||
|
/* Pipeline and ColumnTransformer style (default) */
|
||
|
|
||
|
#sk-container-id-1 div.sk-toggleable {
|
||
|
/* Default theme specific background. It is overwritten whether we have a
|
||
|
specific estimator or a Pipeline/ColumnTransformer */
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
/* Toggleable label */
|
||
|
#sk-container-id-1 label.sk-toggleable__label {
|
||
|
cursor: pointer;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0.5em;
|
||
|
box-sizing: border-box;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 label.sk-toggleable__label-arrow:before {
|
||
|
/* Arrow on the left of the label */
|
||
|
content: "▸";
|
||
|
float: left;
|
||
|
margin-right: 0.25em;
|
||
|
color: var(--sklearn-color-icon);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
/* Toggleable content - dropdown */
|
||
|
|
||
|
#sk-container-id-1 div.sk-toggleable__content {
|
||
|
max-height: 0;
|
||
|
max-width: 0;
|
||
|
overflow: hidden;
|
||
|
text-align: left;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-toggleable__content.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-toggleable__content pre {
|
||
|
margin: 0.2em;
|
||
|
border-radius: 0.25em;
|
||
|
color: var(--sklearn-color-text);
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-toggleable__content.fitted pre {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {
|
||
|
/* Expand drop-down */
|
||
|
max-height: 200px;
|
||
|
max-width: 100%;
|
||
|
overflow: auto;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
|
||
|
content: "▾";
|
||
|
}
|
||
|
|
||
|
/* Pipeline/ColumnTransformer-specific style */
|
||
|
|
||
|
#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific style */
|
||
|
|
||
|
/* Colorize estimator box */
|
||
|
#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-label label.sk-toggleable__label,
|
||
|
#sk-container-id-1 div.sk-label label {
|
||
|
/* The background is the default theme color */
|
||
|
color: var(--sklearn-color-text-on-default-background);
|
||
|
}
|
||
|
|
||
|
/* On hover, darken the color of the background */
|
||
|
#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Label box, darken color on hover, fitted */
|
||
|
#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator label */
|
||
|
|
||
|
#sk-container-id-1 div.sk-label label {
|
||
|
font-family: monospace;
|
||
|
font-weight: bold;
|
||
|
display: inline-block;
|
||
|
line-height: 1.2em;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-label-container {
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific */
|
||
|
#sk-container-id-1 div.sk-estimator {
|
||
|
font-family: monospace;
|
||
|
border: 1px dotted var(--sklearn-color-border-box);
|
||
|
border-radius: 0.25em;
|
||
|
box-sizing: border-box;
|
||
|
margin-bottom: 0.5em;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-estimator.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
/* on hover */
|
||
|
#sk-container-id-1 div.sk-estimator:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 div.sk-estimator.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Specification for estimator info (e.g. "i" and "?") */
|
||
|
|
||
|
/* Common style for "i" and "?" */
|
||
|
|
||
|
.sk-estimator-doc-link,
|
||
|
a:link.sk-estimator-doc-link,
|
||
|
a:visited.sk-estimator-doc-link {
|
||
|
float: right;
|
||
|
font-size: smaller;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1em;
|
||
|
height: 1em;
|
||
|
width: 1em;
|
||
|
text-decoration: none !important;
|
||
|
margin-left: 1ex;
|
||
|
/* unfitted */
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted,
|
||
|
a:link.sk-estimator-doc-link.fitted,
|
||
|
a:visited.sk-estimator-doc-link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
div.sk-estimator:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
/* Span, style for the box shown on hovering the info icon */
|
||
|
.sk-estimator-doc-link span {
|
||
|
display: none;
|
||
|
z-index: 9999;
|
||
|
position: relative;
|
||
|
font-weight: normal;
|
||
|
right: .2ex;
|
||
|
padding: .5ex;
|
||
|
margin: .5ex;
|
||
|
width: min-content;
|
||
|
min-width: 20ex;
|
||
|
max-width: 50ex;
|
||
|
color: var(--sklearn-color-text);
|
||
|
box-shadow: 2pt 2pt 4pt #999;
|
||
|
/* unfitted */
|
||
|
background: var(--sklearn-color-unfitted-level-0);
|
||
|
border: .5pt solid var(--sklearn-color-unfitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted span {
|
||
|
/* fitted */
|
||
|
background: var(--sklearn-color-fitted-level-0);
|
||
|
border: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link:hover span {
|
||
|
display: block;
|
||
|
}
|
||
|
|
||
|
/* "?"-specific style due to the `<a>` HTML tag */
|
||
|
|
||
|
#sk-container-id-1 a.estimator_doc_link {
|
||
|
float: right;
|
||
|
font-size: 1rem;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1rem;
|
||
|
height: 1rem;
|
||
|
width: 1rem;
|
||
|
text-decoration: none;
|
||
|
/* unfitted */
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 a.estimator_doc_link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
#sk-container-id-1 a.estimator_doc_link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-1 a.estimator_doc_link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
</style><div id="sk-container-id-1" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>LogisticRegression(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-1" type="checkbox" checked><label for="sk-estimator-id-1" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted"> LogisticRegression<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html">?<span>Documentation for LogisticRegression</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>LogisticRegression(random_state=42)</pre></div> </div></div></div></div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
Xnew = np.linspace(-1,3,100).reshape(-1,1)
|
||
|
yPred = mylr.predict_proba(Xnew)
|
||
|
#plt.plot(Xnew,yPred[:,0], label='No Iris')
|
||
|
plt.plot(Xnew,yPred[:,1], label='Yes Iris')
|
||
|
plt.legend()
|
||
|
plt.plot(X,y,'og')
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_9_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
# Iris-Setosa petal length
|
||
|
|
||
|
|
||
|
```python
|
||
|
X = iris.data[:,2:3]
|
||
|
y = (iris.target == 0).astype(int)
|
||
|
from sklearn.linear_model import LogisticRegression
|
||
|
mylr = LogisticRegression(solver='lbfgs', random_state=42)
|
||
|
mylr.fit(X,y)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<style>#sk-container-id-2 {
|
||
|
/* Definition of color scheme common for light and dark mode */
|
||
|
--sklearn-color-text: black;
|
||
|
--sklearn-color-line: gray;
|
||
|
/* Definition of color scheme for unfitted estimators */
|
||
|
--sklearn-color-unfitted-level-0: #fff5e6;
|
||
|
--sklearn-color-unfitted-level-1: #f6e4d2;
|
||
|
--sklearn-color-unfitted-level-2: #ffe0b3;
|
||
|
--sklearn-color-unfitted-level-3: chocolate;
|
||
|
/* Definition of color scheme for fitted estimators */
|
||
|
--sklearn-color-fitted-level-0: #f0f8ff;
|
||
|
--sklearn-color-fitted-level-1: #d4ebff;
|
||
|
--sklearn-color-fitted-level-2: #b3dbfd;
|
||
|
--sklearn-color-fitted-level-3: cornflowerblue;
|
||
|
|
||
|
/* Specific color for light theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-icon: #696969;
|
||
|
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* Redefinition of color scheme for dark theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-icon: #878787;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 pre {
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 input.sk-hidden--visually {
|
||
|
border: 0;
|
||
|
clip: rect(1px 1px 1px 1px);
|
||
|
clip: rect(1px, 1px, 1px, 1px);
|
||
|
height: 1px;
|
||
|
margin: -1px;
|
||
|
overflow: hidden;
|
||
|
padding: 0;
|
||
|
position: absolute;
|
||
|
width: 1px;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-dashed-wrapped {
|
||
|
border: 1px dashed var(--sklearn-color-line);
|
||
|
margin: 0 0.4em 0.5em 0.4em;
|
||
|
box-sizing: border-box;
|
||
|
padding-bottom: 0.4em;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-container {
|
||
|
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
|
||
|
but bootstrap.min.css set `[hidden] { display: none !important; }`
|
||
|
so we also need the `!important` here to be able to override the
|
||
|
default hidden behavior on the sphinx rendered scikit-learn.org.
|
||
|
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
|
||
|
display: inline-block !important;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-text-repr-fallback {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
div.sk-parallel-item,
|
||
|
div.sk-serial,
|
||
|
div.sk-item {
|
||
|
/* draw centered vertical line to link estimators */
|
||
|
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
|
||
|
background-size: 2px 100%;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: center center;
|
||
|
}
|
||
|
|
||
|
/* Parallel-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel-item::after {
|
||
|
content: "";
|
||
|
width: 100%;
|
||
|
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel {
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
justify-content: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel-item {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel-item:first-child::after {
|
||
|
align-self: flex-end;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel-item:last-child::after {
|
||
|
align-self: flex-start;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-parallel-item:only-child::after {
|
||
|
width: 0;
|
||
|
}
|
||
|
|
||
|
/* Serial-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-2 div.sk-serial {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
padding-right: 1em;
|
||
|
padding-left: 1em;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
|
||
|
clickable and can be expanded/collapsed.
|
||
|
- Pipeline and ColumnTransformer use this feature and define the default style
|
||
|
- Estimators will overwrite some part of the style using the `sk-estimator` class
|
||
|
*/
|
||
|
|
||
|
/* Pipeline and ColumnTransformer style (default) */
|
||
|
|
||
|
#sk-container-id-2 div.sk-toggleable {
|
||
|
/* Default theme specific background. It is overwritten whether we have a
|
||
|
specific estimator or a Pipeline/ColumnTransformer */
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
/* Toggleable label */
|
||
|
#sk-container-id-2 label.sk-toggleable__label {
|
||
|
cursor: pointer;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0.5em;
|
||
|
box-sizing: border-box;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 label.sk-toggleable__label-arrow:before {
|
||
|
/* Arrow on the left of the label */
|
||
|
content: "▸";
|
||
|
float: left;
|
||
|
margin-right: 0.25em;
|
||
|
color: var(--sklearn-color-icon);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
/* Toggleable content - dropdown */
|
||
|
|
||
|
#sk-container-id-2 div.sk-toggleable__content {
|
||
|
max-height: 0;
|
||
|
max-width: 0;
|
||
|
overflow: hidden;
|
||
|
text-align: left;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-toggleable__content.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-toggleable__content pre {
|
||
|
margin: 0.2em;
|
||
|
border-radius: 0.25em;
|
||
|
color: var(--sklearn-color-text);
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-toggleable__content.fitted pre {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {
|
||
|
/* Expand drop-down */
|
||
|
max-height: 200px;
|
||
|
max-width: 100%;
|
||
|
overflow: auto;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
|
||
|
content: "▾";
|
||
|
}
|
||
|
|
||
|
/* Pipeline/ColumnTransformer-specific style */
|
||
|
|
||
|
#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific style */
|
||
|
|
||
|
/* Colorize estimator box */
|
||
|
#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-label label.sk-toggleable__label,
|
||
|
#sk-container-id-2 div.sk-label label {
|
||
|
/* The background is the default theme color */
|
||
|
color: var(--sklearn-color-text-on-default-background);
|
||
|
}
|
||
|
|
||
|
/* On hover, darken the color of the background */
|
||
|
#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Label box, darken color on hover, fitted */
|
||
|
#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator label */
|
||
|
|
||
|
#sk-container-id-2 div.sk-label label {
|
||
|
font-family: monospace;
|
||
|
font-weight: bold;
|
||
|
display: inline-block;
|
||
|
line-height: 1.2em;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-label-container {
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific */
|
||
|
#sk-container-id-2 div.sk-estimator {
|
||
|
font-family: monospace;
|
||
|
border: 1px dotted var(--sklearn-color-border-box);
|
||
|
border-radius: 0.25em;
|
||
|
box-sizing: border-box;
|
||
|
margin-bottom: 0.5em;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-estimator.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
/* on hover */
|
||
|
#sk-container-id-2 div.sk-estimator:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 div.sk-estimator.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Specification for estimator info (e.g. "i" and "?") */
|
||
|
|
||
|
/* Common style for "i" and "?" */
|
||
|
|
||
|
.sk-estimator-doc-link,
|
||
|
a:link.sk-estimator-doc-link,
|
||
|
a:visited.sk-estimator-doc-link {
|
||
|
float: right;
|
||
|
font-size: smaller;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1em;
|
||
|
height: 1em;
|
||
|
width: 1em;
|
||
|
text-decoration: none !important;
|
||
|
margin-left: 1ex;
|
||
|
/* unfitted */
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted,
|
||
|
a:link.sk-estimator-doc-link.fitted,
|
||
|
a:visited.sk-estimator-doc-link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
div.sk-estimator:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
/* Span, style for the box shown on hovering the info icon */
|
||
|
.sk-estimator-doc-link span {
|
||
|
display: none;
|
||
|
z-index: 9999;
|
||
|
position: relative;
|
||
|
font-weight: normal;
|
||
|
right: .2ex;
|
||
|
padding: .5ex;
|
||
|
margin: .5ex;
|
||
|
width: min-content;
|
||
|
min-width: 20ex;
|
||
|
max-width: 50ex;
|
||
|
color: var(--sklearn-color-text);
|
||
|
box-shadow: 2pt 2pt 4pt #999;
|
||
|
/* unfitted */
|
||
|
background: var(--sklearn-color-unfitted-level-0);
|
||
|
border: .5pt solid var(--sklearn-color-unfitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted span {
|
||
|
/* fitted */
|
||
|
background: var(--sklearn-color-fitted-level-0);
|
||
|
border: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link:hover span {
|
||
|
display: block;
|
||
|
}
|
||
|
|
||
|
/* "?"-specific style due to the `<a>` HTML tag */
|
||
|
|
||
|
#sk-container-id-2 a.estimator_doc_link {
|
||
|
float: right;
|
||
|
font-size: 1rem;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1rem;
|
||
|
height: 1rem;
|
||
|
width: 1rem;
|
||
|
text-decoration: none;
|
||
|
/* unfitted */
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 a.estimator_doc_link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
#sk-container-id-2 a.estimator_doc_link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-2 a.estimator_doc_link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
</style><div id="sk-container-id-2" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>LogisticRegression(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-2" type="checkbox" checked><label for="sk-estimator-id-2" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted"> LogisticRegression<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html">?<span>Documentation for LogisticRegression</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>LogisticRegression(random_state=42)</pre></div> </div></div></div></div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
Xnew = np.linspace(0,8,100).reshape(-1,1)
|
||
|
yPred = mylr.predict_proba(Xnew)
|
||
|
#plt.plot(Xnew,yPred[:,0], label='No Iris')
|
||
|
plt.plot(Xnew,yPred[:,1], label='Yes Iris')
|
||
|
plt.legend()
|
||
|
plt.plot(X,y,'og')
|
||
|
plt.axis([1.5, 5, -0.1, 1.1])
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_12_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
# Iris-Setosa Sepal-Length
|
||
|
|
||
|
|
||
|
```python
|
||
|
X = iris.data[:,0:1]
|
||
|
y = (iris.target == 0).astype(int)
|
||
|
from sklearn.linear_model import LogisticRegression
|
||
|
mylr = LogisticRegression(solver='lbfgs', random_state=42)
|
||
|
mylr.fit(X,y)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<style>#sk-container-id-3 {
|
||
|
/* Definition of color scheme common for light and dark mode */
|
||
|
--sklearn-color-text: black;
|
||
|
--sklearn-color-line: gray;
|
||
|
/* Definition of color scheme for unfitted estimators */
|
||
|
--sklearn-color-unfitted-level-0: #fff5e6;
|
||
|
--sklearn-color-unfitted-level-1: #f6e4d2;
|
||
|
--sklearn-color-unfitted-level-2: #ffe0b3;
|
||
|
--sklearn-color-unfitted-level-3: chocolate;
|
||
|
/* Definition of color scheme for fitted estimators */
|
||
|
--sklearn-color-fitted-level-0: #f0f8ff;
|
||
|
--sklearn-color-fitted-level-1: #d4ebff;
|
||
|
--sklearn-color-fitted-level-2: #b3dbfd;
|
||
|
--sklearn-color-fitted-level-3: cornflowerblue;
|
||
|
|
||
|
/* Specific color for light theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-icon: #696969;
|
||
|
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* Redefinition of color scheme for dark theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-icon: #878787;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 pre {
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 input.sk-hidden--visually {
|
||
|
border: 0;
|
||
|
clip: rect(1px 1px 1px 1px);
|
||
|
clip: rect(1px, 1px, 1px, 1px);
|
||
|
height: 1px;
|
||
|
margin: -1px;
|
||
|
overflow: hidden;
|
||
|
padding: 0;
|
||
|
position: absolute;
|
||
|
width: 1px;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-dashed-wrapped {
|
||
|
border: 1px dashed var(--sklearn-color-line);
|
||
|
margin: 0 0.4em 0.5em 0.4em;
|
||
|
box-sizing: border-box;
|
||
|
padding-bottom: 0.4em;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-container {
|
||
|
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
|
||
|
but bootstrap.min.css set `[hidden] { display: none !important; }`
|
||
|
so we also need the `!important` here to be able to override the
|
||
|
default hidden behavior on the sphinx rendered scikit-learn.org.
|
||
|
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
|
||
|
display: inline-block !important;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-text-repr-fallback {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
div.sk-parallel-item,
|
||
|
div.sk-serial,
|
||
|
div.sk-item {
|
||
|
/* draw centered vertical line to link estimators */
|
||
|
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
|
||
|
background-size: 2px 100%;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: center center;
|
||
|
}
|
||
|
|
||
|
/* Parallel-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel-item::after {
|
||
|
content: "";
|
||
|
width: 100%;
|
||
|
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel {
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
justify-content: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel-item {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel-item:first-child::after {
|
||
|
align-self: flex-end;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel-item:last-child::after {
|
||
|
align-self: flex-start;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-parallel-item:only-child::after {
|
||
|
width: 0;
|
||
|
}
|
||
|
|
||
|
/* Serial-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-3 div.sk-serial {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
padding-right: 1em;
|
||
|
padding-left: 1em;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
|
||
|
clickable and can be expanded/collapsed.
|
||
|
- Pipeline and ColumnTransformer use this feature and define the default style
|
||
|
- Estimators will overwrite some part of the style using the `sk-estimator` class
|
||
|
*/
|
||
|
|
||
|
/* Pipeline and ColumnTransformer style (default) */
|
||
|
|
||
|
#sk-container-id-3 div.sk-toggleable {
|
||
|
/* Default theme specific background. It is overwritten whether we have a
|
||
|
specific estimator or a Pipeline/ColumnTransformer */
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
/* Toggleable label */
|
||
|
#sk-container-id-3 label.sk-toggleable__label {
|
||
|
cursor: pointer;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0.5em;
|
||
|
box-sizing: border-box;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 label.sk-toggleable__label-arrow:before {
|
||
|
/* Arrow on the left of the label */
|
||
|
content: "▸";
|
||
|
float: left;
|
||
|
margin-right: 0.25em;
|
||
|
color: var(--sklearn-color-icon);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
/* Toggleable content - dropdown */
|
||
|
|
||
|
#sk-container-id-3 div.sk-toggleable__content {
|
||
|
max-height: 0;
|
||
|
max-width: 0;
|
||
|
overflow: hidden;
|
||
|
text-align: left;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-toggleable__content.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-toggleable__content pre {
|
||
|
margin: 0.2em;
|
||
|
border-radius: 0.25em;
|
||
|
color: var(--sklearn-color-text);
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-toggleable__content.fitted pre {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {
|
||
|
/* Expand drop-down */
|
||
|
max-height: 200px;
|
||
|
max-width: 100%;
|
||
|
overflow: auto;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
|
||
|
content: "▾";
|
||
|
}
|
||
|
|
||
|
/* Pipeline/ColumnTransformer-specific style */
|
||
|
|
||
|
#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific style */
|
||
|
|
||
|
/* Colorize estimator box */
|
||
|
#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-label label.sk-toggleable__label,
|
||
|
#sk-container-id-3 div.sk-label label {
|
||
|
/* The background is the default theme color */
|
||
|
color: var(--sklearn-color-text-on-default-background);
|
||
|
}
|
||
|
|
||
|
/* On hover, darken the color of the background */
|
||
|
#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Label box, darken color on hover, fitted */
|
||
|
#sk-container-id-3 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator label */
|
||
|
|
||
|
#sk-container-id-3 div.sk-label label {
|
||
|
font-family: monospace;
|
||
|
font-weight: bold;
|
||
|
display: inline-block;
|
||
|
line-height: 1.2em;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-label-container {
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific */
|
||
|
#sk-container-id-3 div.sk-estimator {
|
||
|
font-family: monospace;
|
||
|
border: 1px dotted var(--sklearn-color-border-box);
|
||
|
border-radius: 0.25em;
|
||
|
box-sizing: border-box;
|
||
|
margin-bottom: 0.5em;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-estimator.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
/* on hover */
|
||
|
#sk-container-id-3 div.sk-estimator:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 div.sk-estimator.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Specification for estimator info (e.g. "i" and "?") */
|
||
|
|
||
|
/* Common style for "i" and "?" */
|
||
|
|
||
|
.sk-estimator-doc-link,
|
||
|
a:link.sk-estimator-doc-link,
|
||
|
a:visited.sk-estimator-doc-link {
|
||
|
float: right;
|
||
|
font-size: smaller;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1em;
|
||
|
height: 1em;
|
||
|
width: 1em;
|
||
|
text-decoration: none !important;
|
||
|
margin-left: 1ex;
|
||
|
/* unfitted */
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted,
|
||
|
a:link.sk-estimator-doc-link.fitted,
|
||
|
a:visited.sk-estimator-doc-link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
div.sk-estimator:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
/* Span, style for the box shown on hovering the info icon */
|
||
|
.sk-estimator-doc-link span {
|
||
|
display: none;
|
||
|
z-index: 9999;
|
||
|
position: relative;
|
||
|
font-weight: normal;
|
||
|
right: .2ex;
|
||
|
padding: .5ex;
|
||
|
margin: .5ex;
|
||
|
width: min-content;
|
||
|
min-width: 20ex;
|
||
|
max-width: 50ex;
|
||
|
color: var(--sklearn-color-text);
|
||
|
box-shadow: 2pt 2pt 4pt #999;
|
||
|
/* unfitted */
|
||
|
background: var(--sklearn-color-unfitted-level-0);
|
||
|
border: .5pt solid var(--sklearn-color-unfitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted span {
|
||
|
/* fitted */
|
||
|
background: var(--sklearn-color-fitted-level-0);
|
||
|
border: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link:hover span {
|
||
|
display: block;
|
||
|
}
|
||
|
|
||
|
/* "?"-specific style due to the `<a>` HTML tag */
|
||
|
|
||
|
#sk-container-id-3 a.estimator_doc_link {
|
||
|
float: right;
|
||
|
font-size: 1rem;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1rem;
|
||
|
height: 1rem;
|
||
|
width: 1rem;
|
||
|
text-decoration: none;
|
||
|
/* unfitted */
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 a.estimator_doc_link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
#sk-container-id-3 a.estimator_doc_link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-3 a.estimator_doc_link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
</style><div id="sk-container-id-3" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>LogisticRegression(random_state=42)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-3" type="checkbox" checked><label for="sk-estimator-id-3" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted"> LogisticRegression<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html">?<span>Documentation for LogisticRegression</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>LogisticRegression(random_state=42)</pre></div> </div></div></div></div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
Xnew = np.linspace(0,8,100).reshape(-1,1)
|
||
|
yPred = mylr.predict_proba(Xnew)
|
||
|
#plt.plot(Xnew,yPred[:,0], label='No Iris')
|
||
|
plt.plot(Xnew,yPred[:,1], label='Yes Iris')
|
||
|
plt.legend()
|
||
|
plt.plot(X,y,'og')
|
||
|
plt.axis([3.5, 7, -0.1, 1.1])
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_15_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
# Multiple features classifier
|
||
|
|
||
|
|
||
|
```python
|
||
|
import matplotlib.pyplot as plt
|
||
|
sl = iris.data[:,0:1]
|
||
|
sw = iris.data[:,1:2]
|
||
|
tg = iris.target
|
||
|
plt.plot(sl[tg==0,0], sw[tg==0,0],'.g' ,label='Set')
|
||
|
plt.plot(sl[tg==1,0], sw[tg==1,0],'.r', label='Ver')
|
||
|
plt.plot(sl[tg==2,0], sw[tg==2,0],'.b', label='Vir')
|
||
|
plt.legend()
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_17_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
from sklearn.linear_model import LogisticRegression
|
||
|
X = iris.data[:,0:2]
|
||
|
y = (iris.target==2).astype(int)
|
||
|
```
|
||
|
|
||
|
|
||
|
```python
|
||
|
mylrvir = LogisticRegression(
|
||
|
random_state=22,
|
||
|
tol=1e-5,
|
||
|
C=100,
|
||
|
max_iter=100,
|
||
|
solver='newton-cg'
|
||
|
)
|
||
|
mylrvir.fit(X,y)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<style>#sk-container-id-13 {
|
||
|
/* Definition of color scheme common for light and dark mode */
|
||
|
--sklearn-color-text: black;
|
||
|
--sklearn-color-line: gray;
|
||
|
/* Definition of color scheme for unfitted estimators */
|
||
|
--sklearn-color-unfitted-level-0: #fff5e6;
|
||
|
--sklearn-color-unfitted-level-1: #f6e4d2;
|
||
|
--sklearn-color-unfitted-level-2: #ffe0b3;
|
||
|
--sklearn-color-unfitted-level-3: chocolate;
|
||
|
/* Definition of color scheme for fitted estimators */
|
||
|
--sklearn-color-fitted-level-0: #f0f8ff;
|
||
|
--sklearn-color-fitted-level-1: #d4ebff;
|
||
|
--sklearn-color-fitted-level-2: #b3dbfd;
|
||
|
--sklearn-color-fitted-level-3: cornflowerblue;
|
||
|
|
||
|
/* Specific color for light theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-icon: #696969;
|
||
|
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* Redefinition of color scheme for dark theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-icon: #878787;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 pre {
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 input.sk-hidden--visually {
|
||
|
border: 0;
|
||
|
clip: rect(1px 1px 1px 1px);
|
||
|
clip: rect(1px, 1px, 1px, 1px);
|
||
|
height: 1px;
|
||
|
margin: -1px;
|
||
|
overflow: hidden;
|
||
|
padding: 0;
|
||
|
position: absolute;
|
||
|
width: 1px;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-dashed-wrapped {
|
||
|
border: 1px dashed var(--sklearn-color-line);
|
||
|
margin: 0 0.4em 0.5em 0.4em;
|
||
|
box-sizing: border-box;
|
||
|
padding-bottom: 0.4em;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-container {
|
||
|
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
|
||
|
but bootstrap.min.css set `[hidden] { display: none !important; }`
|
||
|
so we also need the `!important` here to be able to override the
|
||
|
default hidden behavior on the sphinx rendered scikit-learn.org.
|
||
|
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
|
||
|
display: inline-block !important;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-text-repr-fallback {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
div.sk-parallel-item,
|
||
|
div.sk-serial,
|
||
|
div.sk-item {
|
||
|
/* draw centered vertical line to link estimators */
|
||
|
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
|
||
|
background-size: 2px 100%;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: center center;
|
||
|
}
|
||
|
|
||
|
/* Parallel-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel-item::after {
|
||
|
content: "";
|
||
|
width: 100%;
|
||
|
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel {
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
justify-content: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel-item {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel-item:first-child::after {
|
||
|
align-self: flex-end;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel-item:last-child::after {
|
||
|
align-self: flex-start;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-parallel-item:only-child::after {
|
||
|
width: 0;
|
||
|
}
|
||
|
|
||
|
/* Serial-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-13 div.sk-serial {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
padding-right: 1em;
|
||
|
padding-left: 1em;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
|
||
|
clickable and can be expanded/collapsed.
|
||
|
- Pipeline and ColumnTransformer use this feature and define the default style
|
||
|
- Estimators will overwrite some part of the style using the `sk-estimator` class
|
||
|
*/
|
||
|
|
||
|
/* Pipeline and ColumnTransformer style (default) */
|
||
|
|
||
|
#sk-container-id-13 div.sk-toggleable {
|
||
|
/* Default theme specific background. It is overwritten whether we have a
|
||
|
specific estimator or a Pipeline/ColumnTransformer */
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
/* Toggleable label */
|
||
|
#sk-container-id-13 label.sk-toggleable__label {
|
||
|
cursor: pointer;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0.5em;
|
||
|
box-sizing: border-box;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 label.sk-toggleable__label-arrow:before {
|
||
|
/* Arrow on the left of the label */
|
||
|
content: "▸";
|
||
|
float: left;
|
||
|
margin-right: 0.25em;
|
||
|
color: var(--sklearn-color-icon);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 label.sk-toggleable__label-arrow:hover:before {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
/* Toggleable content - dropdown */
|
||
|
|
||
|
#sk-container-id-13 div.sk-toggleable__content {
|
||
|
max-height: 0;
|
||
|
max-width: 0;
|
||
|
overflow: hidden;
|
||
|
text-align: left;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-toggleable__content.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-toggleable__content pre {
|
||
|
margin: 0.2em;
|
||
|
border-radius: 0.25em;
|
||
|
color: var(--sklearn-color-text);
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-toggleable__content.fitted pre {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 input.sk-toggleable__control:checked~div.sk-toggleable__content {
|
||
|
/* Expand drop-down */
|
||
|
max-height: 200px;
|
||
|
max-width: 100%;
|
||
|
overflow: auto;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
|
||
|
content: "▾";
|
||
|
}
|
||
|
|
||
|
/* Pipeline/ColumnTransformer-specific style */
|
||
|
|
||
|
#sk-container-id-13 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific style */
|
||
|
|
||
|
/* Colorize estimator box */
|
||
|
#sk-container-id-13 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-label label.sk-toggleable__label,
|
||
|
#sk-container-id-13 div.sk-label label {
|
||
|
/* The background is the default theme color */
|
||
|
color: var(--sklearn-color-text-on-default-background);
|
||
|
}
|
||
|
|
||
|
/* On hover, darken the color of the background */
|
||
|
#sk-container-id-13 div.sk-label:hover label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Label box, darken color on hover, fitted */
|
||
|
#sk-container-id-13 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator label */
|
||
|
|
||
|
#sk-container-id-13 div.sk-label label {
|
||
|
font-family: monospace;
|
||
|
font-weight: bold;
|
||
|
display: inline-block;
|
||
|
line-height: 1.2em;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-label-container {
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific */
|
||
|
#sk-container-id-13 div.sk-estimator {
|
||
|
font-family: monospace;
|
||
|
border: 1px dotted var(--sklearn-color-border-box);
|
||
|
border-radius: 0.25em;
|
||
|
box-sizing: border-box;
|
||
|
margin-bottom: 0.5em;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-estimator.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
/* on hover */
|
||
|
#sk-container-id-13 div.sk-estimator:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 div.sk-estimator.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Specification for estimator info (e.g. "i" and "?") */
|
||
|
|
||
|
/* Common style for "i" and "?" */
|
||
|
|
||
|
.sk-estimator-doc-link,
|
||
|
a:link.sk-estimator-doc-link,
|
||
|
a:visited.sk-estimator-doc-link {
|
||
|
float: right;
|
||
|
font-size: smaller;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1em;
|
||
|
height: 1em;
|
||
|
width: 1em;
|
||
|
text-decoration: none !important;
|
||
|
margin-left: 1ex;
|
||
|
/* unfitted */
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted,
|
||
|
a:link.sk-estimator-doc-link.fitted,
|
||
|
a:visited.sk-estimator-doc-link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
div.sk-estimator:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
/* Span, style for the box shown on hovering the info icon */
|
||
|
.sk-estimator-doc-link span {
|
||
|
display: none;
|
||
|
z-index: 9999;
|
||
|
position: relative;
|
||
|
font-weight: normal;
|
||
|
right: .2ex;
|
||
|
padding: .5ex;
|
||
|
margin: .5ex;
|
||
|
width: min-content;
|
||
|
min-width: 20ex;
|
||
|
max-width: 50ex;
|
||
|
color: var(--sklearn-color-text);
|
||
|
box-shadow: 2pt 2pt 4pt #999;
|
||
|
/* unfitted */
|
||
|
background: var(--sklearn-color-unfitted-level-0);
|
||
|
border: .5pt solid var(--sklearn-color-unfitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted span {
|
||
|
/* fitted */
|
||
|
background: var(--sklearn-color-fitted-level-0);
|
||
|
border: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link:hover span {
|
||
|
display: block;
|
||
|
}
|
||
|
|
||
|
/* "?"-specific style due to the `<a>` HTML tag */
|
||
|
|
||
|
#sk-container-id-13 a.estimator_doc_link {
|
||
|
float: right;
|
||
|
font-size: 1rem;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1rem;
|
||
|
height: 1rem;
|
||
|
width: 1rem;
|
||
|
text-decoration: none;
|
||
|
/* unfitted */
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 a.estimator_doc_link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
#sk-container-id-13 a.estimator_doc_link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-13 a.estimator_doc_link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
</style><div id="sk-container-id-13" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>LogisticRegression(C=100, random_state=22, solver='newton-cg', tol=1e-05)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-13" type="checkbox" checked><label for="sk-estimator-id-13" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted"> LogisticRegression<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html">?<span>Documentation for LogisticRegression</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>LogisticRegression(C=100, random_state=22, solver='newton-cg', tol=1e-05)</pre></div> </div></div></div></div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
import numpy as np
|
||
|
x0, x1 = np.meshgrid(
|
||
|
np.linspace(3,8,100).reshape(-1,1),
|
||
|
np.linspace(0,6,100).reshape(-1,1)
|
||
|
)
|
||
|
Xnew = np.c_[x0.ravel(), x1.ravel()]
|
||
|
yPred = mylrvir.predict_proba(Xnew)
|
||
|
```
|
||
|
|
||
|
|
||
|
```python
|
||
|
plt.figure(figsize=(10,4))
|
||
|
plt.plot(X[y==0,0], X[y==0,1],'bs',label='No Virg')
|
||
|
plt.plot(X[y==1,0], X[y==1,1],'g^',label='Virginica')
|
||
|
zz=yPred[:,1].reshape(x0.shape)
|
||
|
contour=plt.contour(x0,x1,zz)
|
||
|
plt.clabel(contour, inline=1,fontsize=15)
|
||
|
plt.xlabel("Sepal Length")
|
||
|
plt.ylabel("Sepal Width")
|
||
|
plt.legend()
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_21_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
fig, ax =plt.subplots(subplot_kw={"projection": "3d"})
|
||
|
surf = ax.plot_surface(x0,x1,zz, cmap='jet')
|
||
|
ax.scatter(iris.data[:,0:1], iris.data[:,1:2], y, 'or')
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<mpl_toolkits.mplot3d.art3d.Path3DCollection at 0x16c24cda0>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_22_1.png)
|
||
|
|
||
|
|
||
|
|
||
|
# Multiple features and muticlass classifier
|
||
|
|
||
|
|
||
|
```python
|
||
|
X = iris.data[:,0:2]
|
||
|
y = iris.target
|
||
|
lrmc = LogisticRegression(
|
||
|
multi_class='multinomial',
|
||
|
solver='lbfgs',
|
||
|
C=100,
|
||
|
random_state=22
|
||
|
)
|
||
|
lrmc.fit(X,y)
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<style>#sk-container-id-18 {
|
||
|
/* Definition of color scheme common for light and dark mode */
|
||
|
--sklearn-color-text: black;
|
||
|
--sklearn-color-line: gray;
|
||
|
/* Definition of color scheme for unfitted estimators */
|
||
|
--sklearn-color-unfitted-level-0: #fff5e6;
|
||
|
--sklearn-color-unfitted-level-1: #f6e4d2;
|
||
|
--sklearn-color-unfitted-level-2: #ffe0b3;
|
||
|
--sklearn-color-unfitted-level-3: chocolate;
|
||
|
/* Definition of color scheme for fitted estimators */
|
||
|
--sklearn-color-fitted-level-0: #f0f8ff;
|
||
|
--sklearn-color-fitted-level-1: #d4ebff;
|
||
|
--sklearn-color-fitted-level-2: #b3dbfd;
|
||
|
--sklearn-color-fitted-level-3: cornflowerblue;
|
||
|
|
||
|
/* Specific color for light theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
|
||
|
--sklearn-color-icon: #696969;
|
||
|
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
/* Redefinition of color scheme for dark theme */
|
||
|
--sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
|
||
|
--sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
|
||
|
--sklearn-color-icon: #878787;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 pre {
|
||
|
padding: 0;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 input.sk-hidden--visually {
|
||
|
border: 0;
|
||
|
clip: rect(1px 1px 1px 1px);
|
||
|
clip: rect(1px, 1px, 1px, 1px);
|
||
|
height: 1px;
|
||
|
margin: -1px;
|
||
|
overflow: hidden;
|
||
|
padding: 0;
|
||
|
position: absolute;
|
||
|
width: 1px;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-dashed-wrapped {
|
||
|
border: 1px dashed var(--sklearn-color-line);
|
||
|
margin: 0 0.4em 0.5em 0.4em;
|
||
|
box-sizing: border-box;
|
||
|
padding-bottom: 0.4em;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-container {
|
||
|
/* jupyter's `normalize.less` sets `[hidden] { display: none; }`
|
||
|
but bootstrap.min.css set `[hidden] { display: none !important; }`
|
||
|
so we also need the `!important` here to be able to override the
|
||
|
default hidden behavior on the sphinx rendered scikit-learn.org.
|
||
|
See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
|
||
|
display: inline-block !important;
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-text-repr-fallback {
|
||
|
display: none;
|
||
|
}
|
||
|
|
||
|
div.sk-parallel-item,
|
||
|
div.sk-serial,
|
||
|
div.sk-item {
|
||
|
/* draw centered vertical line to link estimators */
|
||
|
background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
|
||
|
background-size: 2px 100%;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: center center;
|
||
|
}
|
||
|
|
||
|
/* Parallel-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel-item::after {
|
||
|
content: "";
|
||
|
width: 100%;
|
||
|
border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel {
|
||
|
display: flex;
|
||
|
align-items: stretch;
|
||
|
justify-content: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
position: relative;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel-item {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel-item:first-child::after {
|
||
|
align-self: flex-end;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel-item:last-child::after {
|
||
|
align-self: flex-start;
|
||
|
width: 50%;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-parallel-item:only-child::after {
|
||
|
width: 0;
|
||
|
}
|
||
|
|
||
|
/* Serial-specific style estimator block */
|
||
|
|
||
|
#sk-container-id-18 div.sk-serial {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
align-items: center;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
padding-right: 1em;
|
||
|
padding-left: 1em;
|
||
|
}
|
||
|
|
||
|
|
||
|
/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
|
||
|
clickable and can be expanded/collapsed.
|
||
|
- Pipeline and ColumnTransformer use this feature and define the default style
|
||
|
- Estimators will overwrite some part of the style using the `sk-estimator` class
|
||
|
*/
|
||
|
|
||
|
/* Pipeline and ColumnTransformer style (default) */
|
||
|
|
||
|
#sk-container-id-18 div.sk-toggleable {
|
||
|
/* Default theme specific background. It is overwritten whether we have a
|
||
|
specific estimator or a Pipeline/ColumnTransformer */
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
}
|
||
|
|
||
|
/* Toggleable label */
|
||
|
#sk-container-id-18 label.sk-toggleable__label {
|
||
|
cursor: pointer;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0.5em;
|
||
|
box-sizing: border-box;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 label.sk-toggleable__label-arrow:before {
|
||
|
/* Arrow on the left of the label */
|
||
|
content: "▸";
|
||
|
float: left;
|
||
|
margin-right: 0.25em;
|
||
|
color: var(--sklearn-color-icon);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 label.sk-toggleable__label-arrow:hover:before {
|
||
|
color: var(--sklearn-color-text);
|
||
|
}
|
||
|
|
||
|
/* Toggleable content - dropdown */
|
||
|
|
||
|
#sk-container-id-18 div.sk-toggleable__content {
|
||
|
max-height: 0;
|
||
|
max-width: 0;
|
||
|
overflow: hidden;
|
||
|
text-align: left;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-toggleable__content.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-toggleable__content pre {
|
||
|
margin: 0.2em;
|
||
|
border-radius: 0.25em;
|
||
|
color: var(--sklearn-color-text);
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-toggleable__content.fitted pre {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 input.sk-toggleable__control:checked~div.sk-toggleable__content {
|
||
|
/* Expand drop-down */
|
||
|
max-height: 200px;
|
||
|
max-width: 100%;
|
||
|
overflow: auto;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
|
||
|
content: "▾";
|
||
|
}
|
||
|
|
||
|
/* Pipeline/ColumnTransformer-specific style */
|
||
|
|
||
|
#sk-container-id-18 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific style */
|
||
|
|
||
|
/* Colorize estimator box */
|
||
|
#sk-container-id-18 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-label label.sk-toggleable__label,
|
||
|
#sk-container-id-18 div.sk-label label {
|
||
|
/* The background is the default theme color */
|
||
|
color: var(--sklearn-color-text-on-default-background);
|
||
|
}
|
||
|
|
||
|
/* On hover, darken the color of the background */
|
||
|
#sk-container-id-18 div.sk-label:hover label.sk-toggleable__label {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Label box, darken color on hover, fitted */
|
||
|
#sk-container-id-18 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
|
||
|
color: var(--sklearn-color-text);
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Estimator label */
|
||
|
|
||
|
#sk-container-id-18 div.sk-label label {
|
||
|
font-family: monospace;
|
||
|
font-weight: bold;
|
||
|
display: inline-block;
|
||
|
line-height: 1.2em;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-label-container {
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
/* Estimator-specific */
|
||
|
#sk-container-id-18 div.sk-estimator {
|
||
|
font-family: monospace;
|
||
|
border: 1px dotted var(--sklearn-color-border-box);
|
||
|
border-radius: 0.25em;
|
||
|
box-sizing: border-box;
|
||
|
margin-bottom: 0.5em;
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-0);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-estimator.fitted {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-0);
|
||
|
}
|
||
|
|
||
|
/* on hover */
|
||
|
#sk-container-id-18 div.sk-estimator:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-2);
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 div.sk-estimator.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-2);
|
||
|
}
|
||
|
|
||
|
/* Specification for estimator info (e.g. "i" and "?") */
|
||
|
|
||
|
/* Common style for "i" and "?" */
|
||
|
|
||
|
.sk-estimator-doc-link,
|
||
|
a:link.sk-estimator-doc-link,
|
||
|
a:visited.sk-estimator-doc-link {
|
||
|
float: right;
|
||
|
font-size: smaller;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1em;
|
||
|
height: 1em;
|
||
|
width: 1em;
|
||
|
text-decoration: none !important;
|
||
|
margin-left: 1ex;
|
||
|
/* unfitted */
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted,
|
||
|
a:link.sk-estimator-doc-link.fitted,
|
||
|
a:visited.sk-estimator-doc-link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
div.sk-estimator:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link:hover,
|
||
|
.sk-estimator-doc-link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover,
|
||
|
div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
|
||
|
.sk-estimator-doc-link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
/* Span, style for the box shown on hovering the info icon */
|
||
|
.sk-estimator-doc-link span {
|
||
|
display: none;
|
||
|
z-index: 9999;
|
||
|
position: relative;
|
||
|
font-weight: normal;
|
||
|
right: .2ex;
|
||
|
padding: .5ex;
|
||
|
margin: .5ex;
|
||
|
width: min-content;
|
||
|
min-width: 20ex;
|
||
|
max-width: 50ex;
|
||
|
color: var(--sklearn-color-text);
|
||
|
box-shadow: 2pt 2pt 4pt #999;
|
||
|
/* unfitted */
|
||
|
background: var(--sklearn-color-unfitted-level-0);
|
||
|
border: .5pt solid var(--sklearn-color-unfitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link.fitted span {
|
||
|
/* fitted */
|
||
|
background: var(--sklearn-color-fitted-level-0);
|
||
|
border: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
|
||
|
.sk-estimator-doc-link:hover span {
|
||
|
display: block;
|
||
|
}
|
||
|
|
||
|
/* "?"-specific style due to the `<a>` HTML tag */
|
||
|
|
||
|
#sk-container-id-18 a.estimator_doc_link {
|
||
|
float: right;
|
||
|
font-size: 1rem;
|
||
|
line-height: 1em;
|
||
|
font-family: monospace;
|
||
|
background-color: var(--sklearn-color-background);
|
||
|
border-radius: 1rem;
|
||
|
height: 1rem;
|
||
|
width: 1rem;
|
||
|
text-decoration: none;
|
||
|
/* unfitted */
|
||
|
color: var(--sklearn-color-unfitted-level-1);
|
||
|
border: var(--sklearn-color-unfitted-level-1) 1pt solid;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 a.estimator_doc_link.fitted {
|
||
|
/* fitted */
|
||
|
border: var(--sklearn-color-fitted-level-1) 1pt solid;
|
||
|
color: var(--sklearn-color-fitted-level-1);
|
||
|
}
|
||
|
|
||
|
/* On hover */
|
||
|
#sk-container-id-18 a.estimator_doc_link:hover {
|
||
|
/* unfitted */
|
||
|
background-color: var(--sklearn-color-unfitted-level-3);
|
||
|
color: var(--sklearn-color-background);
|
||
|
text-decoration: none;
|
||
|
}
|
||
|
|
||
|
#sk-container-id-18 a.estimator_doc_link.fitted:hover {
|
||
|
/* fitted */
|
||
|
background-color: var(--sklearn-color-fitted-level-3);
|
||
|
}
|
||
|
</style><div id="sk-container-id-18" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>LogisticRegression(C=100, multi_class='multinomial', random_state=22)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-18" type="checkbox" checked><label for="sk-estimator-id-18" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted"> LogisticRegression<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.4/modules/generated/sklearn.linear_model.LogisticRegression.html">?<span>Documentation for LogisticRegression</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>LogisticRegression(C=100, multi_class='multinomial', random_state=22)</pre></div> </div></div></div></div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
y
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||
|
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
import numpy as np
|
||
|
x0, x1 = np.meshgrid(
|
||
|
np.linspace(3,8,100).reshape(-1,1),
|
||
|
np.linspace(0,6,100).reshape(-1,1)
|
||
|
)
|
||
|
Xnew = np.c_[x0.ravel(), x1.ravel()]
|
||
|
yPred = lrmc.predict_proba(Xnew)
|
||
|
```
|
||
|
|
||
|
|
||
|
```python
|
||
|
plt.figure(figsize=(10,4))
|
||
|
plt.plot(X[y==0,0], X[y==0,1],'.b',label='Setosa')
|
||
|
plt.plot(X[y==1,0], X[y==1,1],'+g',label='Versi')
|
||
|
plt.plot(X[y==2,0], X[y==2,1],'*m',label='Virgi')
|
||
|
zz=yPred[:,1].reshape(x0.shape)
|
||
|
contour=plt.contour(x0,x1,zz)
|
||
|
plt.clabel(contour, inline=1,fontsize=15)
|
||
|
plt.xlabel("Sepal Length")
|
||
|
plt.ylabel("Sepal Width")
|
||
|
plt.legend()
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_27_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
yPred = lrmc.predict(Xnew)
|
||
|
plt.figure(figsize=(10,6))
|
||
|
plt.plot(X[y==0,0], X[y==0,1],'bs',label='Setosa')
|
||
|
plt.plot(X[y==1,0], X[y==1,1],'g^',label='Versi')
|
||
|
plt.plot(X[y==2,0], X[y==2,1],'*m',label='Virgi')
|
||
|
zz=yPred.reshape(x0.shape)
|
||
|
contour=plt.contourf(x0,x1,zz, cmap='jet', alpha=0.3)
|
||
|
plt.clabel(contour, inline=1,fontsize=15)
|
||
|
plt.xlabel("Sepal Length")
|
||
|
plt.ylabel("Sepal Width")
|
||
|
plt.legend()
|
||
|
plt.show()
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_28_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
fig, ax =plt.subplots(subplot_kw={"projection": "3d"})
|
||
|
surf = ax.plot_surface(x0,x1,zz, cmap='jet')
|
||
|
#ax.scatter(iris.data[:,0:1], iris.data[:,1:2], y, 'or')
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
![png](main_files/main_29_0.png)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
```python
|
||
|
|
||
|
```
|