| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- """查找不良关键因子。"""
- import argparse
- import pandas as pd
- from defect_analysis.ml.key_factors import find_key_factors
- from defect_analysis.schemas import normalize_defect_schema
- def analyze_csv_key_factors(csv_path, *, target_defect_type=None, target_severity=None, top_n=20):
- df = pd.read_csv(csv_path, parse_dates=["timestamp"], encoding="utf-8-sig")
- df = normalize_defect_schema(df)
- return find_key_factors(
- df,
- target_defect_type=target_defect_type,
- target_severity=target_severity,
- top_n=top_n,
- )
- def main():
- parser = argparse.ArgumentParser(description="查找不良关键因子")
- parser.add_argument("--csv", default="defect_data.csv", help="缺陷 CSV 文件路径")
- parser.add_argument("--target-defect-type", help="目标缺陷类型,例如 气泡/划痕/漏光")
- parser.add_argument("--target-severity", help="目标严重等级,例如 严重")
- parser.add_argument("--top-n", type=int, default=20)
- args = parser.parse_args()
- result = analyze_csv_key_factors(
- args.csv,
- target_defect_type=args.target_defect_type,
- target_severity=args.target_severity,
- top_n=args.top_n,
- )
- if result.empty:
- print("未找到显著关键因子,请检查目标条件或增加样本量。")
- else:
- print(result.to_string(index=False))
- if __name__ == "__main__":
- main()
|