Как реализовать и сравнить несколько алгоритмов машинного обучения (регрессия, классификация) в Python с помощью scikit-Python

Программы на Python
Ответить
Anonymous
 Как реализовать и сравнить несколько алгоритмов машинного обучения (регрессия, классификация) в Python с помощью scikit-

Сообщение Anonymous »

Я работаю над реализацией и сравнением различных алгоритмов машинного обучения на Python с помощью scikit-learn. Я опробовал несколько моделей, включая линейную регрессию, логистическую регрессию, множественную линейную регрессию, полиномиальную регрессию, K-NN и дерево решений.
Я хочу знать:

•⁠ ⁠Правильны ли эти реализации?

•⁠ ⁠Есть ли какие-либо улучшения или лучшие практики, которым мне следует следовать?

•⁠ ⁠Справлюсь ли я правильную предварительную обработку (например, пропущенные значения и кодирование)?

•⁠ ⁠Как мне лучше сравнить эти модели?
Любые предложения или исправления будут очень признательны.
Ниже приведены мои реализации:
linear regression.

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
data = pd.read_csv("data.csv")
X = data[['x']]
y = data['y']
X = np.array(X).reshape(-1, 1)
y = np.array(y)
model = LinearRegression()
model.fit(X, y)
slope = model.coef_[0]
intercept = model.intercept_
print("Slope:", slope)
print("Intercept:", intercept)
y_pred = model.predict(X)
print(y_pred)

logistic regression

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
data = pd.read_csv("train.csv")
X = data[['Pclass', 'Sex', 'Age', 'Fare']]
y = data['Survived']
X['Sex'] = X['Sex'].map({'male': 0, 'female': 1})
X['Age'] = X['Age'].fillna(X['Age'].median())
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

Multiple Linear Regression

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
data = pd.read_csv("data.csv")
X = data[['Hours', 'Sleep', 'Practice']]
y = data['Score']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

Polynomial Regression

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
data = pd.read_csv("data.csv")
X = data[['Hours']]
y = data['Score']
poly = PolynomialFeatures(degree=3)
X_poly = poly.fit_transform(X)
X_train, X_test, y_train, y_test = train_test_split(
X_poly, y, test_size=0.2, random_state=42
)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

K-NN

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
data = pd.read_csv("train.csv")
X = data[['Pclass', 'Age', 'Fare']]
y = data['Survived']
X['Age'] = X['Age'].fillna(X['Age'].median())
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

decision tree

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
data = pd.read_csv("data.csv")
X = data.drop("y", axis=1)
y = data["y"]
X = np.array(X)
y = np.array(y)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(y_pred)
print("Accuracy:", model.score(X_test, y_test))

metrix

from sklearn.metrics import mean_squared_error, r2_score
print("MSE:", mean_squared_error(y_test, y_pred))
print("R2 Score:", r2_score(y_test, y_pred))
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»