ML 如何在 Python 回归 logistic 中建立和训练线性和 模型 (ml怎么弄)

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

线性回归与logistic回归,是 目前最流行的两个机器学习模型 。

在我的里,你们已经学习了线性回归机器学习算法背后的历史和理论。

本教程的主题是:如何用Python中的scikit-learn库,建立、训练和测试你的第一个线性回归机器学习模型。

本教程中将使用的数据集

由于线性回归是我们在本课程中学习的第一种机器学习模型,在本教程中我们将使用人工创建的数据集。因为这样我们可以专注于学习机器学习的概念,避免在清洗和处理数据上浪费不必要的时间。

具体来说,我们将使用住房数据的数据集并尝试预测住房价格。在建立模型之前,我们首先要导入所需的库。

我们将导入的第一个库是,它是源于"panel>按照惯例,以别名导入。你可以使用以下语句导入:

importpandasaspd

接下来,我们需要导入,一个流行的数值计算库。 Numpy因其型数据结构,以及,,这些非常实用的方法而闻名。

按照惯例,以别名导入。你可以使用以下语句导入:

importnumpyasnp

接下来,我们需要导入,Python中最受欢迎的库。matplotlib通常以别名plt导入, 你可以使用以下语句导入matplotlib:

importmatplotlib.pyplotasplt%matplotlibinline

语句%matplotlib inline将使我们的matplotlib可视化效果直接嵌入到Jupyter Notebook中,使它们更易于访问和解释。

最后,导入seaborn,这是另一个Python数据可视化库,可以让我们更轻松地使用matplotlib创建美观的可视化结果。

你可以使用以下语句导入seaborn:

importseabornassns

总结一下,以下是本教程中需要导入的所有库:

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineimportseabornassns

在以后的课程中,我会说明必需导入哪些库,但不会再像这样进行详细的解释。

导入数据集

正如之前所提到的,我们将用到一个房屋信息的数据集。数据集已经以csv文件的形式上传到我的个人网站,链接如下:

要向你的 Jupyter Notebook 中导入数据集,首先复制上述链接,粘贴到你的浏览器中进行下载。然后,将该文件移动到与你的Jupyter Notebook相同的文件夹下。

完成这一步后,输入以下指令将向你的Jupyter Notebook导入房屋数据集:

raw_data=pd.read_csv('Housing_Data.csv')

这一数据集有着一系列特征,包括:

这些数据都是随机生成的,所以你会发现一些不太合理的细节(如某个数字本应该是整数,却有着多个小数位数)。

了解数据集

现在,数据集已被导入并存储为名为raw_data的变量。你可以用名为info的方法(method)得到该数据集的一些大致信息。具体来说,运行指令raw_data.info()将得到:

RangeIndex:5000entries,0to4999Datacolumns(total7columns):Avg.AreaIncome5000non-nullfloat64Avg.AreaHouseAge5000non-nullfloat64Avg.AreaNumberofRooms5000non-nullfloat64

另一个有效获取数据集信息的途径,是生成散点图矩阵。你可以用seaborn库中的pairplot方法,并传入整个数据框作为该方法的参数。完整指令如下:

sns.pairplot(raw_data)

该指令的输入如下:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

下一步,就让我们开始建立我们的线性回归模型吧。

建立机器学习的线性回归模型

我们要做的第一件事,是将我们的数据分为一个x数组(包含我们用于预测的所有数据)以及一个y数组(包含我们试图预测的所有数据)。

首先,我们要选择包含哪几列。你可以通过raw_data.columns指令得到该数据框的所有列名。其输出为:

Index(['Avg.AreaIncome','Avg.AreaHouseAge','Avg.AreaNumberofRooms','Avg.AreaNumberofBedrooms','AreaPopulation','Price','Address'],dtype='object')

我们的x数组将包含以上的大部分变量,只排除Price(因为这就是我们试图预测的一列)和Address(因为它只有文本信息)。

让我们建立x数组,并将它存储为变量x:

x=raw_data[['Avg.AreaIncome','Avg.AreaHouseAge','Avg.AreaNumberofRooms','Avg.AreaNumberofBedrooms','AreaPopulation']]

然后,建立y数组,并存储为变量y:

y=raw_data['Price']

