人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试_第1页
人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试_第2页
人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试_第3页
人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试_第4页
人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能和机器学习之分类算法:K近邻算法(KNN):KNN在实际项目中的部署与测试1人工智能和机器学习之分类算法:K近邻算法(KNN)1.1简介与原理1.1.1K近邻算法的基本概念K近邻算法(K-NearestNeighbors,KNN)是一种基于实例的学习方法,用于分类和回归。在分类问题中,KNN通过计算待分类样本与训练集中所有样本的距离,找出距离最近的K个样本,然后根据这K个样本的类别来预测待分类样本的类别。KNN算法简单直观,易于理解和实现,但计算量大,特别是在高维空间中。1.1.2算法的工作原理KNN算法的工作流程如下:计算距离:对于给定的待分类样本,计算它与训练集中每个样本的距离。常用的距离度量有欧氏距离、曼哈顿距离等。选择最近的K个样本:从计算出的距离中,选择距离最小的K个样本。类别决策:根据这K个样本的类别,采用多数表决的方式决定待分类样本的类别。示例代码:KNN分类fromsklearn.datasetsimportload_iris

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.neighborsimportKNeighborsClassifier

importnumpyasnp

#加载数据

data=load_iris()

X=data.data

y=data.target

#划分数据集

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)

#创建KNN分类器

knn=KNeighborsClassifier(n_neighbors=3)

#训练模型

knn.fit(X_train,y_train)

#预测

y_pred=knn.predict(X_test)

#计算准确率

accuracy=np.mean(y_pred==y_test)

print(f"Accuracy:{accuracy}")1.1.3K值的选择与影响K值的选择对KNN算法的性能有显著影响。较小的K值(如K=1)会导致模型过拟合,因为此时模型对噪声点非常敏感。较大的K值可以减少模型对噪声的敏感度,但可能会导致欠拟合,因为此时模型可能将不同类别的样本也考虑在内。选择K值时,通常会通过交叉验证来确定最佳的K值。示例:K值对分类结果的影响fromsklearn.model_selectionimportcross_val_score

#使用不同的K值进行交叉验证

k_values=list(range(1,31))

cv_scores=[]

forkink_values:

knn=KNeighborsClassifier(n_neighbors=k)

scores=cross_val_score(knn,X_train,y_train,cv=5,scoring='accuracy')

cv_scores.append(scores.mean())

#找出最佳K值

optimal_k=k_values[cv_scores.index(max(cv_scores))]

print(f"Theoptimalnumberofneighborsis{optimal_k}")通过上述代码,我们可以观察到不同K值下模型的准确率变化,从而选择最佳的K值。在实际应用中,K值的选择需要根据具体问题和数据集的特性来决定。2数据预处理2.1特征缩放的重要性在机器学习中,特征缩放(FeatureScaling)是一个关键步骤,尤其是在使用基于距离的算法如K近邻(KNN)时。特征缩放确保所有特征在相同尺度上,防止某些特征因数值范围大而主导距离计算,影响模型的准确性。例如,假设我们有两个特征,一个是收入(范围从1000到100000),另一个是年龄(范围从1到100)。在计算距离时,收入特征的数值差异将远大于年龄特征,即使年龄特征在决策中可能更重要。2.1.1示例代码使用Python的scikit-learn库中的StandardScaler进行特征缩放:fromsklearn.preprocessingimportStandardScaler

importnumpyasnp

#假设我们有以下数据

data=np.array([[10000,30],

[20000,25],

[30000,35],

[40000,40],

[50000,20]])

#创建StandardScaler对象

scaler=StandardScaler()

#拟合并转换数据

scaled_data=scaler.fit_transform(data)

#打印缩放后的数据

print(scaled_data)2.1.2描述上述代码中,我们首先导入了StandardScaler和numpy库。然后,我们创建了一个StandardScaler对象,并使用fit_transform方法对数据进行拟合和转换。StandardScaler将每个特征缩放到均值为0,标准差为1的尺度上,这样可以确保所有特征在计算距离时具有相同的重要性。2.2数据清洗与特征选择数据清洗是预处理中的另一个重要步骤,它涉及处理缺失值、异常值和重复数据。特征选择则帮助我们识别哪些特征对模型预测最有价值,从而提高模型的效率和准确性。2.2.1示例代码使用Python的pandas库进行数据清洗和特征选择:importpandasaspd

