分类算法
找到适合数据的最佳权重
尽管一些基于概率的机器学习模型(如朴素贝叶斯)对特征独立性做出大胆假设,但逻辑回归采用了更为谨慎的方法。可以把它看作是绘制一条(或一平面)将两种结果分开的线,这样我们就可以以更大的灵活性预测概率。
定义
逻辑回归是一种用于预测二元结果的统计方法。尽管名字中有'回归',但它实际上用于分类而非回归。它估计实例属于某个特定类别的概率。如果估计的概率大于 50%,模型预测该实例属于该类别(反之亦然)。
使用的数据集
在本文中,我们将使用一个人工高尔夫数据集作为示例。该数据集根据天气条件预测一个人是否会打高尔夫。
与 KNN 类似,逻辑回归也要求先对数据进行缩放。将类别列转换为 0 和 1,同时缩放数值特征,以避免某一特征主导距离度量。
列:'Outlook'(天气状况)、'Temperature'(温度)、'Humidity'(湿度)、'Wind'(风速)和'Play'(目标特征)。类别列(Outlook 和 Windy)使用独热编码(one-hot encoding)进行编码,而数值列则使用标准缩放(z-标准化)进行缩放。
# Import required libraries
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np
# Create dataset from dictionary
dataset_dict = {
'Outlook': ['sunny', 'sunny', 'overcast', 'rainy', 'rainy', 'rainy', 'overcast', 'sunny', 'sunny', 'rainy', 'sunny', 'overcast', 'overcast', 'rainy', 'sunny', 'overcast', 'rainy', 'sunny', 'sunny', 'rainy', 'overcast', 'rainy', 'sunny', , , , , ],
: [, , , , , , , , , , , , , , , , , , , , , , , , , , , ],
: [, , , , , , , , , , , , , , , , , , , , , , , , , , , ],
: [, , , , , , , , , , , , , , , , , , , , , , , , , , , ],
: [, , , , , , , , , , , , , , , , , , , , , , , , , , , ]
}
df = pd.DataFrame(dataset_dict)
df = pd.get_dummies(df, columns=[], prefix=, prefix_sep=, dtype=)
df[] = df[].astype()
df[] = (df[] == ).astype()
column_order = [, , , , , , ]
df = df[column_order]
X, y = df.drop(columns=), df[]
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=, shuffle=)
scaler = StandardScaler()
X_train[[, ]] = scaler.fit_transform(X_train[[, ]])
X_test[[, ]] = scaler.transform(X_test[[, ]])
()
(pd.concat([X_train, y_train], axis=), )
()
(pd.concat([X_test, y_test], axis=))

