MDCIPROPE2026/sesion2_3/machine-learning-introducti...

48 lines
1.2 KiB
Python

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier as KNN
from sklearn.metrics import accuracy_score
import pandas as pd
iris = load_iris()
#Esto es solo para visualizar de manera mas clara que datos tenemos en nuestro dataset, esto no se suele usar en ML
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df["target"] = iris.target
print(df.head())
XirisData = iris.data
YTarget = iris.target
XTrain, XTest, YTrain, YTest = train_test_split(XirisData, YTarget, test_size=0.2, random_state=42)
model = KNN(n_neighbors=3)
model.fit(XTrain, YTrain)
predictions = model.predict(XTest)
print(f"Predictions: {predictions}")
accuracy = accuracy_score(YTest, predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")
"""Ejemplo: [cm] -> R: "Setosa"
Largo del sepalo = 5.1
Ancho del sepalo = 3.5
Largo del petalo = 1.4
Ancho del petalo = 0.2
"""
newFlower = pd.Series({
"sepal length (cm)": 5.1,
"sepal width (cm)": 3.5,
"petal length (cm)": 1.4,
"petal width (cm)": 0.2
})
newFlowerArray = newFlower.values.reshape(1, -1)
predicitionNewFlower = model.predict(newFlowerArray)
specie = iris.target_names[predicitionNewFlower[0]]
print(f"Specie: {specie}")