#创建一个示例数据集

data={'Income':[10000,20000,30000,40000,50000,None],

'Age':[30,25,35,40,20,30],

'Gender':['M','F','M','F','M','F']}

df=pd.DataFrame(data)

#处理缺失值

df['Income'].fillna(df['Income'].mean(),inplace=True)

#删除重复数据

df.drop_duplicates(inplace=True)

#特征选择

features=df[['Income','Age']]

#打印处理后的数据

print(features)2.2.2描述在本例中,我们首先创建了一个包含缺失值和重复数据的pandas数据框。然后,我们使用fillna方法用平均收入填充缺失的收入值,使用drop_duplicates方法删除重复的行。最后,我们选择了Income和Age两个特征,准备用于模型训练。2.3处理类别与数值型数据在机器学习中,模型通常需要数值输入。因此,处理类别数据(如性别、颜色等)需要将其转换为数值形式。2.3.1示例代码使用pandas的get_dummies方法将类别数据转换为数值数据:#继续使用上述数据集

#使用get_dummies方法处理类别特征

gender_dummies=pd.get_dummies(df['Gender'],prefix='Gender')

#将转换后的类别特征与数值特征合并

df=pd.concat([df,gender_dummies],axis=1)

#删除原始的类别特征

df.drop('Gender',axis=1,inplace=True)

#打印处理后的数据

print(df)2.3.2描述get_dummies方法将Gender列转换为虚拟变量(DummyVariables),即为每个类别创建一个新列,用1或0表示该类别是否存在。然后,我们将转换后的类别特征与数值特征合并,并删除原始的Gender列,以确保数据集只包含数值特征,适合机器学习模型的输入。通过以上步骤,我们可以确保数据集在用于K近邻算法或其他机器学习模型之前,已经进行了适当的预处理,包括特征缩放、数据清洗和特征选择,以及将类别数据转换为数值数据。这些预处理步骤对于提高模型的性能和准确性至关重要。3人工智能和机器学习之分类算法:K近邻算法(KNN)-模型训练与评估3.1构建KNN模型的步骤在构建K近邻算法(KNN)模型时,我们遵循以下步骤:数据准备:收集并预处理数据,确保数据质量,包括缺失值处理、数据标准化等。选择K值:K值的选择对模型性能至关重要。较小的K值对噪声敏感,较大的K值则可能包含更多无关信息。距离度量:确定如何计算样本之间的距离,常用的距离度量有欧氏距离、曼哈顿距离等。模型训练:KNN算法的“训练”实际上就是将数据集存储起来,因为预测时需要使用整个数据集。预测:对于新的输入数据,计算其与数据集中所有样本的距离,选取距离最近的K个样本,根据这些样本的类别进行投票,类别得票最多的即为预测结果。评估:使用测试集评估模型的性能,常见的评估指标有准确率、召回率、F1分数等。3.1.1示例代码假设我们有以下数据集:特征1特征2类别1.01.1A1.01.0A0.10.2B0.00.1B我们将使用Python的scikit-learn库构建KNN模型:fromsklearn.model_selectionimporttrain_test_split

fromsklearn.preprocessingimportStandardScaler

fromsklearn.neighborsimportKNeighborsClassifier

fromsklearn.metricsimportclassification_report,confusion_matrix

#数据准备

X=[[1.0,1.1],[1.0,1.0],[0.1,0.2],[0.0,0.1]]

y=['A','A','B','B']

#划分数据集

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)

#数据标准化

scaler=StandardScaler()

scaler.fit(X_train)

X_train=scaler.transform(X_train)

X_test=scaler.transform(X_test)

#构建KNN模型

knn=KNeighborsClassifier(n_neighbors=3)

knn.fit(X_train,y_train)

#预测

y_pred=knn.predict(X_test)

#评估

print(confusion_matrix(y_test,y_pred))