于是,我们便成功地将数据集分成了一个x数组(即模型的输入值)与一个y数组(即模型的输出值)。在下一节,我们将学习如何进一步将数据集划分为训练数据与测试数据。

划分数据集为训练数据和测试数据

scikit-learn库令我们可以很简单地将我们的数据集划分为训练数据和测试数据。要做到这一步,我们需要从scikit-learn的model_selection模块导入train_test_split函数:

fromsklearn.model_selectionimporttrain_test_split

train_test_split函数需要三个输入值:

有了这些参数,train_test_split函数便会为我们划分数据了!如果我们希望我们的测试数据占全部数据的30%,可以通过以下代码来实现:

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)

让我们打开黑箱,看看里面到底发生了什么。

train_test_split函数返回了一个长度为4的 Python列表 ,其中的元素分别为x_train,x_test,y_train和y_test。然后,我们便可以通过Python的列表解包,将这些变量分配到各自对应的变量名下。现在,我们已经很好地划分了我们的数据集,是时候建立和训练机器学习的线性回归模型了。

建立和训练模型

首先,我们需要从scikit-learn库中导入LinearRegression估计器。其Python指令如下:

fromsklearn.linear_modelimportLinearRegression

然后,我们需要建立LinearRegression这个Python对象的一个实例。我们将它存储为变量model。相应代码如下:

model=LinearRegression()

我们可以用scikit-learn库的fit方法,在我们的训练数据上训练这个模型。

model.fit(x_train,y_train)

现在,我们已经将这个模型训练好了。你可以通过以下指令查看这个模型的每个参数:

print(model.coef_)

上述指令将输出:

[2.16176350e+011.65221120e+051.21405377e+051.31871878e+031.52251955e+01]

类似地,也可以通过以下指令查看所得回归方程的截距:

print(model.intercept_)

上述指令将输出:

-2641372.6673013503

还有一个更好的方法来查看所有参数,那就是将它们一并放进一个数据框里。这一步可以通过以下指令完成:

pd.DataFrame(model.coef_,x.columns,columns=['Coeff'])

这里的输出就好理解多了:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

让我们花点时间,来看看这些参数分别是什么意思。我们具体查看变量Area Population,其参数大概为15。

这一数字表示,若其他所有变量保持不变,而Area Population增加了1个单位的话,那么我们预测的变量——在这里是Price——将增加15个单位。

换句话说,一个变量有着很大的参数,说明它对你试图预测的变量有着很大的影响。而一个有着小参数的变量,其影响也同样较小。

现在我们已经建立了我们的第一个 机器学习线性回归模型,是时候用这个模型去为我们的测试数据做预测了。

根据我们的模型做出预测

scikit-learn使从机器学习模型进行预测变得非常容易。您只需要在我们之前创建的模型变量上调用预报方法。

由于预测变量旨在进行预测,因此它仅接受x数组参数。它将为您生成y值!

这是您需要使用predict方法从我们的模型生成预测的代码:

predictions=model.predict(x_test)

x_test 特征值 存储在 predictions 预测变量中。由于我们使用train_test_split方法将 实际 值存储在y_test中,因此下一步要做的是将预测数组的值与y_test的值进行比较。

一种简单的方法是使用散点图绘制两个数组。使用plt.scatter方法很容易构建

plt.scatter(y_test,predictions)

这是此代码生成的散点图:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,我们的预测值非常接近数据集中观测值的实际值。该散点图中的一条完美的对角线将表明我们的模型完美地预测了y数组值。

直观地评估模型性能的另一种方法是绘制其残差,即实际y数组值与预测y数组值之间的差。

下面的语句是实现此目的简单方法:

plt.hist(y_test-predictions)

这是此代码生成的可视化效果:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

这是我们的机器学习模型残差的直方图。

您可能会注意到,我们的机器学习模型中的残差似乎呈正态分布。这是一个很好的信号!

它表明我们已经选择了适当的模型类型(在这种情况下为线性回归)来根据我们的数据集进行预测。在本课程的后面,我们将详细了解如何确保使用正确的模型。

测试模型的性能

在本课程开始时,我们了解到,回归机器学习模型使用了三个主要性能指标:

现在,我们将看到如何为本教程中构建的模型计算这些指标中的每一个。在继续之前,请在Jupyter Notebook中运行以下import语句:

fromsklearnimportmetrics

平均绝对误差(MAE)

