Excel如何設置動態求和 Excel設置動態求和方法
886
2025-03-31
在用戶終端PC上打開瀏覽器,用戶在地址欄中輸入“https://console.huaweicloud.com/naie/”,進入AI市場。單擊界面右上角的“登錄”,進入登錄界面。
輸入賬號名和密碼。
單擊“登錄”,進入AI市場。
依次選擇“AI服務 > 平臺服務 > 訓練平臺 > 模型訓練服務”,進入模型訓練服務介紹頁面。
點擊“進入服務”
在數據集哪里點擊“查看全部”
點擊創建
填入以下
“數據來源”選擇“本地上傳”:
選擇本地的磁盤數據(路徑:https://bbs.huaweicloud.com/forum/thread-56568-1-1.html),然后點擊“創建”。
分析數據:
分析數據集:
點擊菜單欄特征工程,進入特征工程頁面:
點擊特征處理按鈕“i”進行特征工程創建
如果沒有實例,就創建一個新的實例
創建完成后,點擊進入編輯環境
參數名稱
參數說明
特征工程名
特征工程的名稱。可以在創建特征工程時配置。
開發平臺
特征工程處理數據集的計算平臺。
l JupyterLab
l 舊版體驗式開發
環境信息
資源核數。
數據集
數據集路徑。
創建人
創建特征工程的用戶。
創建時間
特征工程創建的時間。
簡介
特征工程的描述。可以在創建特征工程時配置。
根據名稱搜索特征工程。
特征工程詳情。
進入特征工程編輯頁面,執行特征處理操作。
導出特征處理腳本到用戶本地。
復制特征工程。
刪除特征工程。
選擇python3,點擊
官方給的是綁定數據,但是由于版本的升級,我們選擇“選擇數據”進行數據的綁定即可
一下步
選擇自定義操作
先將自定義操作里面的代碼清空,后復制如下代碼后粘貼,然后點擊運行,(最好每做一步都點擊運行,這樣能檢測出來哪里出錯~)
算法代碼如下:
I
mport pandas as pd
data = dataflow.to_pandas_dataframe()
# Your code here
#去掉列名
data = data.loc[1:]
data.sort_values(['disk_sn'], inplace=True)
# 只包含一個值的列,無用
cols_only_one_value = data.nunique().to_frame( ? name='num').query('num==1').index.tolist()
# 保留的列
cols_keep = [i for i in data if i not in ? cols_only_one_value]
# 硬盤smart特征列
cols_smart = [i for i in cols_keep if ? i.startswith('smart')]
#特征選擇
colums = cols_smart+['capacity_bytes','failure','disk_sn']
processed_data = data[colums]
dataflow = ? data_flow.create_dataflow_from_df(processed_data) #@return ? {"type":"dataflow","attrs":{"source":"dataframe"}}
下一步:
選擇數據集:DATASET,數據集實例:processed_disk_data,與原始數據集DISK-data不同名。
運行完成后點擊保存
執行代碼同jupyter類似,可單步執行,也可全量代碼一起執行。
單步執行:
全量執行:
生成訓練數據
點擊執行特診工程之后,返回數據集界面,查看數據集,我們發現生成了清洗后的新數據集了。新數據集的來源是FEATURE,代表著是特征工程生成的數據集。
下一步:點擊模型訓練
耐心等待~3-7分鐘
創建完成
進入編輯環境
點擊編輯進入編輯環境進行訓練代碼的準備。
先將里面的代碼清空,后復制如下代碼后粘貼,然后點擊運行,(最好每做一步都點擊運行,這樣能檢測出來哪里出錯~)
# -*- coding: utf-8 -*-
from __future__ import print_function
from sklearn.model_selection import cross_val_score, train_test_split
from sklearn.metrics import confusion_matrix, accuracy_score, roc_curve
from naie.metrics import report
from naie.datasets import get_data_reference
from naie.context import Context
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import lightgbm as lgb
import os
import pickle
# naie sdk主要用于文件、路徑、日志等操作,詳見訓練平臺又上角問號處幫助中心內sdk文檔說明
def load_dataset(dataset, dataset_entity):
'''
從數據集中加載數據為DataFrame
'''
data_reference = get_data_reference(
dataset=dataset, dataset_entity=dataset_entity)
df = data_reference.to_pandas_dataframe()
return df
def model_fn():
model = lgb.LGBMClassifier(random_state=1)
return model
def train(x_train, y_train, model):
model.fit(x_train, y_train, categorical_feature=cate_cols)
def save_model(model):
"""
模型存儲的固定路徑,生成的pkl文件要與推理代碼predict.py中的路徑對應
"""
model_path = os.path.join(Context.get_model_path(), 'model.pkl')
with open(model_path, 'wb') as ff:
pickle.dump(model, ff)
def save_features(features):
"""
模型存儲的固定路徑,生成的pkl文件要與推理代碼predict.py中的路徑對應
"""
features_path = os.path.join(Context.get_model_path(), 'features.pkl')
with open(features_path, 'wb') as ff:
pickle.dump(features, ff)
def score_model(x_validation, y_validation, model):
"""
返回驗證得分并通過logs保存在訓練任務中
"""
score = accuracy_score(y_validation, model.predict(x_validation))
with report(True) as logs:
logs.log_property("score", score)
return score
def main():
# dataset dataset_entity需要修改為項目數據集對應的參數
data = load_dataset(dataset="DATASET", dataset_entity="processed_disk_data")
features = data.columns.tolist()[:-2]
#因為硬盤容量的數值較大,可以先轉化成類別特征的數據
data['capacity_bytes'] = data['capacity_bytes'].astype('category')
# 按照硬盤劃分訓練集和測試集
train_disks, test_disks = train_test_split(
data['disk_sn'].unique(), shuffle=True, random_state=2019, test_size=0.2)
train_data = data[data['disk_sn'].isin(train_disks)]
test_data = data[data['disk_sn'].isin(test_disks)]
#創建模型
model = lgb.LGBMClassifier(random_state=1,objective = 'binary',num_leaves = 64,n_estimators = 1000,is_unbalance=True)
# 交叉驗證
cv_score = cross_val_score(
model, train_data[features], train_data.failure, cv=5, scoring='accuracy', fit_params={'categorical_feature': ['capacity_bytes']})
print(f'CV accuracy score: {cv_score}')
model.fit(train_data[features], train_data.failure,categorical_feature=['capacity_bytes'])? # lightgbm處理分類變量
# 評分時是對每個盤進行預測,根據歷史數據預測這個盤會不會壞
test_y = test_data.groupby('disk_sn').failure.nth(-1)
test_X = test_data.groupby('disk_sn').nth(-1)[features]
print('test set confusion matrix:')
conf_matrix=confusion_matrix(test_y, model.predict(test_X))
print(conf_matrix)
# 輸出誤報率FAR,即一塊硬盤實際為好盤,而模型預測為壞盤的概率,業務目標 <= 0.1%
print(f'FAR : {conf_matrix[0][1]/sum(conf_matrix[0])}')
#輸出查全率FDR,即一塊硬盤實際為壞盤,而模型預測為壞盤的概率,業務目標 > 80%
print(f'FDR : {conf_matrix[1][1]/sum(conf_matrix[1])}')
score = score_model(test_X, test_y, model)
print(f'test accuracy score: {score}')
#保留特征
save_features(features)
#保存模型
save_model(model)
# return the score for hyperparameter tuning
return score
if __name__ == "__main__":
main()
代碼中的數據位置是DATASET下的processed_disk_data文件,如果數據不是在該位置,請修改上述訓練代碼中的main函數中load_dataset的參數dataset="DATASET"和dataset_entity="processed_disk_data"。
保存后 Ctrl+s,下一步
然后點擊下圖的調試按鈕:
點擊確定,自動進入算法的模型訓練頁面,如下圖所示。
訓練完成后,狀態如下,會顯示訓練狀態和評估報
如果訓練失敗,可以通過點擊上圖右側的詳情來查看系統日志和運行日志:
模型打包
系統支持將訓練好的模型訓練任務進行歸檔。用戶可以將歸檔包編排成應用包發布到應用市場,或者基于歸檔包創建驗證服務、訓練服務。
步驟1:單擊的,彈出“歸檔”對話框。
參數配置:
參數名稱
參數說明
模型名稱
模型包的名稱。
模型版本
訓練模型的版本。
默認版本為V1.0.0。
模型描述
訓練模型的描述信息。
可以在“模型管理”界面確認是否已經有了我們打包的模型,通過下載按鈕進行下載:
至此,模型打包完成。
人工智能
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。