print(classification_report(y_test,y_pred))3.2交叉验证与模型选择交叉验证是一种评估模型性能的方法,通过将数据集分为几个子集,轮流将其中一个子集作为测试集,其余子集作为训练集,可以得到模型在不同数据集上的性能,从而更准确地评估模型的泛化能力。3.2.1示例代码使用scikit-learn的cross_val_score函数进行交叉验证:fromsklearn.model_selectionimportcross_val_score

#交叉验证

scores=cross_val_score(knn,X,y,cv=5)

print("Cross-validationscores:",scores)

print("Averagescore:",scores.mean())通过比较不同K值下的交叉验证得分,可以进行模型选择,找到最优的K值。3.3评估指标与性能分析评估分类模型的性能时,我们通常使用以下指标:准确率:分类正确的样本数占总样本数的比例。召回率:分类器正确识别出的正样本数占所有实际正样本数的比例。精确率:分类器正确识别出的正样本数占所有被分类器识别出的正样本数的比例。F1分数:精确率和召回率的调和平均数,是评估分类器性能的综合指标。3.3.1示例代码使用scikit-learn的classification_report函数计算评估指标:#评估指标

print(classification_report(y_test,y_pred))输出结果将包括每个类别的精确率、召回率、F1分数和支持数(该类别的实际样本数)。通过这些指标,我们可以全面分析模型的性能,识别模型在哪些类别上表现不佳,从而进行相应的调整和优化。例如,如果某个类别的召回率较低,可能需要调整K值或尝试其他特征工程方法来提高模型对这一类别的识别能力。以上就是K近邻算法在实际项目中部署与测试的详细步骤和示例代码,希望对您有所帮助。在实际应用中,还需要根据具体问题和数据集的特点,灵活调整模型参数和评估指标,以达到最佳的分类效果。4KNN算法的优化4.1距离度量的选择K近邻算法(KNN)的性能很大程度上依赖于所选择的距离度量方法。不同的距离度量方法可以影响算法的准确性和效率。在KNN中,最常用的距离度量方法是欧氏距离(EuclideanDistance),但还有其他方法如曼哈顿距离(ManhattanDistance)、闵可夫斯基距离(MinkowskiDistance)和余弦相似度(CosineSimilarity)等。4.1.1欧氏距离欧氏距离是最直观的距离度量方法,它计算两个点在多维空间中的直线距离。对于两个n维向量x=x1d4.1.2曼哈顿距离曼哈顿距离计算两个点在多维空间中沿轴方向的总距离。对于两个n维向量x和y,曼哈顿距离定义为:d4.1.3余弦相似度余弦相似度用于测量两个非零向量之间的角度,适用于高维空间中的数据。对于两个向量x和y,余弦相似度定义为:cos4.1.4代码示例假设我们有以下数据集:data=[

[1,2],

[2,3],

[3,1],

[4,2],

[5,4]

]

query_point=[3,3]我们可以使用不同的距离度量方法来计算查询点与数据集中每个点的距离:importnumpyasnp

#欧氏距离

defeuclidean_distance(x,y):

returnnp.sqrt(np.sum((x-y)**2))

#曼哈顿距离

defmanhattan_distance(x,y):

returnnp.sum(np.abs(x-y))

#余弦相似度

defcosine_similarity(x,y):

returnnp.dot(x,y)/(np.linalg.norm(x)*np.linalg.norm(y))

#计算距离

distances=[]

forpointindata:

distances.append((point,euclidean_distance(point,query_point)))

distances.append((point,manhattan_distance(point,query_point)))

distances.append((point,cosine_similarity(point,query_point)))

#打印距离

fordindistances:

print(d)4.2权重分配策略在KNN中,权重分配策略可以提高算法的性能。通常,距离查询点更近的邻居点对分类结果的影响更大。因此,可以为每个邻居点分配一个权重,这个权重与距离成反比。常见的权重分配策略包括:4.2.1倒数权重w4.2.2高斯权重w其中,di是查询点与第i个邻居点的距离,σ4.2.3代码示例假设我们使用倒数权重策略,可以修改上述代码示例中的KNN分类函数:#倒数权重