您可以使用以下语句在Python中计算平均绝对错误:

metrics.mean_absolute_error(y_test,predictions)

均方误差(MSE)

同样,您可以使用以下语句在Python中计算均方误差:

metrics.mean_squared_error(y_test,predictions)

均方根误差(RMSE)

与均值绝对误差和均方误差不同,scikit-learn实际上没有内置的方法来计算均方根误差。

幸运的是,它确实不需要。由于均方根误差只是均方根误差的平方根,因此您可以使用NumPy的sqrt方法轻松地进行计算:

np.sqrt(metrics.mean_squared_error(y_test,predictions))

本教程的完整代码

这是此Python线性回归机器学习教程的全部代码。您也可以在 此GitHub存储库中 查看它。

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassns%matplotlibinlineraw_data=pd.read_csv('Housing_Data.csv')x=raw_data[['Avg.AreaIncome','Avg.AreaHouseAge','Avg.AreaNumberofRooms','Avg.AreaNumberofBedrooms','AreaPopulation']]y=raw_data['Price']fromsklearn.model_selectionimporttrain_test_splitx_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3)fromsklearn.linear_modelimportLinearRegressionmodel=LinearRegression()model.fit(x_train,y_train)print(model.coef_)print(model.intercept_)pd.DataFrame(model.coef_,x.columns,columns=['Coeff'])predictions=model.predict(x_test)#plt.scatter(y_test,predictions)plt.hist(y_test-predictions)fromsklearnimportmetricsmetrics.mean_absolute_error(y_test,predictions)metrics.mean_squared_error(y_test,predictions)np.sqrt(metrics.mean_squared_error(y_test,predictions))

第2节:logistic回归

注意-如果到目前为止您已经在本教程中进行编码,并且已经建立了线性回归模型,则在继续之前,您需要打开一个新的Jupyter Notebook(其中没有代码)。

我们将在本教程中使用的数据集

泰坦尼克号数据集是非常著名的数据集,其中包含有关泰坦尼克号上乘客的特征。它通常用作logistic回归问题的入门数据集。

在本教程中,我们将结合泰坦尼克号数据集和Python logistic回归模型来预测乘客是否在泰坦尼克号坠机事故中幸免。

在 原来的泰坦尼克号数据集 是公开的上 Kaggle.com ,这是一个网站,主机的数据集和数据科学竞赛。

为了使您本课程的学生更轻松,我们将使用Titanic数据集的半清洁版本,这将节省您在数据清洁和处理上的时间。

实际上,已清理的Titanic数据集已可供您使用。您可以通过单击以下链接下载数据文件:

下载此文件后,在同一工作目录中打开 Jupyter Notebook ,我们可以开始构建 logistic回归模型。

我们将在本教程中使用的导入

和以前一样,本教程中将使用多个开源软件库。这是我通过Python Logistic回归模型进行编码时需要遵循的导入:

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineimportseabornassns

接下来,我们需要将Titanic数据集导入到我们的Python脚本中。

通过探索性数据分析了解我们的数据集

每个分类类别的普遍性

在使用机器学习技术对分类问题进行建模时,了解类别之间的比率始终是一个好主意。对于此特定问题,查看我们的训练数据中有多少幸存者与非幸存者是有用的。

一种简单的可视化方法是使用seabornplotcountplot。在此示例中,您可以使用以下Python代码创建适当的seasborn绘图:

sns.countplot(x='Survived',data=titanic_data)

这将生成以下图:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,与幸存者相比,非幸存者的发病率要高得多。

性别之间的成活率

比较相对于某些其他数据特征的生存率也很有用。例如,我们可以使用以下Python代码来比较Sex的Male和Female值之间的生存率:

sns.countplot(x='Survived',hue='Sex',data=titanic_data)

这将生成以下图:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,性别为男性的乘客比性别为女性的乘客更有可能是非幸存者。

旅客舱位之间的成活率

我们可以使用Pclass变量执行类似的分析,以查看哪个旅客类别最有(和最少)可能有幸存者。

这是执行此操作的代码:

sns.countplot(x='Survived',hue='Pclass',data=titanic_data)

这将生成以下图:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

从该图中最明显的观察结果是,当泰坦尼克号坠毁时,Pclass值为3的乘客-表示最便宜,最不豪华的第三等舱的乘客更有可能死亡。

