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 模型?

全局中部横幅
汇图网,国内领先的正版商业图库,原创作品交易平台

汇图网,国内领先的正版商业图库,原创作品交易平台,中国版权协会理事单位.汇聚众多优秀摄影师、设计师,提供海量可授权商业使用的高清正版摄影图片、设计素材.

天气网站导航大全

LOL网址导航网是专业的上网导航网站,精心收录各类优质热门网站信息,同时提供天气、快递、违章等各种生活便民查询工具网址,为您提供安全便捷的上网导航服务,现已被众多网友设为上网主页,网址导航大全首选LOL网址导航.

襄阳井盖,襄阳井盖批发,球墨铸铁井盖厂家推荐襄阳鑫永信合道路设施有限公司经久耐用

襄阳鑫永信合道路设施有限公司是襄阳井盖批发,襄阳井盖厂家,生产襄阳井盖,襄阳球墨井盖,球墨铸铁井盖,污水井盖,复合井盖,旋转井盖,铸铁井盖,玻璃钢井盖,复合高分子井盖,不锈钢井盖,国标井盖,十防井盖,雨水篦子,雨水盖板,检查井等广泛用于市政.建筑.通讯.电力.供水.煤气.化工等领域及房地产小区的各类下水管道检查井.公司可以按照客户的要求定做铸件

管道疏通

投下水APP专业提供管道疏通,清理化粪池,清理污水池,清理隔油池,高压疏通管道,高压清洗管道等本地信息,满足人们的本地生活服务需求。

聚神铺导航

聚神铺导航是一个聚合全网免费实用的网址大全,专注宝藏工具,在线影视,动漫大全,免费音乐下载,免费小说网,绿色软件等资源网站分享.非常全面的网址导航!

山东车市

山东车市-sdcheshi.com-是集山东汽车最新动态,汽车导购,汽车行情,试驾测评及维权为一体的专业汽车门户!

华立创机电官网

华立创机电在惠州专注于TCG电机、OCG电机、各类马达、水泵、轴承、五金配件、机电设备的生产和销售,公司拥有自己的独立品牌机电品牌,咨询热线13413163411。

湖南弘一律师事务所

湖南弘一律师事务所湖南弘一律师服务集团由湖南师范大学法学院发起成立,创建于2008年,下设律师事务所、知识产权代理公司、破产清算公司、企业顾问有限公司、法帮信息咨询有限公司、投资咨询有限公司、司法培训学校等七家独立法人机构。现有工作人员150余人,其中职业律师138人,实习

佛山市派色工业设计有限公司

专注产品设计,从产品外观、结构、包装、到样机验证等一体化服务,电话:0757-22175000;邮箱:info@pinservice.net;公司位于“广东工业设计中心”的顺德北滘。佛山市派色工业设计有限公司---专注于产品外观设计,产品结构设计,图形图案设计,视觉动画设计等,受到广东,顺德,佛山等地区的众多客户认可,欢迎来电咨询洽谈!公司致力于让”佛山产品设计”,“顺德产品设计”,“顺德家电设计”成为广东的一张新名片。

国际国内铁路海运国际海运集装箱运输知名企业金陵国际货运公司常州国际海运空运铁路运输出口到日本海运常州国际海运外贸出口常州国际货运代理常州无锡镇江泰州国际海运价格海运费查询常州到昆明贵阳成都西安银川乌鲁木齐哈尔滨太原石家庄南宁重庆包头西宁兰州呼和浩特火车铁路运输铁路货运铁路物流铁运常州国际物流国际货代常州无锡镇江泰州国际海运价格海运费查询常州国际空运常州无锡镇江泰州国际货运铁路运输到昆明贵阳成都西安银川乌鲁木齐哈尔滨太原石家庄南宁重庆西宁兰州包头呼和浩特火车铁路运输铁路货运铁路物流铁运如皋靖江阴丹阳扬中国际海运日本海运靖江阴丹阳扬中如皋铁路运输火车货运物流国际海运价格查询南通如皋靖江阴丹阳扬中国际海运姜堰海安如皋国际海运价格靖江阴丹阳南通如皋国际物流铁路运输

全国知名挂牌货代公司金陵国际货运代理是上海股交中心的【挂牌企业】,是工商部门的【AAA级诚信企业】,电话:4006246768,报价快运价低。业务:国际国内铁路海运国际海运集装箱运输知名企业金陵国际货运公司常州国际海运空运铁路运输出口到日本海运常州国际海运外贸出口常州国际货运代理常州无锡镇江泰州国际海运价格海运费查询常州到昆明贵阳成都西安银川乌鲁木齐哈尔滨太原石家庄南宁重庆包头西宁兰州呼和浩特火车铁路运输铁路货运铁路物流铁运常州国际物流国际货代常州无锡镇江泰州国际海运价格海运费查询常州国际空运常州无锡镇江泰州国际货运铁路运输到昆明贵阳成都西安银川乌鲁木齐哈尔滨太原石家庄南宁重庆西宁兰州包头呼和浩特火车铁路运输铁路货运铁路物流铁运如皋靖江阴丹阳扬中国际海运日本海运靖江阴丹阳扬中如皋铁路运输火车货运物流国际海运价格查询南通如皋靖江阴丹阳扬中国际海运姜堰海安如皋国际海运价格靖江阴丹阳南通如皋国际物流铁路运输

全局底部横幅