definverse_distance_weighting(distances,k):

weights=[]

foriinrange(len(distances)):

ifdistances[i][1]==0:

weights.append(0)

else:

weights.append(1/distances[i][1])

#对权重进行排序并选择前k个

sorted_weights=sorted(zip(distances,weights),key=lambdax:x[1],reverse=True)

top_k_weights=sorted_weights[:k]

returntop_k_weights

#使用倒数权重策略

top_k=inverse_distance_weighting(distances,3)

print(top_k)4.3算法的效率提升KNN算法在大数据集上的效率较低,因为需要计算查询点与数据集中每个点的距离。为了提高效率,可以采用以下策略:4.3.1KD树KD树是一种多维数据的树形数据结构,可以快速查找最近邻点。通过构建KD树,可以减少需要计算距离的点的数量。4.3.2索引使用索引可以加速数据集的搜索过程。例如,可以使用scikit-learn库中的BallTree或KDTree类来构建索引。4.3.3代码示例使用scikit-learn库中的KDTree类来构建索引并加速KNN分类:fromsklearn.neighborsimportKDTree

#构建KD树

tree=KDTree(data)

#查询最近的k个邻居

distances,indices=tree.query([query_point],k=3)

print(distances)

print(indices)通过以上优化策略,可以显著提高KNN算法在实际项目中的性能和效率。在选择距离度量方法和权重分配策略时,应根据具体问题和数据集的特性进行选择。同时,利用KD树和索引可以有效减少计算量,提高算法的运行速度。5人工智能和机器学习之分类算法:K近邻算法(KNN)在实际项目中的部署与测试5.1实际项目部署5.1.1选择合适的开发环境在部署K近邻算法(KNN)到实际项目中时,选择一个合适的开发环境至关重要。这不仅涉及到开发工具的选择,还包括了运行环境的配置,以确保模型能够高效、稳定地运行。以下是一些推荐的开发环境:Python环境:Python是机器学习领域最常用的编程语言之一,其丰富的库支持,如scikit-learn、numpy和pandas,使得KNN算法的实现和部署变得简单。虚拟环境:使用如conda或virtualenv创建虚拟环境,可以避免不同项目之间的库版本冲突,确保KNN模型在特定的环境中稳定运行。服务器环境:对于生产环境,推荐使用如Ubuntu或CentOS的Linux系统,因为它们提供了更好的性能和稳定性。同时,考虑使用Docker容器化技术,可以轻松地在不同的服务器上部署和运行模型。示例:创建Python虚拟环境#创建虚拟环境

python3-mvenvmy_knn_env

#激活虚拟环境

sourcemy_knn_env/bin/activate

#安装必要的库

pipinstallscikit-learnnumpypandasflask5.1.2模型的部署流程部署KNN模型到实际项目中,通常遵循以下流程:模型训练:使用训练数据集训练KNN模型。模型保存:将训练好的模型保存到文件中,以便在部署时加载。模型加载:在部署环境中加载模型。API设计:设计一个API,使得模型可以接收输入数据并返回预测结果。服务化:将API封装成服务,可以是Web服务或微服务,以便其他应用或系统调用。测试:对部署的服务进行测试,确保其正确性和性能。示例:使用scikit-learn训练和保存KNN模型fromsklearn.neighborsimportKNeighborsClassifier

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.datasetsimportload_iris

importjoblib

#加载数据

data=load_iris()

X,y=data.data,data.target

#划分数据集

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)

#创建KNN模型

knn=KNeighborsClassifier(n_neighbors=3)

#训练模型

knn.fit(X_train,y_train)

#保存模型

joblib.dump(knn,'knn_model.pkl')5.1.3服务化与API设计将KNN模型服务化,通常需要设计一个API,以便模型可以接收外部数据并返回预测结果。使用如Flask或Django的Web框架可以轻松实现这一目标。示例:使用Flask设计KNN模型的APIfromflaskimportFlask,request,jsonify

importjoblib

importnumpyasnp

app=Flask(__name__)

#加载模型

knn_model=joblib.load('knn_model.pkl')

@app.route('/predict',methods=['POST'])