从我们的数据集中删除空数据

首先,让我们检查数据集中包含缺失数据的位置。为此,请运行以下命令:

titanic_data.isnull()

这将生成一个布尔值的DataFrame,如果该单元格为空值,则该单元格包含True,否则为False。这是它的样子的图像:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

评估此数据集中缺失数据的一种更为有用的方法是创建快速可视化。为此,我们可以使用seaborn可视化库。这是快速命令,可用于使用seaborn库创建热图:

sns.heatmap(titanic_data.isnull(),cbar=False)

这是生成的可视化效果:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

在此可视化中,白线表示数据集中缺少的值。您会看到“年龄”和“机舱”列包含“泰坦尼克号”数据集中大部分丢失的数据。

特别是“年龄”列包含的缺失量很小,我们可以使用某种形式的数学来填充缺失数据。另一方面,机舱数据缺少足够的数据,因此我们有可能将其完全从模型中删除。

用其余数据集中的平均数据填充缺失数据的过程称为归因。现在,我们将使用插补来填充“年龄”列中的缺失数据。

估算的最基本形式是用整个数据集中的平均年龄值填充缺失的年龄数据。但是,有更好的方法。

我们将使用该乘客所属的特定Pclass乘客舱的平均Age值来填充缺少的Age值。要了解为什么这样做有用,请考虑以下箱线图:

sns.boxplot(titanic_data['Pclass'],titanic_data['Age'])

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,Pclass值为1(最昂贵的乘客舱)的乘客往往是最老的,而Pclass值为3(最便宜的乘客)的乘客往往是最年轻的。这是非常符合逻辑的,所以我们将使用的平均年龄不同范围内的值Pclass数据imputate我们丢失的数据年龄列。

对像泰坦尼克号数据集这样的数据集执行插补的最简单方法是构建自定义函数。首先,我们需要确定每个Pclass值的平均Age值。

#Pclassvalue1titanic_data[titanic_data['Pclass']==1]['Age'].mean()#Pclassvalue2titanic_data[titanic_data['Pclass']==2]['Age'].mean()#Pclass3titanic_data[titanic_data['Pclass']==2]['Age'].mean()

这是我们将用来估算缺少的Age变量的最终函数:

defimpute_missing_age(columns):age=columns[0]passenger_class=columns[1]ifpd.isnull(age):if(passenger_class==1):returntitanic_data[titanic_data['Pclass']==1]['Age'].mean()elif(passenger_class==2):returntitanic_data[titanic_data['Pclass']==2]['Age'].mean()elif(passenger_class==3):returntitanic_data[titanic_data['Pclass']==3]['Age'].mean()else:returnage

现在,该插补功能已经完成,我们需要将其应用于titanic_dataDataFrame中的每一行。Python的apply方法是一个出色的工具:

titanic_data['Age']=titanic_data[['Age','Pclass']].apply(impute_missing_age,axis=1)

既然我们已经对每一行执行了估算以处理丢失的Age数据,那么让我们研究一下原始箱形图:

sns.heatmap(titanic_data.isnull(),cbar=False)

您会发现我们的熊猫DataFrame的Age列中不再缺少任何数据!

您可能想知道为什么我们要花费大量时间专门处理“年龄”列中的丢失数据。这是因为考虑到年龄对大多数灾难和疾病生存的影响,在我们的数据集中,该变量可能具有很高的预测价值。

现在我们已经了解了该数据集的结构并删除了缺失的数据,让我们开始构建logistic回归机器学习模型。

建立logistic回归模型

现在是时候删除我们的logistic回归模型了。

删除缺少太多数据的列

首先,我们删除“Cabin”列。正如我们所提到的,此列中丢失数据的普遍性意味着对丢失数据进行估算是不明智的,因此我们将使用以下代码将其完全删除:

titanic_data.drop('Cabin',axis=1,inplace=True)

接下来,让我们使用pandasdropna()方法删除包含丢失数据的所有其他列:

titanic_data.dropna(inplace=True)

使用虚拟变量处理分类数据

我们需要处理的下一个任务是处理分类特征。即,我们需要找到一种方法来对非自然数值的观测值进行数值处理。

性别列就是一个很好的例子,该列具有两个值:Male和Female。同样,“登船”一栏包含一个字母,表示该乘客离开的城市。

