mirror of
https://github.com/newnius/YAO-optimizer.git
synced 2025-06-06 06:41:55 +00:00
robust, allow unseen features & labels
This commit is contained in:
parent
a178107abd
commit
b16c14e08d
@ -1,10 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="0aedafd8-e57e-462a-beda-65af0b91f3df" name="Default Changelist" comment="">
|
<list default="true" id="0aedafd8-e57e-462a-beda-65af0b91f3df" name="Default Changelist" comment="" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/serve.py" beforeDir="false" afterPath="$PROJECT_DIR$/serve.py" afterDir="false" />
|
|
||||||
</list>
|
|
||||||
<ignored path="$PROJECT_DIR$/out/" />
|
<ignored path="$PROJECT_DIR$/out/" />
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
@ -27,7 +24,7 @@
|
|||||||
<counts>
|
<counts>
|
||||||
<entry key="Dockerfile" value="3" />
|
<entry key="Dockerfile" value="3" />
|
||||||
<entry key="csv" value="8" />
|
<entry key="csv" value="8" />
|
||||||
<entry key="gitignore" value="1" />
|
<entry key="gitignore" value="2" />
|
||||||
<entry key="iml" value="1" />
|
<entry key="iml" value="1" />
|
||||||
<entry key="md" value="3" />
|
<entry key="md" value="3" />
|
||||||
<entry key="png" value="7" />
|
<entry key="png" value="7" />
|
||||||
@ -43,7 +40,7 @@
|
|||||||
<entry key="IDEA_MODULE" value="1" />
|
<entry key="IDEA_MODULE" value="1" />
|
||||||
<entry key="Image" value="7" />
|
<entry key="Image" value="7" />
|
||||||
<entry key="Markdown" value="3" />
|
<entry key="Markdown" value="3" />
|
||||||
<entry key="PLAIN_TEXT" value="12" />
|
<entry key="PLAIN_TEXT" value="13" />
|
||||||
<entry key="Python" value="14" />
|
<entry key="Python" value="14" />
|
||||||
</counts>
|
</counts>
|
||||||
</usages-collector>
|
</usages-collector>
|
||||||
@ -71,11 +68,11 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
<file pinned="false" current-in-tab="true">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/serve.py">
|
<entry file="file://$PROJECT_DIR$/serve.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-121">
|
<state relative-caret-position="60">
|
||||||
<caret line="79" lean-forward="true" selection-start-line="79" selection-end-line="79" />
|
<caret line="101" column="34" selection-start-line="101" selection-start-column="34" selection-end-line="101" selection-end-column="34" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#18#46#0" expanded="true" />
|
<element signature="e#18#46#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@ -83,6 +80,15 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/compare.sh">
|
<entry file="file://$PROJECT_DIR$/compare.sh">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@ -206,7 +212,7 @@
|
|||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||||
<property name="aspect.path.notification.shown" value="true" />
|
<property name="aspect.path.notification.shown" value="true" />
|
||||||
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1594305792246" />
|
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1594314717327" />
|
||||||
<property name="go.gopath.indexing.explicitly.defined" value="true" />
|
<property name="go.gopath.indexing.explicitly.defined" value="true" />
|
||||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||||
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
||||||
@ -251,12 +257,12 @@
|
|||||||
<workItem from="1588319878551" duration="41219000" />
|
<workItem from="1588319878551" duration="41219000" />
|
||||||
<workItem from="1588426002721" duration="336000" />
|
<workItem from="1588426002721" duration="336000" />
|
||||||
<workItem from="1588427782140" duration="326000" />
|
<workItem from="1588427782140" duration="326000" />
|
||||||
<workItem from="1592809729651" duration="32176000" />
|
<workItem from="1592809729651" duration="32466000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="91030000" />
|
<option name="totallyTimeSpent" value="91320000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="0" y="0" width="1280" height="800" extended-state="0" />
|
<frame x="0" y="0" width="1280" height="800" extended-state="0" />
|
||||||
@ -267,10 +273,10 @@
|
|||||||
<window_info id="Capture Tool" order="2" />
|
<window_info id="Capture Tool" order="2" />
|
||||||
<window_info id="Favorites" order="3" side_tool="true" />
|
<window_info id="Favorites" order="3" side_tool="true" />
|
||||||
<window_info id="Image Layers" order="4" />
|
<window_info id="Image Layers" order="4" />
|
||||||
<window_info content_ui="combo" id="Project" order="5" sideWeight="0.49898168" visible="true" weight="0.2657512" />
|
<window_info active="true" content_ui="combo" id="Project" order="5" sideWeight="0.49898168" visible="true" weight="0.2657512" />
|
||||||
<window_info id="Structure" order="6" sideWeight="0.50101835" side_tool="true" weight="0.24959612" />
|
<window_info id="Structure" order="6" sideWeight="0.50101835" side_tool="true" weight="0.24959612" />
|
||||||
<window_info anchor="bottom" id="Version Control" order="0" />
|
<window_info anchor="bottom" id="Version Control" order="0" />
|
||||||
<window_info active="true" anchor="bottom" id="Terminal" order="1" visible="true" weight="0.32739726" />
|
<window_info anchor="bottom" id="Terminal" order="1" visible="true" weight="0.32739726" />
|
||||||
<window_info anchor="bottom" id="Event Log" order="2" side_tool="true" />
|
<window_info anchor="bottom" id="Event Log" order="2" side_tool="true" />
|
||||||
<window_info anchor="bottom" id="Database Changes" order="3" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Database Changes" order="3" show_stripe_button="false" />
|
||||||
<window_info anchor="bottom" id="Docker" order="4" show_stripe_button="false" />
|
<window_info anchor="bottom" id="Docker" order="4" show_stripe_button="false" />
|
||||||
@ -321,13 +327,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="30">
|
|
||||||
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/train.py">
|
<entry file="file://$PROJECT_DIR$/train.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="810">
|
<state relative-caret-position="810">
|
||||||
@ -438,14 +437,21 @@
|
|||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/serve.py">
|
<entry file="file://$PROJECT_DIR$/serve.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-121">
|
<state relative-caret-position="60">
|
||||||
<caret line="79" lean-forward="true" selection-start-line="79" selection-end-line="79" />
|
<caret line="101" column="34" selection-start-line="101" selection-start-column="34" selection-end-line="101" selection-end-column="34" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#18#46#0" expanded="true" />
|
<element signature="e#18#46#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
</component>
|
</component>
|
||||||
<component name="masterDetails">
|
<component name="masterDetails">
|
||||||
<states>
|
<states>
|
||||||
|
24
serve.py
24
serve.py
@ -41,7 +41,7 @@ def train_models(job):
|
|||||||
feature_data = traindata.iloc[:, 1:-1]
|
feature_data = traindata.iloc[:, 1:-1]
|
||||||
label_data = traindata.iloc[:, -1]
|
label_data = traindata.iloc[:, -1]
|
||||||
|
|
||||||
X_train, X_test, y_train, y_test = train_test_split(feature_data, label_data, test_size=0.01)
|
x_train, x_test, y_train, y_test = train_test_split(feature_data, label_data, test_size=0.01)
|
||||||
params = {
|
params = {
|
||||||
'n_estimators': 70,
|
'n_estimators': 70,
|
||||||
'max_depth': 13,
|
'max_depth': 13,
|
||||||
@ -51,14 +51,14 @@ def train_models(job):
|
|||||||
}
|
}
|
||||||
# print(params)
|
# print(params)
|
||||||
model = RandomForestRegressor(**params)
|
model = RandomForestRegressor(**params)
|
||||||
model.fit(X_train, y_train)
|
model.fit(x_train, y_train)
|
||||||
|
|
||||||
# save the model to disk
|
# save the model to disk
|
||||||
modelname = './data/' + job + '_' + label + '.sav'
|
modelname = './data/' + job + '_' + label + '.sav'
|
||||||
pickle.dump(model, open(modelname, 'wb'))
|
pickle.dump(model, open(modelname, 'wb'))
|
||||||
|
|
||||||
# 对测试集进行预测
|
# 对测试集进行预测
|
||||||
y_pred = model.predict(X_test)
|
y_pred = model.predict(x_test)
|
||||||
# 计算准确率
|
# 计算准确率
|
||||||
MSE = mean_squared_error(y_test, y_pred)
|
MSE = mean_squared_error(y_test, y_pred)
|
||||||
RMSE = np.sqrt(MSE)
|
RMSE = np.sqrt(MSE)
|
||||||
@ -76,7 +76,10 @@ def predict(job, features):
|
|||||||
|
|
||||||
values = [job]
|
values = [job]
|
||||||
for feature in models[job]['features']:
|
for feature in models[job]['features']:
|
||||||
values.append(features[feature])
|
if feature in features:
|
||||||
|
values.append(features[feature])
|
||||||
|
else:
|
||||||
|
values.append(0)
|
||||||
|
|
||||||
testfile = './data/' + job + '.' + str(random.randint(1000, 9999)) + '.csv'
|
testfile = './data/' + job + '.' + str(random.randint(1000, 9999)) + '.csv'
|
||||||
t = ['job']
|
t = ['job']
|
||||||
@ -131,8 +134,6 @@ class MyHandler(BaseHTTPRequestHandler):
|
|||||||
try:
|
try:
|
||||||
job = query.get('job')[0]
|
job = query.get('job')[0]
|
||||||
features = json.loads(query.get('features')[0])
|
features = json.loads(query.get('features')[0])
|
||||||
msg = {'code': 0, 'error': ""}
|
|
||||||
|
|
||||||
pred, success = predict(job, features)
|
pred, success = predict(job, features)
|
||||||
|
|
||||||
if not success:
|
if not success:
|
||||||
@ -170,8 +171,15 @@ class MyHandler(BaseHTTPRequestHandler):
|
|||||||
for label in models[job]['labels']:
|
for label in models[job]['labels']:
|
||||||
values = [job]
|
values = [job]
|
||||||
for feature in models[job]['features']:
|
for feature in models[job]['features']:
|
||||||
values.append(features[feature])
|
if feature in features:
|
||||||
values.append(labels[label])
|
values.append(features[feature])
|
||||||
|
else:
|
||||||
|
values.append(0)
|
||||||
|
if label in labels:
|
||||||
|
values.append(labels[label])
|
||||||
|
else:
|
||||||
|
values.append(0)
|
||||||
|
|
||||||
if flag:
|
if flag:
|
||||||
t = ['job']
|
t = ['job']
|
||||||
t.extend(models[job]['features'])
|
t.extend(models[job]['features'])
|
||||||
|
Loading…
Reference in New Issue
Block a user