defpredict():

#获取输入数据

data=request.get_json()

input_data=np.array(data['input']).reshape(1,-1)

#预测

prediction=knn_model.predict(input_data)

#返回结果

returnjsonify({'prediction':int(prediction[0])})

if__name__=='__main__':

app.run(debug=True)测试API测试API的正确性和性能是部署过程中的重要步骤。可以使用如Postman的工具或编写自动化测试脚本来进行测试。importrequests

#测试数据

test_data={'input':[5.1,3.5,1.4,0.2]}

#发送请求

response=requests.post('http://localhost:5000/predict',json=test_data)

#打印结果

print(response.json())通过上述步骤,可以确保KNN模型在实际项目中被正确部署和测试,从而为用户提供准确的分类预测服务。6模型测试与维护6.1单元测试与集成测试6.1.1单元测试单元测试是软件开发中的一个关键步骤,它确保代码的每个部分都能独立正确地运行。在机器学习项目中,单元测试可以应用于数据预处理、特征工程、模型训练和预测等各个阶段。例如,测试数据清洗函数是否能正确处理缺失值,或测试模型预测函数是否能返回预期的输出类型。示例:测试数据预处理函数importunittest

importpandasaspd

fromsklearn.imputeimportSimpleImputer

#假设我们有一个数据预处理函数,用于处理缺失值

defpreprocess_data(data):

"""

使用中位数填充数据集中的缺失值。

"""

imputer=SimpleImputer(strategy='median')

returnpd.DataFrame(imputer.fit_transform(data),columns=data.columns)

classTestPreprocessing(unittest.TestCase):

deftest_preprocess_data(self):

"""

测试preprocess_data函数是否能正确处理包含缺失值的数据集。

"""

data=pd.DataFrame({

'A':[1,2,None,4],

'B':[5,None,7,8]

})

expected=pd.DataFrame({

'A':[1,2,2.5,4],

'B':[5,6.5,7,8]

})

result=preprocess_data(data)

pd.testing.assert_frame_equal(result,expected)

if__name__=='__main__':

unittest.main()6.1.2集成测试集成测试关注的是不同组件之间的交互。在机器学习项目中,这可能意味着测试数据预处理、模型训练和预测流程的连贯性。例如,确保预处理后的数据能正确地输入到模型中,模型训练后能正确地进行预测。示例:测试模型训练和预测流程importunittest

fromsklearn.datasetsimportload_iris

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.neighborsimportKNeighborsClassifier

classTestModelPipeline(unittest.TestCase):

deftest_model_pipeline(self):

"""

测试从数据加载、预处理、模型训练到预测的整个流程。

"""

#加载数据

iris=load_iris()

X,y=iris.data,iris.target

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)

#模型训练

model=KNeighborsClassifier(n_neighbors=3)

model.fit(X_train,y_train)

#预测

predictions=model.predict(X_test)

#检查预测结果的形状是否与测试数据的标签形状一致

self.assertEqual(predictions.shape[0],y_test.shape[0])

if__name__=='__main__':

unittest.main()6.2性能监控与调优性能监控是确保模型在部署后持续表现良好的关键。这包括监控模型的预测准确率、响应时间和资源消耗。调优则是在模型性能不佳时,调整模型参数或优化代码以提高效率。6.2.1监控模型性能在生产环境中,可以使用日志记录和监控工具来跟踪模型的性能指标。例如,使用Prometheus和Grafana来可视化模型的准确率和响应时间。示例:使用Prometheus监控模型响应时间fromprometheus_clientimportstart_http_server,Summary

importtime

#创建一个Summary类型的指标,用于记录模型预测的响应时间

PREDICTION_TIME=Summary('prediction_time','Timespentformodelprediction')

#模型预测函数

defpredict(features):

"""

使用模型进行预测,并记录响应时间。

"""

start_time=time.time()

#假设model是一个已经训练好的KNN模型

prediction=model.predict(features)

PREDICTION_TIME.observe(time.time()-start_time)

returnprediction

#启动PrometheusHTTP服务器