为了解决这个问题,我们将创建伪变量。这些为非数值特征的每个类别分配一个数值。

幸运的是,pandas具有一个名为get_dummies()的内置方法,可轻松创建虚拟变量。该get_dummies方法确实有一个问题-它会在数据帧列中的每个值创建新列。

让我们考虑一个示例,以帮助您更好地理解这一点。如果我们在Age列上调用get_dummies()方法,则会得到以下输出:

pd.get_dummies(titanic_data['Sex'])

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,这将创建两个新列:female和male。这些列都将是彼此的完美预测,由于值0在雌性列指示的值1在雄性柱,反之亦然。

这称为多重共线性,它会大大降低算法的预测能力。要删除它,我们可以将参数drop_first = True添加到get_dummies方法中,如下所示:

pd.get_dummies(titanic_data['Sex'],drop_first=True)

现在,让我们为我们的虚拟变量列性别和走上列,并将它们分配给变量称为性和进发。

sex_data=pd.get_dummies(titanic_data['Sex'],drop_first=True)embarked_data=pd.get_dummies(titanic_data['Embarked'],drop_first=True)

还有就是要注意的一个重要的事情有关走上下面定义的变量。它有两列:Q和S,但是由于我们已经删除了另一列(C列),因此其余两列都不是彼此的完美预测变量,因此在修改后的新数据集中不存在多重共线性。

将虚拟变量添加到pandasDataFrame

Next we need to add oursexandembarkedcolumns to the>

您可以使用以下代码将这些数据列 连接 到现有的pandasDataFrame中:

titanic_data=pd.concat([titanic_data,sex_data,embarked_data],axis=1)

现在,如果您运行命令print(titanic_data.columns),那么Jupyter Notebook将生成以下输出:

Index(['PassengerId','Survived','Pclass','Name','Sex','Age','SibSp','Parch','Ticket','Fare','Embarked','male','Q','S'],dtype='object')

的存在男性,Q和S列显示,我们的数据被成功地连接起来。

从数据集中删除不必要的列

这意味着我们现在可以从DataFrame中删除原始的Sex和Embarked列。还有其他一些列(如Name,PassengerId,Ticket)无法预测泰坦尼克号的撞车幸存率,因此我们也将其删除。以下代码为我们处理了此问题:

titanic_data.drop(['Name','Ticket','Sex','Embarked'],axis=1,inplace=True)

如果您现在打印titanic_data.columns,那么Jupyter Notebook将生成以下输出:

Index(['Survived','Pclass','Age','SibSp','Parch','Fare','male','Q','S'],dtype='object'

DataFrame现在具有以下外观:

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

如您所见,该数据集中的每个字段现在都是数字,这使其成为logistic回归机器学习算法的理想候选者。

创建培训数据和测试数据

接下来,是时候将我们的titanic_data分为训练数据和测试数据了。和以前一样,我们将使用scikit-learn的内置功能来执行此操作。

首先,我们需要将我们的数据分为x值(我们将用于进行预测的数据)和y值(我们正在尝试预测的数据)。以下代码处理此问题:

y_data=titanic_data['Survived']x_data=titanic_data.drop('Survived',axis=1)

接下来,我们需要从scikit-learn导入train_test_split函数。以下代码执行此导入:

fromsklearn.model_selectionimporttrain_test_split

最后,我们可以结合使用train_test_split函数和列表解压缩来生成我们的训练数据和测试数据:

x_training_data,x_test_data,y_training_data,y_test_data=train_test_split(x_data,y_data,test_size=0.3)

请注意,在这种情况下,测试数据是参数test_size = 0.3指定的原始数据集的30%。

现在,我们为logistic回归模型创建了训练数据和测试数据。我们将在本教程的下一部分中训练我们的模型。

训练logistic回归模型

要训练我们的模型,我们首先需要使用以下命令从scikit-learn导入适当的模型:

fromsklearn.linear_modelimportLogisticRegression

接下来,我们需要通过实例化LogisticRegression对象的实例来创建模型:

model=LogisticRegression()

要训练模型,我们需要在刚刚创建的LogisticRegression对象上调用fit方法,并传入x_training_data和y_training_data变量,如下所示:

model.fit(x_training_data,y_training_data)

我们的模型现已训练完毕。我们将在本教程的下一部分中开始使用此模型进行预测。

使用我们的Logistic回归模型进行预测

让我们使用刚刚创建的模型logistic回归模型对测试数据进行一组预测。我们将这些预测存储在一个名为predictions的变量中:

predictions=model.predict(x_test_data)

我们已经做出了预测。接下来让我们检查模型的准确性。

测量Logistic回归机器学习模型的性能

scikit-learn具有一个出色的内置模块,称为分类_报告,可轻松衡量分类机器学习模型的性能。我们将使用此模块来评估我们刚刚创建的模型的性能。

首先,让我们导入模块:

fromsklearn.metricsimportclassification_report

接下来,让我们使用该模块为我们的logistic回归机器学习模块计算性能指标:

classification_report(y_test_data,predictions)

这是此命令的输出:

precisionrecallf1-scoresupport00.830.870.8516910.750.680.7298accuracy0.80267macroavg0.790.780.78267weightedavg0.800.800.80267

如果您有兴趣查看原始的混淆矩阵并手动计算性能指标,则可以使用以下代码进行操作:

fromsklearn.metricsimportconfusion_matrixprint(confusion_matrix(y_test_data,predictions))

这将产生以下输出:

[[14522][3070]]

本教程的完整代码

您可以在 GitHub存储库中 查看本教程的完整代码。还将其粘贴在下面以供您参考:

importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlineimportseabornassns#Importthedatasettitanic_data=pd.read_csv('titanic_train.csv')#Exploratorydataanalysissns.heatmap(titanic_data.isnull(),cbar=False)sns.countplot(x='Survived',data=titanic_data)sns.countplot(x='Survived',hue='Sex',data=titanic_data)sns.countplot(x='Survived',hue='Pclass',data=titanic_data)plt.hist(titanic_data['Age'].dropna())plt.hist(titanic_data['Fare'])sns.boxplot(titanic_data['Pclass'],titanic_data['Age'])#Imputationfunctiondefimpute_missing_age(columns):age=columns[0]passenger_class=columns[1]ifpd.isnull(age):if(passenger_class==1):returntitanic_data[titanic_data['Pclass']==1]['Age'].mean()elif(passenger_class==2):returntitanic_data[titanic_data['Pclass']==2]['Age'].mean()elif(passenger_class==3):returntitanic_data[titanic_data['Pclass']==3]['Age'].mean()else:returnage#ImputethemissingAgedatatitanic_data['Age']=titanic_data[['Age','Pclass']].apply(impute_missing_age,axis=1)#Reinvestigatemissingdatasns.heatmap(titanic_data.isnull(),cbar=False)#Dropnulldatatitanic_data.drop('Cabin',axis=1,inplace=True)titanic_data.dropna(inplace=True)#CreatedummyvariablesforSexandEmbarkedcolumnssex_data=pd.get_dummies(titanic_data['Sex'],drop_first=True)embarked_data=pd.get_dummies(titanic_data['Embarked'],drop_first=True)#AdddummyvariablestotheDataFrameanddropnon-numericdatatitanic_data=pd.concat([titanic_data,sex_data,embarked_data],axis=1)titanic_data.drop(['Name','PassengerId','Ticket','Sex','Embarked'],axis=1,inplace=True)#Printthefinalizeddatasettitanic_data.head()#Splitthedatasetintoxandydatay_data=titanic_data['Survived']x_data=titanic_data.drop('Survived',axis=1)#Splitthedatasetintotrainingdataandtestdatafromsklearn.model_selectionimporttrain_test_splitx_training_data,x_test_data,y_training_data,y_test_data=train_test_split(x_data,y_data,test_size=0.3)#Createthemodelfromsklearn.linear_modelimportLogisticRegressionmodel=LogisticRegression()#Trainthemodelandcreatepredictionsmodel.fit(x_training_data,y_training_data)predictions=model.predict(x_test_data)#Calculateperformancemetricsfromsklearn.metricsimportclassification_reportprint(classification_report(y_test_data,predictions))#Generateaconfusionmatrixfromsklearn.metricsimportconfusion_matrixprint(confusion_matrix(y_test_data,predictions))

总结

在本教程中,您学习了如何在Python中构建线性回归和logistic回归机器学习模型。

如果您想了解有关构建,培训和部署前沿机器学习模型的更多信息,我的电子书 实用机器学习 将教您如何使用实际项目构建9种不同的机器学习模型。

您可以将代码从电子书部署到GitHub或个人投资组合,以向潜在雇主展示。这本书将于8月3日发行, 现在可以50%的价格预订 !

这是您从本文中学到的内容的简短摘要:


雷锋字幕组 是由AI爱好者组成的志愿者翻译团队;团队成员有大数据专家、算法工程师、图像处理工程师、产品经理、产品运营、IT咨询人、在校师生;志愿者们来自IBM、AVL、Adobe、阿里、百度等知名企业,北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所。

了解字幕组请联系微信:tlacttlact

版权文章,未经授权禁止转载。详情见 转载须知 。

如何在 Python 中建立和训练线性和 logistic 回归 ML 模型?

全局中部横幅
贵州163

贵州163,163贵州人事考试信息网,163贵州事业单位考试信息网,贵州163人才信息招聘网,贵州人事考试信息网,贵州事业单位招聘网,163贵州招聘吧有最新招聘信息和最新考试信息,贵阳、遵义、安顺、六盘水、铜仁、黔南、黔东南、黔西南招聘考试信息及考试培训信息,公务员,事业单位招聘,教师招聘,特岗教师,贵州卫生人才招聘,国企招聘。

Aippt模板一键生成

泡泡糖办公是一款专业ppt模板下载网站,提供多种类型和风格的ppt模板、ppt素材、ppt课件等多种资源在线下载,支持ppt在线定制服务,有专业设计师针对需求定制个性化ppt模板。

雨燕直播NBA

雨燕体育提供雨燕直播NBA,NBA直播,NBA雨燕直播高清观看免费,NBA在线无插件、NBA赛程表、NBA战绩回放、NBA高清无插件播放,雨燕体育24小时不间断更新直播信号,打造最佳直播体验。

亚洲电力展

广州电力展由南方电网指导主办,南方电网数字传媒,广东省能源协会与广州博优会展联办的亚洲电力电工暨数字电网展览会、亚洲新型电力系统及储能展览会(简称亚洲电力展)将于2025年6月26-28广州举行。

日历官网

日历官网(rili.cn)是专业的日历网站,可以在手机、网站之间同步数据。同时还提供各种日历日程信息,包括新闻资讯,工具查询,天气预报,黄道吉日、农历、黄历、星座运程、体育赛程、电视节目等。

酱包装机

济南迅捷机械设备有限公司成立于2006年,专注于包装、灌装生产解决方案。2008年成立了济南东泰机械制造有限公司主攻包装机械设备、包装机器、灌装机械的设计、研发、生产制造,至此公司同时拥有“迅捷机械”和“东泰机械”两个工厂。主营产品为:食用油灌装机、辣椒酱类灌装机、真空旋盖机、液体灌装旋盖一体机...

苏州科联盈自动化系统有限公司

苏州科联盈公司作为中国氦检设备制造技术领先企业,长期以来主要为汽车行业客户提供专业的氦气泄漏检测设备。目前是上汽大众、蔚来、马自达、特斯拉等汽车主机厂体系内一级供应商。科联盈氦检设备已被法雷奥、马勒等客户列为氦检设备首选推荐供应商。

塑料网带

上海科沛机械设备有限公司专业研发生产塑料网带,塑料网链,模块网带,刮泥机链条,气浮机链条,非金属塑料链条,柔性链板,齿形链板,模块式塑料网带输送机,塑钢网带输送线,塑料网链,模块链网,模组带等输送设备和输送配件。

内蒙古呼和浩特市威羿特卫

威羿特卫保安服务有限公司是一家专业提供各类保安及安保服务的品牌企业,是合法经营人防技防保安业务的专业保安公司.咨询电话:0471-5986570

深圳皮肤病专科门诊部排行榜

深圳看皮肤病哪家好?深圳肤康【Tel:0755-26072727】是深圳市皮肤病专业诊疗机构,倡导中医辨证诊疗以及诊疗,形成肤康特有的皮肤病诊疗体系。

美元兑人民币汇率

即时汇率网提供全球160多种常见货币汇率实时查询、兑换换算服务,今日美元对人民币汇率,中国银行、工商银行、农业银行、建设银行、招商银行等银行今日外汇牌价汇率和美元/欧元/英镑/日元/港币/澳元/加元/韩元/泰铢等外币兑换人民币实时汇率。

全局底部横幅