start_http_server(8000)6.2.2调优模型调优可能涉及调整模型参数、优化数据预处理步骤或改进特征选择。例如,通过网格搜索调整KNN模型的邻居数量,以找到最佳的模型配置。示例:使用网格搜索调优KNN模型fromsklearn.model_selectionimportGridSearchCV

#定义要搜索的参数网格

param_grid={'n_neighbors':[1,3,5,7,9]}

#创建KNN模型实例

knn=KNeighborsClassifier()

#使用网格搜索进行调优

grid_search=GridSearchCV(knn,param_grid,cv=5)

grid_search.fit(X_train,y_train)

#输出最佳参数

print("Bestparameters:",grid_search.best_params_)6.3模型的更新与维护模型在部署后可能需要定期更新,以适应数据分布的变化或提高预测性能。维护则包括确保模型的稳定运行,处理可能出现的错误和异常。6.3.1更新模型更新模型可能涉及重新训练模型,使用新收集的数据或调整模型参数。例如,定期收集新的数据点,用于重新训练KNN模型。示例:使用新数据更新KNN模型#假设new_data是新收集的数据

new_data=pd.read_csv('new_data.csv')

#数据预处理

new_data=preprocess_data(new_data)

#更新模型

model.partial_fit(new_data,new_labels)6.3.2维护模型维护模型包括监控模型的运行状态,处理异常和错误,以及确保模型的资源使用不会超出限制。例如,设置异常处理机制,当模型预测失败时,记录错误并尝试恢复。示例:异常处理机制try:

predictions=model.predict(X_test)

exceptExceptionase:

#记录错误

print("Errorduringprediction:",e)

#尝试恢复,例如重新加载模型或使用默认预测

model=load_model('model.pkl')

predictions=model.predict(X_test)以上示例和说明详细介绍了在实际项目中如何进行模型测试、性能监控与调优,以及模型的更新与维护,确保了机器学习模型的稳定性和预测性能。7人工智能和机器学习之分类算法:K近邻算法(KNN)在实际项目中的应用7.1案例分析7.1.1手写数字识别K近邻算法(KNN)在手写数字识别中是一种直观且有效的分类方法。通过比较输入图像与训练集中图像的相似度,KNN可以预测输入图像代表的数字。下面是一个使用Python和scikit-learn库实现手写数字识别的示例。数据准备我们将使用MNIST数据集,这是一个包含手写数字的大型数据库,常用于训练各种图像处理系统。fromsklearn.datasetsimportfetch_openml

fromsklearn.model_selectionimporttrain_test_split

fromsklearn.preprocessingimportStandardScaler

#加载MNIST数据集

mnist=fetch_openml('mnist_784',version=1)

X,y=mnist['data'],mnist['target']

#数据预处理

scaler=StandardScaler()

X_scaled=scaler.fit_transform(X)

#划分训练集和测试集

X_train,X_test,y_train,y_test=train_test_split(X_scaled,y,test_size=0.2,random_state=42)模型训练与预测使用KNN模型进行训练和预测。fromsklearn.neighborsimportKNeighborsClassifier

#创建KNN分类器

knn=KNeighborsClassifier(n_neighbors=3)

#训练模型

knn.fit(X_train,y_train)

#预测

y_pred=knn.predict(X_test)性能评估评估模型的准确率。fromsklearn.metricsimportaccuracy_score

#计算准确率

accuracy=accuracy_score(y_test,y_pred)

print(f'准确率:{accuracy}')7.1.2客户分类与市场细分KNN算法在客户分类和市场细分中可以帮助企业识别不同类型的客户,从而制定更有效的市场策略。以下是一个使用KNN进行客户分类的示例。数据准备假设我们有一个包含客户年龄、收入和购买频率的数据集。importpandasaspd

fromsklearn.preprocessingimportStandardScaler

#创建示例数据

data={

'Age':[25,30,35,40,45,50,55,60],

'Income':[50000,60000,70000,80000,90000,100000,110000,120000],

'Purchase_Frequency':[1,2,3,4,5,6,7,8],

'Customer_Type':['A','A','B','B','C','C','D','D']

}

df=pd.DataFrame(data)

#数据预处理

scaler=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论